Beberapa hari terakhir saya perhatikan beberapa server dipalu dengan permintaan yang tidak diketahui.
Kebanyakan dari mereka adalah sebagai berikut:
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 -
Setelah sedikit login dan pencarian saya menemukan bahwa beberapa ISP Cina (mungkin CERNET menurut hasil whatsmydns.net) dan beberapa ISP Turki (mungkin TTNET) menanggapi pertanyaan dns seperti a.tracker.thepiratebay.org
dengan berbagai IP yang tidak ada hubungannya dengan piratebay atau torrents. Dengan kata lain mereka tampaknya melakukan semacam Keracunan DNS Cache karena alasan yang aneh.
Jadi, ratusan (jika bukan ribuan) klien bittorrent di negara-negara itu membuat banyak 'pengumuman' ke server web saya yang menghasilkan serangan DDoS yang mengisi semua koneksi Apache.
Saat ini saya sama sekali memblokir China dan Turki dan itu berhasil, tetapi saya ingin menemukan cara yang lebih baik untuk memblokir permintaan itu.
Saya berpikir untuk memblokir permintaan itu dengan mod_security berdasarkan header HTTP Host.
Semua permintaan itu mencakup tajuk Host HTTP seperti a.tracker.thepiratebay.org
(atau banyak subdomain lain dari domain thepiratebay.org).
Berikut adalah dump header permintaan melalui $_SERVER
variabel PHP .
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
Jadi pertanyaan saya adalah, bagaimana saya bisa memblokir permintaan masuk ke Apache berdasarkan domain permintaan (header Host HTTP)? Perlu diingat bahwa permintaan ada di berbagai URL bukan hanya /announce.php sehingga pemblokiran dengan URL tidak berguna.
Juga apakah pendekatan itu layak atau akankah itu menyebabkan terlalu banyak memuat dan saya harus terus menjatuhkan permintaan itu bahkan sebelum mereka mencapai Apache?
Memperbarui:
Ternyata masalah ini telah memengaruhi banyak orang di banyak negara di seluruh dunia.
Ada banyak laporan dan blogpost tentangnya dan berbagai solusi untuk memblokir traffic ini.
Saya telah mengumpulkan beberapa laporan untuk membantu siapa pun yang datang ke sini mencari solusi untuk memblokir ini.
Lalu lintas China yang salah arah dan misterius: Bagaimana saya bisa mengetahui server DNS apa yang digunakan permintaan HTTP?
Bittorrent Strange Masuk Di Server Saya
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-bahan bakar-chinese-ddos-attacks-150124 /
https://isc.sans.edu/forums/diary/Are+Anda+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- memberi/