Langkah preventif terhadap DoS/DDoS di web server

Semua server yang terkoneksi ke jaringan mempunyai potensi untuk diserang pihak tertentu, apalagi server yang anda punyai adalah server penting dan dikenal banyak orang, salah satu metode dalam melakukan cracking yang terkenal adalah dengan menggunakan DoS(denial of services) atau dengan menggunakan variannya yaitu DDoS(Dos yang dilakukan secara terdistribusi menggunakan lebih dari satu attacker host) DoS/DDoS dijalankan dengan tujuan membuat down server atau meunggunakan seluruh bandwidth di suatu link.
Ada cara untuk mencegah bentuk serangan ini, bisa menggunakan firewall bawaan si server ataupun menggunakan software tambahan. Dalam tutorial ini akan dijelaskan bagaimana cara untuk melakukan pencegahan terhadap serangan DoS sekaligus akan kita coba simulasikan DoS, dalam hal ini adalah DoS terhadap server http.
Tools yang akan kita gunakan disini adalah: DDoS-Deflate, tools ini bekerja dengan cara memonitor ip address yang mengirimkan paket dan melakukan establishing connection TCP(http, smtp) ataupun ICMP ping. Ketika script ini melihat jumlah koneksi yang terlalu banyak yang melampaui treshold yang ditentukan maka script akan memerintahkan firewall iptables untuk melakukan blocking terhadap ip address yang bersangkutan dan anda bisa melakukan unblokcing jika diperlukan.
Berikut adalah langkah-langkah untuk menjalankan aplikasi ini:
a. Download Script
]# wget http://www.inetbase.com/scripts/ddos/install.sh
–2012-01-25 16:06:24– http://www.inetbase.com/scripts/ddos/install.sh
Resolving www.inetbase.com… 205.234.99.83
Connecting to www.inetbase.com|205.234.99.83|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1067 (1.0K) [application/x-sh]
Saving to: `install.sh’
100%[======================================>] 1,067 –.-K/s in 0s
2012-01-25 16:06:26 (13.2 MB/s) – `install.sh’ saved [1067/1067]
b. Ubah permission agar file yang kita download bisa di eksekusi
# chmod u+x install.sh
c. Install aplikasi
# ./install.sh
Installing DOS-Deflate 0.6
Downloading source files………done
Creating cron to run script every minute…..(Default setting)…..done
Installation has completed.
Config file is at /usr/local/ddos/ddos.conf
Please send in your comments and/or suggestions to zaf@vsnl.com
d. Configure DDoS-Deflate
#vi /usr/local/ddos/ddos.conf
Anda ubah variabel-variabel yang anda perlukan, berita bagusnya adalah file konfigurasi yang ada sangat intuitif ditambah lagi dengan keterangan yang cukup jelas untuk setiap variabel konfigurasi yang ada
#Path ke script dan program lain
PROGDIR=”/usr/local/ddos”
PROG=”/usr/local/ddos/ddos.sh”
IGNORE_IP_LIST=”/usr/local/ddos/ignore.ip.list”
CRON=”/etc/cron.d/ddos.cron”
APF=”/etc/apf/apf”
IPT=”/sbin/iptables”
#Frequensi untuk merunning cript ini (dalam menit):
FREQ=1
#Jumlah koneksi yang mengindikasikan DoS
NO_OF_CONNECTIONS=50
#Gunakan iptables dibandingkan APF
APF_BAN=0
#Block ip address yang melakukan DoS
KILL=1
#Pemberitahuan ban dilakukan ke email:
EMAIL_TO=”root”
#Jumlah waktu ban
BAN_PERIOD=600
e. Kita lihat konfigurasi dalam cron untuk menjalankan aplikasi ini:
#vi /etc/cron.d/ddos.cron
SHELL=/bin/sh
0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1
Selanjutnya kita akan mencoba untuk melakukan percobaan DoS terhadap server http yang saya miliki, sebenarnya aplikasi ini biasanya digunakan untuk melakukan test terhadap kestabilan suatu server web, aplikasi ini bernama siege. Berikut akan dijelasnkan cara-cara untuk menjalankan aplikasi ini:
a. Install siege
#yum install siege
b. Buat konfigurasi siege
#siege.config
Konfigurasi ini akan terinstall didalam home directory user sebagai .siegerc
Anda bisa melihat konfigurasinya dengan cara melakukan perintah ini
#siege -C
c. Jalankan siege dengan opsi sebagai berikut:
i. -b: benchmark mode, untuk melakukan testing terhadap trouhgput bukan hanya connection
ii. -c: concurent connection: untuk mendefinisikan jumlah concurent connection ke suatu server yang kita test
iii. -t: periode untuk menjalankan testing:
d. Kita coba untuk menjalankan siege ke server dengan jumlah concurent connection 40 dan dalam waktu 1 menit
Server1#siege -b -c 40 -t 1M http://192.168.1.5
i. Lalu kita lihat bagaimana statistik yang timbul didalam server
# netstat -nal | grep EST | wc -l
51
Ii. Cpu(s): 41.4%us, 3.7%sy, 0.0%ni, 50.0%id, 0.0%wa, 1.8%hi, 3.2%si, 0.0%st
Ada 51 conncurent connection, satu dari SSH dan sisanya dari hasil testing, dan kita juga bisa melihat peningkatan cpu usage yang cukup signifikan, kita bisa lihat efek dari sebuah serangan DoS
e. Terakhir kita coba jalankan siege agar kita bisa mengetes kemampuan dari DDoS-deflate:
#siege -b -c 60 -t 2M http://192.168.1.5
Kita jalankan dalam dua menit agar memberi kesempatan DDoS-deflate bekerja
Ketika pertama kali dijalankan akan ada output seperti ini
HTTP/1.1 200 2.02 secs: 3426 bytes ==> /
HTTP/1.1 200 2.02 secs: 3426 bytes ==> /
HTTP/1.1 200 2.01 secs: 3426 bytes ==> /
HTTP/1.1 200 1.89 secs: 3426 bytes ==> /
HTTP/1.1 200 1.89 secs: 3426 bytes ==> /
HTTP/1.1 200 1.88 secs: 3426 bytes ==> /
HTTP/1.1 200 1.88 secs: 3426 bytes ==> /
Namun tiba-tiba ada output seperti ini
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
socket: connection timed out
Yang mengindikasikan adanya blocking otomatis
f. Kita lihat rule dari iptables yang terbentuk:
DROP all — 192.168.1.3 anywhere

Tolong Laporkan Jika Ada Link Yang Error Atau Gambar Tidak Muncul :)
dan mohon untuk mengklik iklan banner untuk kelangsungan blog :)"
Sekalian juga untuk biaya sekolah admin nya. :) terimakasih :)
EmoticonEmoticon