엄청난 양의 아웃바운드 포트 80

엄청난 양의 아웃바운드 포트 80

내 서버가 쓸데없이 과도한 양의 나가는 대역폭을 소비하는 데 큰 문제가 있습니다. 중요한 경우 서버 OS는 2.6.32-431 커널이 포함된 CentOS 6.4 x64입니다.

다음은 빠른 tcpdump 로그 파일입니다.

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

수천 개의 항목이 더 있으며 하루에 100GB 이상을 소모하고 있습니다. 저는 다양한 방화벽 규칙을 시도해 보았습니다. 내 iptables 규칙은 다음과 같습니다.

-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

저는 아마추어 시스템 관리자이므로 이러한 종류의 공격을 방지하는 방법에 대해 잘 모르겠습니다.

iftop은 데이터 수신자로 변경되는 임의의 IP를 표시하고, nethogs는 대역폭을 사용하는 프로세스로 /usr/bin/httpd를 표시합니다. iotop은 실제 파일을 읽고 있지 않다고 알려주지만 활동을 표시하지 않습니다.

생각?

답변1

알겠습니다. 다음이 있습니다.

  • HTTP 포트에서 많은 트래픽이 전송되고 있습니다.
  • nethogs는 httpd 데몬이 그것을 보내고 있음을 보여줍니다
  • 대상 IP는 인터넷상의 여러 컴퓨터입니다.
  • iotop이 아무것도 표시하지 않습니다(즉, 메모리에 캐시되어 있다는 뜻입니다).

내 진단: 당신은 웹 서버를 운영하고 있습니다.

웹 서버 액세스 로그를 확인하여 사람들이 무엇에 액세스하고 있는지 확인하세요. 정상적인 교통인가요? 발신 대역폭을 줄이려면 CDN 사용을 고려해 보세요.


아, 로그에 아무것도 없나요?

  • httpd가 로깅이라고 생각하는 곳에 로깅하고 있다고 확신합니까?
  • httpd를 종료하고 트래픽을 캡처한 다음 httpd를 다시 시작하면시작요청의.
  • 대용량 파일을 다운로드하는 경우 로그가 표시될 수 있나요? 다운로드가 완료될 때까지 나타나지 않습니다.
  • 아파치를 사용하시나요? server-status모듈을 활성화하여 httpd가 무엇을 하는지 물어볼 수 있도록 해보세요 .

관련 정보