Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

388
Vistas
¿Por qué iptables no funciona con la coincidencia de cadenas usando x-forwarded-for?

Tengo un servidor web ejecutándose con Apache en Ubuntu detrás de Cloudflare. Quiero bloquear a un usuario usando las iptables del servidor web. Aquí quiero implementar la función de coincidencia de cadenas de iptables y eliminar la conexión. Aquí está mi regla que no funciona:

 iptables -I INPUT -m string --string "x-forwarded-for: 216.244.66.205" --algo bm --to 65535 -j DROP

Después de agregar esta regla, el cliente aún puede acceder al servidor.

Conozco el encabezado específico de Cloudflare para la IP del cliente que es cf-connecting-ip . Puedo bloquear al cliente con esto. Aquí está la regla que funciona bien:

 iptables -I INPUT -m string --string "cf-connecting-ip: 216.244.66.205" --algo bm --to 65535 -j DROP

El tráfico de Cloudflare al servidor web es HTTP (puerto 80).

Tengo un balanceador de carga (haproxy) y algunos de los dominios se ejecutan a través de esto en lugar de Cloudflare. Es por eso que quiero usar XFF porque cf-connecting-ip es específico de Cloudflare y XFF es compatible con ambos.

Puedo ver que Cloudflare está adjuntando correctamente los encabezados cf-connecting-ip y XFF. Aquí está la salida de tcpdump entre múltiples solicitudes:

 tcpdump -A -s 65535 'tcp port 80' | grep 216.244.66.205
 x-forwarded-for: 216.244.66.205 cf-connecting-ip: 216.244.66.205 x-forwarded-for: 216.244.66.205 cf-connecting-ip: 216.244.66.205 x-forwarded-for: 216.244.66.205 cf-connecting-ip: 216.244.66.205 x-forwarded-for: 216.244.66.205 cf-connecting-ip: 216.244.66.205

De alguna manera, las iptables pueden detectar la cadena cf-connecting-ip pero no x-forwarded-for .

Cualquier ayuda sería apreciada.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Los encabezados HTTP están en la capa de aplicación, mientras que IPTables funciona más abajo en la pila TCP/IP. Los datos en los que desea filtrar no son visibles para IPTables.

Para los sitios web detrás de Cloudflare, debe configurar IPTables para permitir solo el paso de las direcciones IP de Cloudflare y usar el Firewall de Cloudflare para bloquear las direcciones IP del cliente.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda