내 서버가 DDOS 공격을 받고 있으며 IP를 차단하고 싶습니다. 침입자의 IP를 확인하기 위해 어떤 로그를 찾아야합니까?
답변
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를보다 효과적으로 보호하기 위해 일부 설정을 구성 할 수 있습니다.
답변
참고-ISP와 함께 업스트림을 차단할 수 있는지 확인해야합니다.
답변
여기 좋은 팁이 있습니다. 나는 또한 이것을 추가 할 것이다 :
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 ""}'
답변
DOS 공격을 확인하는 가장 좋아하는 로그 파일은 / var / log / secure (Redhat / Centos / Fedora ….) 및 /var/log/auth.log(ubuntu, debian …)입니다. 대부분의 사전 기반 공격 인 공격자의 소스 IP에서 로그인 시도가 실패한 것을 볼 수 있습니다.
답변
내 서버를 보호하기 위해 Fail2Ban 간단한 스크립트를 사용합니다.
/ var / log / pwdfail 또는 / var / log / apache / error_log와 같은 로그 파일을 검사하고 너무 많은 암호 오류를 일으키는 IP를 금지합니다. IP 주소를 거부하도록 방화벽 규칙을 업데이트합니다.
답변
어떤 배포판?
로그가 Ubuntu와 함께 /var/log/apache2/access.log 아래에 있다고 생각합니다. 아마도 데비안입니다.
sudo로 updatedb를 실행 한 다음 명령 행에서 access.log를 찾으십시오.
편집 : 나는 이것이 페이지를 요청하거나 포트 80을 통해 직접 당신을 때리는 경우에만 발생한다고 생각합니다. 다른 포트를 때리는 경우 필요한 정보를 볼 수 없습니다 어떤 프로세스가 있는지 확인하고 확인해야합니다 해당 포트에서 실행 중이고 해당 프로세스의 연결 로그를 살펴보십시오.
답변
특정 포트가 의심되는 경우 tcpdump를 사용하여 $ tcpdump -vv port X 주소를 확인할 수 있습니다.