Extreme Mengen an ausgehendem Port 80

Extreme Mengen an ausgehendem Port 80

Ich habe ein großes Problem damit, dass mein Server unnötig viel ausgehende Bandbreite verbraucht. Das Server-Betriebssystem ist CentOS 6.4 x64 mit dem Kernel 2.6.32-431, falls das wichtig ist.

Hier ist eine kurze TCPdump-Protokolldatei:

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

Es gibt Tausende weitere Einträge und es verbraucht 100 GB oder mehr pro Tag. Ich habe eine Reihe verschiedener Firewall-Regeln ausprobiert. Meine iptables-Regeln sind:

-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

Ich bin ein Amateur-Systemadministrator und kenne mich daher nicht mit allen Einzelheiten zur Verhinderung dieser Art von Angriffen aus.

iftop zeigt beliebige, sich ändernde IPs als Empfänger der Daten an, nethogs zeigt /usr/bin/httpd als den Prozess an, der die Bandbreite beansprucht. iotop zeigt jedoch keine Aktivität und teilt mir mit, dass keine tatsächlichen Dateien gelesen werden.

Gedanken?

Antwort1

OK, Sie haben:

  • viel Datenverkehr wird von Ihrem HTTP-Port gesendet
  • nethogs zeigt, dass Ihr httpd-Daemon es sendet
  • Die Ziel-IP ist eine Auswahl von Computern im Internet
  • iotop zeigt nichts an (das bedeutet nur, dass es im Speicher zwischengespeichert ist)

Meine Diagnose: Sie betreiben einen Webserver.

Überprüfen Sie die Zugriffsprotokolle Ihres Webservers, um zu sehen, auf welche Daten die Benutzer zugreifen. Handelt es sich um normalen Datenverkehr? Erwägen Sie die Verwendung eines CDN, um Ihre ausgehende Bandbreite zu reduzieren.


Oh, nichts in den Protokollen?

  • Sind Sie sicher, dass httpd dort protokolliert, wo Sie es vermuten?
  • Versuchen Sie, httpd zu beenden, den Datenverkehr abzufangen und dann httpd neu zu starten, damit Sie denStartder Anfrage.
  • Beim Herunterladen großer Dateien werden die Protokolle möglicherweise erst angezeigt, wenn der Download abgeschlossen ist.
  • Verwenden Sie Apache? Versuchen Sie, das server-statusModul zu aktivieren, damit Sie httpd fragen können, was es tut.

verwandte Informationen