Dalam mengadmini server, sering kita menemui hal-hal yang lucu. Mulai dari port scanning, bruteforce password, vulnerabilities test, sampai pada perbuatan paling keji dan munkar. DoS/DDoS.
Khusus yang terakhir ini, memang sangat merepotkan, bisa bikin tagihan bandwidth menggila, menyebabkan sistem jadi tidak stabil, sampek kemungkinan kerusakan hardware.
Sebenere, ada cara yang cukup sederhana buat mengatasi DDoS ini, dengan catatan, DDoS nya nggak akut, dan kita punya akses ke root.
Pertama, kita lihat ip berapa saja yang terkoneksi ke mesin kita, dan berapa jumlah requestnya. Hal ini bisa dilakukan dengan perintah:
netstat -na |grep ":80" |awk '{print$5}' |cut -d: -f1 |sort | uniq -c | sort -nk 1
Nanti akan muncul kurang lebih dengan format
[jumlah request] [nomor ip]
[jumlah request] [nomor ip]
[jumlah request] [nomor ip]
Urut dari request paling sedikit, terus kebawah dengan jumlah request paling banyak. Dalam kasus ini, request ke port 80. Untuk memeriksa port lain, cukup ganti :80 dengan port yang kita mau. Request yang cukup banyak dalam satu ip, katakanlah lebih dari 30, sangat layak dicurigai sebagai pelaku DoS. Dengan pertimbangan, bukan ip isp. (bisa dikonfirmasi dengan whois)
Setelah diketahui ip mana yang layak dicurigai, kita bisa tambahkan ke konfigurasi iptables agar men-drop request dari ip yang kita curigai. Perintahnya kurang lebih:
iptables -I INPUT -s 67.228.166.103 -j DROP
Contoh perintah tadi men-drop semua koneksi dari ip 67.228.166.103, sehingga ip tersebut tidak bisa terkoneksi lagi dengan server kita. Lakukan perintah itu pada semua ip yang dicurigai sebagai pelaku DoS.
Dan hasilnya, server kembali enteng karena biang keroknya sudah diatasi.
Eh iya, ada baiknya dicatat ip berapa saja yang kita drop agar besok-besok mudah membuka blokadenya. Kita gak mau salah sasaran atau terlalu kejam dengan memblok satu ip seumur umur karena pernah ngusili kita. Lagipula belum tentu juga empunya ip pelakunya. Bisa juga mereka cuma korban.
Nah buat membuka blokade, bisa dengan perintah seperti ini:
iptables -D INPUT -s 67.228.166.103 -j DROP
yang akan membebaskan ip 67.228.166.103 dari blokade.
ps.
Buat yang sudah tahu, dilarang ngejek, ini sekalian buat catetan saya sendiri biar ndak lupa.