http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=60793&sca=&sfl=wr_name%7C%7Csubject&stx=%BC%DB%C8%BF%C1%F8&sop=and 에 이어 오늘 DDoS 로 생각되는 일이 있었습니다. 아무래도 얘네들이 ip 가 무한한듯 하여, 팁텍에도 있던 mod_evasive 를 설치했습니다. (여기서 젠투자랑 이것도 emerge 한방에 설치완료) 그리고, Rewrite 를 꺼버리고, php.ini 의 auto_prepend_file 에
<?php
if($_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1' || !isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { if(count($_POST) != 0) { $fp = fopen('/home/yoursite/postdata.txt', 'a'); fwrite($fp, $_SERVER['REMOTE_ADDR']."\n"); fwrite($fp, print_r($_POST, true)); fwrite($fp, print_r($_GET, true)); fwrite($fp, print_r($_SERVER, true)); fwrite($fp, "---\n"); fclose($fp); exit; } if(!preg_match('/BlackBerry|Daum|EMPAS\.ROBOT|Gigabot|Googlebot|NaverBot|Snapbot|Speedy\|SurveyBot|Twiceler|Yahoo|Yeti|MFeedBot|msnbot|webcollage|yoofind|xMind/', $_SERVER['HTTP_USER_AGENT'])) { $fp = fopen('/home/yoursite/agents.txt', 'a'); fwrite($fp, $_SERVER['HTTP_USER_AGENT']."\n"); fclose($fp); header('Content-Type: text/html; charset=utf-8'); echo '인터넷 옵션 에서 프록시 설정을 제거하셔야 접속하실 수 있습니다.'; exit; } }
요런걸 추가하여 Rewrite 로 했던것과 비슷한 효과를 내었습니다. HTTP/1.0 으로 POST 를 하는건 백발백중 스팸봇이네요.
HTTP/1.1 에서 HTTP_ACCEPT_ENCODING 요게 설정되면 압축전송을 받을 수 있다는 뜻이고, http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=56751&sca=&sfl=wr_name%7C%7Csubject&stx=%BC%DB%C8%BF%C1%F8&sop=and&page=2 요게 되어 있으면, 압축전송을 하게 됩니다. 즉, 어설픈 봇은 HTTP_ACCEPT_ENCODING 를 보낼 수 없고, 흉내내려고 보냈다가는 받은 내용을 알아볼 수 없게 됩니다. |