Cantidades extremas de salida del puerto 80

Cantidades extremas de salida del puerto 80

Tengo un problema importante porque mi servidor gasta cantidades excesivas de ancho de banda saliente para nada. El sistema operativo del servidor es CentOS 6.4 x64 con el kernel 2.6.32-431 si eso importa.

Aquí hay un archivo de registro tcpdump rápido:

20:10:17.448636 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 463681, win 65520, options [nop,nop,sack 1 {460801:462241}], length 0
20:10:17.448698 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 468001:469441, ack 0, win 123, length 1440
20:10:17.454074 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 469441:470881, ack 0, win 123, length 1440
20:10:17.637167 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 465121, win 65520, options [nop,nop,sack 1 {466561:468001}], length 0
20:10:17.637221 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 470881:472321, ack 0, win 123, length 1440
20:10:17.637230 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 472321:475201, ack 0, win 123, length 2880
20:10:17.638062 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 468001, win 65520, length 0
20:10:17.638078 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 475201:478081, ack 0, win 123, length 2880
20:10:17.642977 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 470881, win 65520, length 0
20:10:17.642988 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [P.], seq 478081:480961, ack 0, win 123, length 2880

Hay miles de entradas más y está consumiendo 100 GB o más por día. Probé varias reglas de firewall diferentes. Mis reglas de iptables son:

-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --dport 80 -j fail2ban-HTTP
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 198.101.197.171/32 -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
-A fail2ban-HTTP -j RETURN
-A fail2ban-SSH -j RETURN

Soy un administrador de sistemas aficionado, por lo que no estoy seguro de todos los pormenores de la prevención de este tipo de ataques.

iftop muestra IP arbitrarias que cambian según los receptores de los datos, nethogs muestra /usr/bin/httpd como el proceso que toma el ancho de banda. iotop no muestra actividad, aunque me dice que no se están leyendo archivos reales.

¿Pensamientos?

Respuesta1

Bien, tienes:

  • Se envía mucho tráfico desde su puerto HTTP.
  • nethogs muestra que su demonio httpd lo está enviando
  • la IP de destino es una variedad de computadoras en Internet
  • iotop no muestra nada (lo único que significa es que está almacenado en caché en la memoria)

Mi diagnóstico: estás ejecutando un servidor web.

Consulte los registros de acceso de su servidor web para ver a qué acceden las personas. ¿Es tráfico normal? Considere usar una CDN para reducir su ancho de banda saliente.


Oh, ¿nada en los registros?

  • ¿Está seguro de que httpd está registrando donde cree que está registrando?
  • Intente cerrar httpd, capturar el tráfico y luego reiniciar httpd para poder capturar elcomenzarde la solicitud.
  • Si están descargando archivos enormes, ¿los registros pueden? no aparecerá hasta que se complete la descarga.
  • ¿Usando Apache? Intente habilitar el server-statusmódulo para poder preguntarle a httpd qué está haciendo.

información relacionada