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 를 보낼 수 없고,
흉내내려고 보냈다가는 받은 내용을 알아볼 수 없게 됩니다.

phpschool 송효진님 글
Posted by Redvirus
,