서버에 트랙백 스팸이 몰려오니까 load가 치솟으면서 서버가 죽어버린다.
iptables 로 막으면서 근근히 버티고 있다.
recent 모듈을 이용해서 초당 몇번 이상의 접속을 알아서 막는 건.. 해봤는데 안된다. 아무 반응이 없다.
왜 그런지 모르겠다.
그래서 일일이 ip를 특정해서 막고 있다.
xe 트랙백 스팸 들어오는 걸 보니까
#!/bin/bash
tail -n 2000 /usr/local/apache/logs/access_log | grep 'act=trackback&key' | awk '{print $1 }' | awk -F. '{print "/sbin/iptables -I INPUT -s "$1"."$2"."$3".0/24 -j DROP"}' | sort | uniq | sh -v
나중에 내가 기억 못할테니 적어놓으면,
아파치 로그 최근 2000개 중에, trackback을 요청하는 부분을 걸러내고, 그 중에서 1열(ip)만 걸러내고, 그걸로 iptables 명령어를 만들고, 정렬해서, 겹치는 ip 골라내고, 쉘로 실행하고, 결과는 보여달라.
운나쁘게 정상적으로 트랙백을 보낸 경우도 포함될 수 있겠지만, 그렇다면 1번 보내고 굳이 연달아 또 보내진 않을테니, 일단 차단시켜도 될 것 같다. 스팸 IP를 보니 매일매일 계속 바뀐다. 그러니 며칠에 한 번씩 차단 규칙을 삭제하면 될 듯 하다.
잘 모르겠는게,
테스트를 해보려고
iptables -A INPUT -s 내 아이피 -j DROP
이렇게 했는데,
계속 접속이 된다.
iptables -I INPUT -s 내 아이피 -j DROP
이렇게 해야 차단된다.
-A 로 해도 적용되야할 것 같은데.. 왜 그럴까?
그냥 서버를 다시 설치하고 싶다 ㅠㅜㅠㅜ
뭔가 덕지덕지.. 어디에 손을 대야할지도 모르겠고.. ㅠㅜㅠㅜ
여름 지나서 좀 한가해지면, 서버 재설치 도전하겠어.
Comments
ATOM Feed : http://blog.jinbo.net/imaginer/atom/comment/486
httpd -V 로 확인해보니 prefork 방식인데,
httpd-mpm.conf에서 prefork 모듈에 maxclients가 1024로 되어있었다.(컴파일할 때 1024로 컴파일한건가? 따로 옵션 주지 않고 컴파일하면 256이 최대라는데.)
그래서 150으로 줄여주었다. 로그를 보면 httpd 프로세스가 200개 근처에 가면 cpu 사용률이 100%로 차는 것 같다.