DDOS 공격을받는 서버-IP를 찾는 방법?


20

내 서버가 DDOS 공격을 받고 있으며 IP를 차단하고 싶습니다. 침입자의 IP를 확인하기 위해 어떤 로그를 찾아야합니까?


2
서버가 공격을 받고 있다고 판단한 것은 무엇입니까? 이 결정을 내리기 위해 어떤 유형의 TCP 세션 테이블 (Windows의 netstat)을 살펴보아야하며 그렇게하면 서버에 연결하는 호스트의 IP 주소를 볼 수 있습니다. 무트.
joeqwerty 2016 년

답변:


43
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

상위 IP 주소를 살펴보십시오. 어떤 것이 다른 것들보다 두드러지면 방화벽에있는 것일 것입니다.

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

포트 80에 연결된 IP가 있는지 확인하기 위해 현재 활성 연결을 확인합니다. IP 주소가 45 열에서 시작되지 않을 수 있으므로 cut -c 45-를 변경해야 할 수도 있습니다. 귀하의 웹 서버는 이것도 선택합니다.

이 중 어느 것도 표준을 벗어난 IP를 전혀 보여주지 않을 경우, 봇넷이 자신을 공격한다고 가정하고 로그에서 특정 패턴을 찾아서 그들이하는 일을 확인해야합니다. 워드 프레스 사이트에 대한 일반적인 공격은 다음과 같습니다.

GET /index.php? HTTP/1.0

웹 사이트의 액세스 로그를 살펴보면 다음과 같은 작업을 수행 할 수 있습니다.

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

가장 많이 사용되는 URL을 보여줍니다. 전체 사이트를로드하지 않고 특정 스크립트를 사용하고 있음을 알 수 있습니다.

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

일반적인 UserAgent를 볼 수 있습니다. 공격시 단일 UserAgent를 사용하고있을 수 있습니다.

트릭은 일반 트래픽에 존재하지 않는 공격 트래픽과 공통된 것을 찾은 다음 iptables, mod_rewrite 또는 웹 호스트의 업스트림을 통해 필터링합니다. Slowloris에 부딪 치면 Apache 2.2.15에 reqtimeout 모듈이있어 Slowloris를보다 효과적으로 보호하기 위해 일부 설정을 구성 할 수 있습니다.


정말 고마워요, 이번 주말에 꼭 살펴 볼게요.
웹넷

우수한. 매우 유용하고 간단하게 .... 그것을 유지하고 신의 축복을 빕니다. Allinonescript.com ( allinonescript.com ) 전 세계 개발자의 지식은 지식을 습득합니다.
Vadivel S

access_log를 올바르게 설정하는 한 : tail -n 10000 / var / log / httpd / access_log | cut -f 1 -d ''| sort | uniq -c | sort -nr | more 작동해야합니다. 나를 위해 일했습니다
dustbuster

7

참고-ISP와 함께 업스트림을 차단할 수 있는지 확인해야합니다.


4

여기 좋은 팁이 있습니다. 나는 또한 이것을 추가 할 것이다 :

netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''

이것을 별칭 아래에 두십시오 (예 : nn). 이렇게하면보다 확실한 연결로 IP에 대한 "그래픽"관점이 제공됩니다.

이것이 도움이되기를 바랍니다.

이것을 작동시키지 못한 사람들을 위해 나는 구문을 수정하여 우분투에서 나를 위해 실행되었습니다.

netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'

3

DOS 공격을 확인하는 가장 좋아하는 로그 파일은 / var / log / secure (Redhat / Centos / Fedora ....) 및 /var/log/auth.log(ubuntu, debian ...)입니다. 대부분의 사전 기반 공격 인 공격자의 소스 IP에서 로그인 시도가 실패한 것을 볼 수 있습니다.


1

내 서버를 보호하기 위해 Fail2Ban 간단한 스크립트를 사용합니다.

/ var / log / pwdfail 또는 / var / log / apache / error_log와 같은 로그 파일을 검사하고 너무 많은 암호 오류를 일으키는 IP를 금지합니다. IP 주소를 거부하도록 방화벽 규칙을 업데이트합니다.

http://www.fail2ban.org/wiki/index.php/Main_Page


0

어떤 배포판?

로그가 Ubuntu와 함께 /var/log/apache2/access.log 아래에 있다고 생각합니다. 아마도 데비안입니다.

sudo로 updatedb를 실행 한 다음 명령 행에서 access.log를 찾으십시오.

편집 : 나는 이것이 페이지를 요청하거나 포트 80을 통해 직접 당신을 때리는 경우에만 발생한다고 생각합니다. 다른 포트를 때리는 경우 필요한 정보를 볼 수 없습니다 어떤 프로세스가 있는지 확인하고 확인해야합니다 해당 포트에서 실행 중이고 해당 프로세스의 연결 로그를 살펴보십시오.


0

특정 포트가 의심되는 경우 tcpdump를 사용하여 $ tcpdump -vv port X 주소를 확인할 수 있습니다.


0

분산 DOS를 사용하는 경우 차단할 IP가 둘 이상 있고 IP가 위조 될 수있는 경우 mfinni가 말한 것처럼 ISP에 문의하는 것이 좋습니다 . 또한 이것은 서버에 대한 DOS 이상의 것일 수 있지만 실제 공격이 감지되지 않도록하는 미끼 일 수 있으므로 노출 된 모든 서비스가 최신 소프트웨어에 의해 실행되는지 확인하십시오. 당신은 또한 아파치에 대한 mod_dosevasive에 관심이있을 수 있습니다.


2
IP는 웹 공격을 위조하기가 매우 어렵습니다. 유효한 웹 연결에는 syn / ack 핸드 셰이크가 필요하기 때문에 위조 된 공격 사이트에서 페이로드에 대한 올바른 시퀀스 번호로 위조 된 IP 주소를 확보 할 수있을만큼 운이 좋을 것입니다. UDP / ICMP 트래픽은 연결이없고 위조 된 패킷을 허용하지만 대부분의 호스트는 해당 패킷을 차단합니다.
user6738237482

0

먼저 DOS 유형을 결정해야합니다. 일부 공격은 매우 은밀하지만 효과적이지만 (느린 공격) 일부 공격은 너무 커서 ISP를 다운시킬 수 있습니다 (ISP 소스보다 높은 대역폭에서 ICMP 플러드).

DOS 유형을 확인한 후 ISP에 연락하여 트래픽을 필터링 할 수 있는지 문의하십시오.

ICMP 홍수가 너무 심해서 업스트림 ISP에 BGP 커뮤니티를 통해 대상 IP를 필터링하도록 요청해야했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.