트랙백 스팸 iptables로 막기

서버에 트랙백 스팸이 몰려오니까 load가 치솟으면서 서버가 죽어버린다.

 

iptables 로 막으면서 근근히 버티고 있다.

recent 모듈을 이용해서 초당 몇번 이상의 접속을 알아서 막는 건.. 해봤는데 안된다. 아무 반응이 없다.

왜 그런지 모르겠다.

그래서 일일이 ip를 특정해서 막고 있다.

 

xe 트랙백 스팸 들어오는 걸 보니까

 

201.49.209.146 :- - - [21/Jun/2013:14:28:19 +0900] "POST /xe/index.php?mid=labor_board&document_srl=12659&act=trackback&key=24b HTTP/1.1" 200 147 "http://findcarinsurequotes.com/" "PHP/5.2.10"
201.49.209.146 :- - - [21/Jun/2013:14:28:19 +0900] "POST /xe/index.php?mid=......&act=trackback&key=24b HTTP/1.1" 200 147 "http://findcarinsurequotes.com/" "PHP/5.2.10"
 
이런 식으로 들어온다.
그래서 이런 쉘 스크립트를 하나 작성해서, 서버 부하가 올라갈 때마다 한번씩 실행시키고 있다.
 

#!/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 로 해도 적용되야할 것 같은데.. 왜 그럴까?

 

 

 

그냥 서버를 다시 설치하고 싶다 ㅠㅜㅠㅜ

뭔가 덕지덕지.. 어디에 손을 대야할지도 모르겠고.. ㅠㅜㅠㅜ

여름 지나서 좀 한가해지면, 서버 재설치 도전하겠어.

2013/06/21 14:56 2013/06/21 14:56
Trackback Address :: http://blog.jinbo.net/imaginer/trackback/486
  1. httpd -V 로 확인해보니 prefork 방식인데,
    httpd-mpm.conf에서 prefork 모듈에 maxclients가 1024로 되어있었다.(컴파일할 때 1024로 컴파일한건가? 따로 옵션 주지 않고 컴파일하면 256이 최대라는데.)
    그래서 150으로 줄여주었다. 로그를 보면 httpd 프로세스가 200개 근처에 가면 cpu 사용률이 100%로 차는 것 같다.

  2. 안녕하세요^^

[로그인][오픈아이디란?]