Tengo, más o menos, la siguiente configuración en AWS:
Balanceador de carga elástico con 3 máquinas o 3 zonas de disponibilidad diferentes. Mi grupo de seguridad permite 0.0.0.0/0:80 ya que es mi aplicación de rieles (nginx, unicorn).
Me preguntaba si hay alguna forma de negar el acceso a mi aplicación a una dirección IP pública específica. He estado leyendo la documentación de AWS, pero como los SG "niegan todo" no hay forma de negar solo una dirección IP específica.
¿Algunas ideas? ¿iptables en las 3 máquinas detrás del balanceador de carga?
¡Gracias!
fuente
En realidad, esa no es una buena solución, ya que la IP remota (
$remote_addr
en Nginx) será del equilibrador de carga de Amazon. Prohibición que resultará en la prohibición de todo el tráfico reenviado.Tendrá que inspeccionar los paquetes y encontrar el
X-Forwarded-For
encabezado HTTP , IPtables no es consciente del protocolo de esa manera.Me conformé con la siguiente solución para 2 IP traviesas en Nginx
Introduciendo una variable
$client_ip
, solo para que también pueda probar esto localmente, donde no hayhttp_x_forwarded_for
disponible ...Ligeramente fuera de tema pero publicado por conveniencia, también agregué esa ip del cliente a mis registros de acceso:
No es bonito, pero espero que ayude
fuente