In den letzten Tagen bemerkte ich, dass einige Server mit unbekannten Anfragen überhäuft wurden.
Die meisten von ihnen sind wie folgt:
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 -
Nach ein wenig Protokollierung und Suche fand ich heraus, dass einige chinesische ISP (wahrscheinlich CERNET nach den Ergebnissen von whatsmydns.net) und einige türkische ISP (wahrscheinlich TTNET) auf DNS-Abfragen wie a.tracker.thepiratebay.org
mit verschiedenen IPs reagieren , die nichts mit PirateBay zu tun haben oder Torrents. Mit anderen Worten, sie scheinen aus irgendeinem bizarren Grund eine Art DNS-Cache-Vergiftung durchzuführen.
Hunderte (wenn nicht Tausende) von Bittorrent-Kunden in diesen Ländern senden meinen Webservern Unmengen von "Ankündigungen", die so gut wie zu einem DDoS-Angriff führen, der alle Apache-Verbindungen ausfüllt.
Im Moment habe ich China und die Türkei blockiert und es macht den Job, aber ich würde gerne einen besseren Weg finden, um diese Anfragen zu blockieren.
Ich dachte daran, diese Anforderungen mit mod_security basierend auf dem HTTP-Host-Header zu blockieren.
Alle diese Anforderungen enthalten einen HTTP-Host-Header wie a.tracker.thepiratebay.org
(oder viele andere Unterdomänen der Domäne piratebay.org).
Hier ist ein Speicherauszug der Anforderungsheader über die PHP- $_SERVER
Variable.
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
Meine Frage ist also, wie ich eingehende Anfragen an Apache basierend auf der Anfragedomäne (HTTP-Host-Header) blockieren kann. Beachten Sie, dass sich die Anfragen nicht nur auf /announce.php, sondern auf verschiedenen URLs befinden. Das Blockieren nach URL ist daher nicht sinnvoll.
Ist dieser Ansatz auch realisierbar oder wird er zu viel Last verursachen und ich sollte diese Anforderungen weiterhin löschen, bevor sie überhaupt Apache erreichen?
Aktualisieren:
Es stellt sich heraus, dass dieses Problem viele Menschen in vielen Ländern auf der ganzen Welt betroffen hat.
Es gab zahlreiche Berichte und Blogposts darüber und verschiedene Lösungen, um diesen Verkehr zu blockieren.
Ich habe einige der Berichte zusammengestellt, um allen, die hierher kommen, bei der Suche nach einer Lösung zu helfen, um dies zu blockieren.
Geheimnisvoller fehlgeleiteter chinesischer Verkehr: Wie kann ich herausfinden, welchen DNS-Server eine HTTP-Anfrage verwendet hat?
Merkwürdige Bittorrent-Anmeldung auf meinem Server
http://blog.devops.co.il/post/108740168304/torrent-ddos-attack
https://www.webhostingtalk.com/showthread.php?t=1443734
http: // torrentfreak. de / zombie-pirate-bay-tracker-treibt-chinesische-ddos-angriffe-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- geben /
Antworten:
Gleiches Thema hier. Ich benutze mod_security, um den User-Agent zu blockieren
Ich würde das Protokoll in nolog ändern, nachdem Sie überprüft haben, ob es funktioniert, um zu vermeiden, dass Ihre Protokolldatei voll ist
quelle
SecRule REQUEST_URI "\?info_hash\=" "id:10000002,rev:1,severity:2,nolog,msg:'Torrent Announce Hit Detected'"
dig a.tracker.thepiratebay.org
von einem beliebigen DNS-Server in dieser Liste public-dns.tk/nameserver/cn.html eine andere Antwort zu erhalten. Dasselbe fürtracker.thepiratebay.org
das auch in unserem Host aufgetaucht ist: Header. Es gibt einen Beitrag dazu auf viewdns.info/research/… mit einigen zusätzlichen Seiten. Der Versuch, einige der zurückgegebenen Adressen mit viewdns.info/reverseip umzukehren, zeigt, dass dies ziemlich zufällig ist.Wir haben genau dasselbe Problem mit einem Standort unseres Kunden. Ich fügte die folgenden in der Nähe der Spitze ihrer:
Die auskommentierte RewriteCond kann nicht kommentiert werden, um nur einen bestimmten Benutzeragenten zu blockieren. Aber sie haben keinen Inhalt bei announce oder announce.php, also haben wir einfach alles blockiert.
quelle
Im Moment habe ich das gleiche Problem: Torrent-Tracker zeigen auf meinen Server. Ich habe in den letzten Tagen mit iptables experimentiert und die Header und Muster der Anforderungen überprüft und auf ein paar iptables - Regeln eingegrenzt, die so gut wie den gesamten aktuellen scheinbar böswilligen Datenverkehr aus Asien (China, Malaysia, Japan und Japan) filtern Hongkong).
Unten sind die Regeln. Hoffe es hilft jemandem.
quelle
REJECT
ausDROP
einem bestimmten Grund für entschieden? (dh: Clients können nach Erhalt einesREJECT
?--string "GET /announce"
kümmern, die tatsächliche Anfrage abzudecken .Ich schrieb einen Blog-Beitrag darüber, wie man BitTorrent-Clients anweist, wegzugehen und nie wieder zurückzukehren, ähnlich wie Dan, aber mit Nginx.
Torrent-Tracker haben (normalerweise) eine Standard-URL, die mit
/announce
oder beginnt/scrape
, daher würde ich das Filtern nach URL nicht so schnell verwerfen. Es klappt.Der vollständige Beitrag ist unter - http://dvps.me/ddos-attack-by-torrent
quelle
DNS Cache Poisoning
CERNET in China ausgelöst, da es auf TPB-Domains mit zufälligen und nicht-chinesischen IPs reagiert. AFAIK PEX dient zum Teilen von Peers, nicht von Trackern. Können Sie das näher erläutern oder Unterlagen bereitstellen?a.tracker.thepiratebay.org
odertracker.thepiratebay.org
die möglicherweise oder nicht das eigentliche Ziel dieser Kunden sein. Es können auch gefälschte Kunden sein, die sich nur als chinesische Bitterstoffe maskieren :)Ich nahm die chinesischen IP-Bereiche von: http://www.wizcrafts.net/chinese-blocklist.html und blockierte sie in meiner CSF-Firewall. Hier sind die Bereiche, falls Sie sie kopieren und in Ihre Deny-IP-Liste von CSF einfügen möchten :
quelle
CC_DENY = "CN"
auf ,/etc/csf/csf.conf
und es wird die chinesischen Präfixe automatisch finden basierend auf Maxmind GeoIP - Datenbank.