Sudah dua hari ini server mengalami serangan DOS TCP SYN FLOOD, dan kemarin sempat nge-drop sebentar. Syukurlah tidak sampai beberapa jam server kembali up. Penyebab pastinya tidak tahu, tapi serangan mulai datang ketika saya merubah settingan file /etc/hosts.allow dengan menambaahkan baris :
All : All : Allow
Settingan ini saya maksudkan untuk memperbolehkan akses ssh dari IP mana saja, karena settingan sebelumnya hanya ip-ip tertentu saja yang diperbolehkan akses ke server, karena koneksi speedy telkom selalu berubah-ubah sehingga sering menyulitkan saya untuk akses ssh ke server. Tapi kemudian hal ini malah menjadi bumerang bagi server saya, yang menyebabkan munculnya serangan tersebut. Tidak lama setelah saya menutup baris diatas, serangan mereda dan server kembali bisa diakses.
Hikmahnya, saya menjadi harus lebih hati-hati lagi. Selain itu Saya jadi mengenal sedikit mengenai TCP SYN Flood. Meskipun sering Saya mengajarkan mengenai Three Way Handshake koneksi TCP tapi baru kali ini Saya menyadari kegunaan lain dari pengiriman paket SYN.
Secara sederhana penyerangan TCP SYN Flood adalah mengirimkan paket SYN secara besar-besaran dalam waktu yang bersamaan sehingga membanjiri koneksi target dan menyebabkan target tersebut tidak lagi mampu menerima koneksi baru. Paket SYN yang dikirimkan oleh penyerang telah memiliki IP source address yang telah dimodifikasi (biasanya palsu), sehingga pada saat komputer target mengirimkan SYN + ACK, untuk merespon paket SYN yang dikirimkan oleh penyerang akan mengirimkan ke alamat palsu dan MENUNGGU ACK dari IP address palsu tersebut. Proses ini akan menyebabkan antrian, dan penggunaan buffer menjadi penuh sehingga tidak bisa menerima koneksi baru.
Untuk mengatasi serangan TCP SYN Flood ini, saya melakukan tweak konfigurasi server FreeBSD saya pada sysctl.conf berikut baris konfigurasi yang saya tambahkan untuk mengatasi serangan TCP SYN Flood dan beberapa serangan yang lainnya, diambil dari sini :
compat.linux.osrelease=2.6.16 net.inet.icmp.icmplim=10 net.inet.icmp.maskrepl=0 net.inet.icmp.drop_redirect=1 net.icmp.bmcastechno=0 net.inet.tcp.icmp_may_rst=10 net.inet.tcp.drop_synfin=1 #kern.ipc.somaxconn=65536 net.inet.ip.fw.one_pass=0 kern.ipc.nmbclusters=32768 kern.maxfiles=65536 net.inet.ip.stealth=0 net.inet.tcp.rfc1323=1 net.inet.tcp.blackhole=2 net.inet.tcp.blackhole=1 net.inet.ip.rtexpire=2 net.inet.ip.rtminexpire=2 net.inet.ip.rtmaxcache=256 net.inet.ip.accept_sourceroute=0 net.inet.ip.sourceroute=0 net.link.ether.inet.log_arp_wrong_iface=0 kern.ps_showallprocs=0 kern.ps_argsopen=0 kern.randompid=348
Anda punya pengalaman mengenai serangan TCP SYN Flood ini? atau tipe serangan lain dan bagaimana cara mengatasinya?
ref :
- http://tools.ietf.org/html/draft-ietf-tcpm-syn-flood-04
- http://ejlp.blogspot.com/2008/02/serangan-tcp-syn-flood.html
- http://id.wikipedia.org/wiki/SYN_flooding_attack