Trabajando alrededor de un límite de regla ACL de red de AWS

12

Como máximo, una ACL de red VPC puede tener 40 reglas aplicadas.

Tengo una lista de más de 50 direcciones IP a las que necesito bloquear explícitamente el acceso en nuestros sistemas, a través de cualquier puerto y cualquier protocolo. Este es un propósito ideal para una ACL, pero el límite me impide completar esta tarea.

Por supuesto, puedo hacer esto en IPTables en cada host, pero quiero bloquear todo el tráfico a todos los componentes de la VPC (a los ELB, por ejemplo). Además, es mucho más ideal administrar estas reglas en un solo lugar que en cada host.

Espero que haya alguna forma en que no entiendo hacer esto a nivel de sistema / plataforma. Los grupos de seguridad tienen permiso explícito, sin acción de denegación, por lo que no harán el truco.

emmdee
fuente
Utilice un software de aprovisionamiento como Ansible para la gestión de iptables y ya está. Obviamente funcionará solo en instancias EC2; no LBs etc.
Kyslik
Sí, estoy de acuerdo en que hacer iptables está bien para EC2, pero el 99% de mi tráfico entrante llega a nuestra estructura ELB. Estaríamos pagando por muchos éxitos de estos estafadores conocidos con los que tenemos que lidiar. Gracias por el aporte
emmdee
1
El bloqueo de 50 IP individuales parece un requisito extraño.
user253751
@immibis Extraño para ti tal vez. Tenemos muchos estafadores que intentan follar con nuestros clientes legítimos. Bloqueamos sus cuentas, pero también d prohibimos la propiedad intelectual de estafadores rusos / nigerianos / chinos. Nuestro producto tiene mucha interacción con el usuario, chat / etc., no es totalmente extraño para una plataforma como esa.
emmdee
1
... y ninguno de sus estafadores tiene IP dinámicas?
user253751

Respuestas:

8

Aquí hay una idea de campo izquierdo ... podría "anular la ruta" de las 50 IP bloqueadas, agregando una ruta "rota" a la tabla de rutas VPC para cada IP.

Esto no evitaría que el tráfico de las direcciones IP golpee su infraestructura (solo las NACL y las SG lo evitarán), pero evitará que el tráfico de retorno lo haga "volver a casa".

Pingüino Funky
fuente
Accidentalmente anulo el tráfico enrutado una vez al crear una puerta de enlace de tránsito, configurar el enrutamiento y luego eliminar la puerta de enlace de tránsito. Sin embargo, puede haber una manera más fácil.
Tim
No es una mala idea. Muy fuera de la caja pensando gracias. Haré algo de experimentación. Podría ser el camino correcto sin pagar por WAF
emmdee
0

No hay forma de aumentar el límite de NACL, y una gran cantidad de reglas NACL impacta el rendimiento de la red.

Es posible que tenga un problema arquitectónico sobre todo.

  1. ¿Tus instancias tienen que estar en subredes públicas?
  2. ¿Ha configurado puertas de enlace NAT para limitar el tráfico entrante?
  3. Para aquellas instancias que deben estar en subredes públicas, ¿tiene reglas de grupo de seguridad de entrada mínimas?
  4. ¿Está utilizando condiciones de coincidencia de AWS WAF IP para bloquear el tráfico no deseado a CloudFront y sus Balanceadores de carga?

Si está alcanzando el límite de la regla NACL, lo más probable es que no esté adoptando el enfoque recomendado por AWS para la arquitectura VPC y el uso de servicios como WAF (y Shield for DDoS) para bloquear el tráfico no deseado y los ataques abiertos.

Si le preocupan los ataques DDoS: Cómo ayudar a proteger las aplicaciones web dinámicas contra los ataques DDoS mediante Amazon CloudFront y Amazon Route 53

Fo.
fuente
Las puertas de enlace NAT son para tráfico saliente en lugar de entrante.
Tim
Corrija @Tim, por lo que colocar sus instancias en subredes privadas detrás de las puertas de enlace NAT les brinda conectividad saliente sin abrirlos a ataques entrantes, y no es necesario bloquear IP en NACLs
Fo.
WAF es bastante caro para sitios web de mucho tráfico. Tratando de evitarlo por esa razón. El hecho de que los grupos de seguridad no puedan bloquear explícitamente y la ACL web tiene este límite parece ser una gran captura de efectivo.
emmdee
Supongo que depende del caso de uso, que no se ha explicado. Si la razón para bloquear estas IP es que han estado atacando un servidor web, todavía debe haber acceso público a los servidores, lo que significa un equilibrador de carga o proxy. Una subred privada no ayudaría en ese caso.
Tim
Mi caso de uso es el 99% de los ELB que toman el tráfico entrante. Las instancias EC2 son privadas detrás de los ELB.
emmdee
0

Esto no es exactamente lo que pidió, pero puede hacer el trabajo lo suficientemente bien.

Configure CloudFront frente a su infraestructura. Use las condiciones de coincidencia de IP para bloquear efectivamente el tráfico. CloudFront funciona con contenido estático y dinámico, y puede acelerar el contenido dinámico ya que utiliza la red troncal de AWS en lugar de Internet público. Esto es lo que dicen los documentos

Si desea permitir algunas solicitudes web y bloquear otras en función de las direcciones IP desde las que se originan las solicitudes, cree una condición de coincidencia de IP para las direcciones IP que desea permitir y otra condición de coincidencia de IP para las direcciones IP que desea bloquear .

Cuando use CloudFront, debe bloquear el acceso directo a cualquier recurso público que use grupos de seguridad. La actualización lambda de AWS Update Security Groups mantendrá sus grupos de seguridad actualizados para permitir el tráfico de CloudFront pero rechazar otro tráfico. Si redirige http a https usando CloudFront, puede modificar un poco las secuencias de comandos para evitar que http afecte a su infraestructura. También puede incluir en la lista blanca cualquier IP que necesite acceso directo de administrador.

Alternativamente, puede usar un CDN de terceros como CloudFlare. CloudFlare tiene un firewall efectivo, pero por la cantidad de reglas que desea es de $ 200 por mes. Eso puede ser más barato que CloudFront, el ancho de banda de AWS es bastante costoso. El plan gratuito solo te da 5 reglas de firewall.

Tim
fuente
Ya utilizamos el frente de la nube para contenido estático, pero muchos de los sitios son contenido web dinámico.
emmdee
CloudFront también se puede usar para contenido dinámico aws.amazon.com/blogs/networking-and-content-delivery/…
Fo.
CloudFront puede acelerar el contenido dinámico, creo que utiliza la red troncal de AWS en lugar de Internet público. CloudFront tiene un ancho de banda ligeramente más barato que EC2, y creo que vi un anuncio hace un tiempo que el ancho de banda de CloudFront de regreso a EC2 es gratis.
Tim