지난 며칠 동안 알 수없는 요청으로 일부 서버가 망치는 것을 발견했습니다.
그들 대부분은 다음과 같습니다.
60.246.*.* - - [03/Jan/2015:20:59:16 +0200] "GET /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 HTTP/1.1" 200 -
로깅 및 검색을 조금 후 나는 (whatsmydns.net의 결과에 따라 아마 CERNET) 일부 중국 ISP와 터키의 ISP가 (아마 TTNET) DNS 응답은 같은 쿼리 것을 발견 a.tracker.thepiratebay.org
piratebay와는 아무 상관이없는 다양한 IP를 또는 급류. 다시 말해 그들은 기괴한 이유로 일종의 DNS 캐시 중독을하는 것 같습니다.
따라서 해당 국가의 수백 (수천이 아닌 경우)의 비트 토 런트 클라이언트가 웹 서버에 수많은 '발표'를하여 DDoS 공격으로 인해 모든 Apache 연결이 채워집니다.
현재 중국과 터키를 모두 차단했으며 업무를 수행하지만 이러한 요청을 차단하는 더 좋은 방법을 찾고 싶습니다.
HTTP 호스트 헤더를 기반으로 mod_security로 요청을 차단하려고했습니다.
이러한 모든 요청에는 HTTP Host 헤더 a.tracker.thepiratebay.org
(또는 thepiratebay.org 도메인의 다른 많은 하위 도메인)가 포함됩니다.
다음은 PHP $_SERVER
변수 를 통한 요청 헤더 덤프입니다 .
DOCUMENT_ROOT: /usr/local/apache/htdocs
GATEWAY_INTERFACE: CGI/1.1
HTTP_ACCEPT_ENCODING: gzip
HTTP_CONNECTION: Close
HTTP_HOST: a.tracker.thepiratebay.org
HTTP_USER_AGENT: uTorrent/342(109415286)(35702)
PATH: /bin:/usr/bin
QUERY_STRING: info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1
REDIRECT_STATUS: 200
REMOTE_ADDR: 60.246.*.*
REMOTE_PORT: 3445
REQUEST_METHOD: GET
REQUEST_URI: /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1
SCRIPT_FILENAME: /usr/local/apache/htdocs/announce.php
SCRIPT_NAME: /announce.php
SERVER_ADDR: *.*.*.*
SERVER_ADMIN: *@*.*
SERVER_NAME: a.tracker.thepiratebay.org
SERVER_PORT: 80
SERVER_PROTOCOL: HTTP/1.1
SERVER_SIGNATURE:
SERVER_SOFTWARE: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4 mod_perl/2.0.8 Perl/v5.10.1
UNIQUE_ID: VKg8BJBMIPQAD01XYzgAAAAD
PHP_SELF: /announce.php
REQUEST_TIME_FLOAT: 1420311556.43
REQUEST_TIME: 1420311556
argv: Array
argc: 1
그래서 내 질문은 요청 도메인 (HTTP 호스트 헤더)을 기반으로 Apache로 들어오는 요청을 어떻게 차단할 수 있습니까? 요청은 /announce.php뿐만 아니라 다양한 URL에 있으므로 URL로 차단하는 것은 유용하지 않습니다.
또한 그 접근 방식이 실행 가능한지 또는 너무 많은로드를 유발합니까? 아파치에 도달하기 전에 해당 요청을 계속 삭제해야합니까?
최신 정보:
이 문제는 전 세계 많은 국가의 많은 사람들에게 영향을 미쳤습니다.
이에 대한 수많은 보고서와 블로그 게시물과이 트래픽을 차단하는 다양한 솔루션이 있습니다.
여기에 오는 사람이 솔루션을 검색하여이를 차단할 수 있도록 일부 보고서를 수집했습니다.
신비한 중국 트래픽 : HTTP 요청에 사용 된 DNS 서버를 어떻게 알 수 있습니까?
내 서버에 이상한 비트 토렌트 로그온
http://blog.devops.co.il/post/108740168304/torrent-ddos-attack
https://www.webhostingtalk.com/showthread.php?t=1443734
http : // torrentfreak. com / zombie-pirate-bay-tracker-fuels-chinese-ddos-attacks-150124 /
https://isc.sans.edu/forums/diary/Are+You+Piratebay+thepiratebayorg+Resolving+to+Various+Hosts/ 19175 /
http://furbo.org/2015/01/22/fear-china/
http://www.jwz.org/blog/2015/01/chinese-bittorrent-the-gift-that-keeps-on- 기부/