Monday, September 21, 2009

tangkal flood syn

Pernah mendengar banjir SYN ? Tiba-tiba URL atau email anda tidak dapat anda akses dengan browser atau mailer client, padahal akses ke server tidak begitu banyak dan Apache berjalan dengan normal. Atau tiba-tiba anda tidak dapat mengambil email, dengan error yang muncul “server sedang sibuk” dsb. Kalau anda periksa di log server, dan akses ke server tidak banyak maka ada kemungkinan besar anda kena banjir SYN ini.

Serangan ini sudah tentu akan sangat mengganggu kinerja server anda. Akibat dari serangan ini, beberapa service server anda akan mati.

Kalau anda periksa port 25 (SMTP) dengan perintah netstat maka akan muncul seperti berikut ini.

[root@sv ~]# netstat -na | grep :25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 123.123.123.123:25 79.173.92.145:4166 SYN_RECV
tcp 0 0 123.123.123.123:25 90.176.245.108:18484 SYN_RECV
tcp 0 0 127.0.0.1:25 127.0.0.1:53100 SYN_RECV
tcp 0 0 127.0.0.1:25 127.0.0.1:53160 SYN_RECV
tcp 0 0 123.123.123.123:25 87.207.97.173:62895 SYN_RECV
tcp 0 0 123.123.123.123:25 88.242.197.228:4162 SYN_RECV
tcp 0 0 123.123.123.123:25 87.99.16.155:2590 SYN_RECV
tcp 0 0 123.123.123.123:25 189.81.42.181:61344 SYN_RECV
tcp 0 0 127.0.0.1:25 127.0.0.1:53130 SYN_RECV
tcp 0 0 123.123.123.123:25 58.9.114.154:7777 SYN_RECV
tcp 0 0 123.123.123.123:25 141.157.91.183:50755 SYN_RECV

Banyak sekali sambungan port 25 yang statusnya adalah SYN_RECV, artinya koneksi sudah siap diterima tapi tidak diteruskan oleh si peminta. Alias server kebanjiran permintaan akan tetapi tidak ada respon dari si penerima. Karena permintaan sambungan mirip dengan banjir bandang yang datang tiba-tiba, sedangkan kemampuan server untuk menerima sambungan juga terbatas, maka akhirnya server kebanjiran SYN_RECV. Akibatnya service yang kebanjiran itu menjadi drop alias tidak bisa menerima sambungan lagi. Sehingga ketika anda mau mengambil email, ada pesan kalau mail server anda sibuk.

Kalau serangan menimpa service HTTP, maka otomatis website kita tidak akan dapat dilihat oleh orang lain karena servicenya macet.
Serangan ini dinamakan SYN Flood. Bagaimana cara menghindari serangan semacam ini ?
Karena serangan ini terkadang menggunakan IP palsu alias poofed IP address, maka sulit untuk diblok dengan iptables. Salah satu jalan satu-satunya adalah dengan mengeset setting di kernel agar tidak menerima sambungan yang bertubi-tubi seperti banjir ini.
Berikut adalah penjelasan singkat agar server kita tidak kebanjiran SYN_RECV.

Aktifkan setting parameter kernel, TCP syncookies di file /proc/sys/net/ipv4/tcp_syncookies dengan perintah seperti berikut ini.

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

dan tambahkan setting di file /etc/sysctl.conf seperti berikut ini,

net.ipv4.tcp_syncookies = 1

setelah itu jalankan perintah di bawah ini, agar TCP syncookies menjadi aktif walaupun servernya direstart.

/sbin/sysctl -p /etc/sysctl.conf

Anda dapat memeriksa setting network kernel anda dengan perintah berikut ini.

/sbin/sysctl -a

Kalau nilai net.ipv4.tcp_syncookies menjadi 1, maka server anda insya Allah, aman dari serangan banjir SYN flooding.
Yang perlu diperhatikan bahwa akibat serangan SYN Flood ini, server anda pun dapat disusupi dari luar.

Kalau ada komentar silakan disampaikan dengan mengisi komentar di artikel ini.

Tulisan ini dimuat juga di warnaislam.com
http://warnaislam.com/rubrik/teknologi/2008/12/3/16080/Menjaga_Server_Serangan_Banjir_SYN_Flood.htm

No comments: