Confluence 광고/홍보글 스패머 막기 - apache httpd 의 Access Control 사용 및 stopforumspam.com 의 DB 활용
댓글을 누구나 작성할 수 있게 했더니 달리는 댓글이라고는 스패머에 의한 광고밖에 달리지가 않는다.
방문자가 거의 없는 홈페이지지만 늘 소통을 갈구하고 있기에 spammer 때문에 댓글을 막는것보다는 스팸을 올리는 IP 를 차단하는게 나을 것 같다.
차단을 위해 iptables 을 사용할까 하다가 설정이 쉬운 apache httpd 의 access control 기능을 사용하기로 하고 그 절차를 정리해 둔다.
Spammer IP 정보 구하기
- apache log 를 확인해서 스팸을 남기는 IP 를 매번 분리해서 block 했으나 IP 가 자주 바뀌어서 효과가 없음
- googling 해보니 http://www.stopforumspam.com 이라는 사이트가 spammer IP 를 DB 화 해서 배포하는 것을 확인하고 여기에서 IP DB 를 받아서 사용
IP DB 가공
- IP DB download(http://www.stopforumspam.com/downloads/bannedips.zip)
압축 해제
# unzip bannedips.zip Archive: bannedips.zip inflating: bannedips.csv
개행문자가 없이 , 로 IP 가 분리되어 있으므로 , 를 new line 으로 변환
## , 를 개행문자로 변환 perl -p -e 's/,/\n/g' bannedips.csv > blacklist-ip ## IP 앞에 DENY From 추가 perl -p -e 's/^/Deny from /g' blacklist-ip > /etc/httpd/conf/blacklist
/etc/httpd/conf/httpd.conf 에 Location 및 Order Directive 설정 및 위에서 만든 DB 파일 설정
<Location /> Order allow,deny Allow from all # BlackList 는 Deny Include conf/blacklist # 계속 login 을 시도하는 IP 가 있다면 차단 #Include conf/login-attacker </Location>
logon 을 시도하는 IP 가 있다면 Confluence access log 남기기 를 참고하여 log를 남기게 설정후 log에서 login.action 을 시도하는 IP 를 추출하여 conf/login-attacker 파일에 다음과 같이 남기면 된다.
conf/login-attackerDeny from 1.2.3.4 Deny from 2.1.4.7
httpd 재구동
service httpd restart
Ref
- http://httpd.apache.org/docs/2.2/howto/access.html
- https://confluence.atlassian.com/display/DOC/Preventing+and+Cleaning+Up+Spam