[Share] Mencegah DDoS dengan iptables
#1
ini adalah sedikit dari banyak cara untuk mencegah tipe serangan DDoS (Distributed Denial of Service).
sebelum itu kita berbicara tentang DoS (Denial of Service).

DoS adalah jenis serangan terhadap sebuah komputer atau server di dalam jaringan internet dengan cara menghabiskan sumber (resource) yang dimiliki oleh komputer tersebut sampai komputer tersebut tidak dapat menjalankan fungsinya dengan benar sehingga secara tidak langsung mencegah pengguna lain untuk memperoleh akses layanan dari komputer yang diserang Țersebut. (wikipedia)

lalu apa perbedaannya dari DoS dan DDoS ?
ibaratnya kalo DoS adalah satu orang yang memukul satu orang. tetapi kalo DDoS adalah banyak orang memukul satu orang.

Spoiler! :
[Image: UDP-based-Amplification-Attacks-blackMORE-Ops.jpg]

gambar diatas adalah contoh DDoS yang dicontohkan dengan banyaknya host melakukan penyerangan terhadap satu host.

1. dalam studi kasus TS, ane sebagai sysadmin dalam server milik client dengan spesifikasi ane lupa yang jelas RAM nya sebesar 2GB.
lalu ane melakukan testing dengan mengerahkan sekitar -+ 550 komputer sekaligus dalam detik yang sama mengakses server milik client ane, walhasil server client ane langsung "request time out" <<< DOWN.

2. lalu ane melakukan testing lagi dengan melakukan DDoS dengan -+ 550 komputer ke server milik client ane dengan spesifikasi RAM sebesar 30GB walhasil TIDAK DOWN.

ternyata penyebab dari kasus diatas ane menemukan 2 masalah, yaitu :

1. provider VPS mendeteksi ketika ada banyak host dalam detik yang sama mengunjungi server dalam skala besar.

2. pada server milik client yang memiliki RAM sebesar 30GB berhubung resource RAM yang besar maka server tersebut masih dalam keadaan tenang ketika mengalami hal tersebut.

lalu ane mengatasi hal tersebut dengan melakukan limit dimana di setiap detiknya server hanya bisa dikunjungi dengan jumlah pengunjung sebesar 250 host. dan akan membuat menunggu untuk pengunjung lainnnya diluar bagian dari 250 host tersebut.

cara ini cukup berguna sampai sekarang server client ane masih wuusshhh, dan server tidak down lagi walaupun ini cukup sederhana.

rules pertama :
Spoiler! :

Code:
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 250/second --limit-burst 300 -j ACCEPT


yang dimaksud diatas yaitu, 
-p tcp (protokol yang digunakan tcp)
--dport 80 (port secara spesifik yang akan dilimit traffik nya)
-m state  NEW (rule ini ditujukan untuk koneksi baru)
--limit 250/second (dalam perdetik hanya 250 traffic baru yang diperkenankan untuk mengakses server secara bersamaan, selanjutnya kan dikelompokan didetik berikutnya)
--limit-burst (untuk ledakan traffic nya di cegah di angka 300)

rules kedua :
Spoiler! :

Code:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 250/second --limit-burst 250 -j ACCEPT



rules kedua tidak jauh beda seperti yang diatas, hanya saja rules kedua lebih tertuju untuk semua port. tapi tidak efektif untuk port 22 SSH.

jangan lupa untuk mengetikkan
Spoiler! :

Code:
iptables-save



udah sih itu aja, cie yang abis ngumpul di yogyakarta enggak ngajak2 ane -_-

#2
yang ada ane ga diajak btw nice share..
plus berapa ya??

#3
Wakakaka, bukannya lu udah di jogja kemaren om haha.
Tapi, terimakasih udah berbagi disini, +1 buat om ya ?
Quote:~ Tan Hana Wighna Tan Sirna ~

#4
wihhh... lengkap penjelasannya om.. perlu di tiru cara penulisan thread nya sama temen2 yang lain, jadi threadnya gampang dimengerti

#5
(11-02-2015, 06:09 PM)inyourmind Wrote: ini adalah sedikit dari banyak cara untuk mencegah tipe serangan DDoS (Distributed Denial of Service).
sebelum itu kita berbicara tentang DoS (Denial of Service).

DoS adalah jenis serangan terhadap sebuah komputer atau server di dalam jaringan internet dengan cara menghabiskan sumber (resource) yang dimiliki oleh komputer tersebut sampai komputer tersebut tidak dapat menjalankan fungsinya dengan benar sehingga secara tidak langsung mencegah pengguna lain untuk memperoleh akses layanan dari komputer yang diserang Țersebut. (wikipedia)

lalu apa perbedaannya dari DoS dan DDoS ?
ibaratnya kalo DoS adalah satu orang yang memukul satu orang. tetapi kalo DDoS adalah banyak orang memukul satu orang.

Spoiler! :
[Image: UDP-based-Amplification-Attacks-blackMORE-Ops.jpg]

gambar diatas adalah contoh DDoS yang dicontohkan dengan banyaknya host melakukan penyerangan terhadap satu host.

1. dalam studi kasus TS, ane sebagai sysadmin dalam server milik client dengan spesifikasi ane lupa yang jelas RAM nya sebesar 2GB.
lalu ane melakukan testing dengan mengerahkan sekitar -+ 550 komputer sekaligus dalam detik yang sama mengakses server milik client ane, walhasil server client ane langsung "request time out" <<< DOWN.

2. lalu ane melakukan testing lagi dengan melakukan DDoS dengan -+ 550 komputer ke server milik client ane dengan spesifikasi RAM sebesar 30GB walhasil TIDAK DOWN.

ternyata penyebab dari kasus diatas ane menemukan 2 masalah, yaitu :

1. provider VPS mendeteksi ketika ada banyak host dalam detik yang sama mengunjungi server dalam skala besar.

2. pada server milik client yang memiliki RAM sebesar 30GB berhubung resource RAM yang besar maka server tersebut masih dalam keadaan tenang ketika mengalami hal tersebut.

lalu ane mengatasi hal tersebut dengan melakukan limit dimana di setiap detiknya server hanya bisa dikunjungi dengan jumlah pengunjung sebesar 250 host. dan akan membuat menunggu untuk pengunjung lainnnya diluar bagian dari 250 host tersebut.

cara ini cukup berguna sampai sekarang server client ane masih wuusshhh, dan server tidak down lagi walaupun ini cukup sederhana.

rules pertama :
Spoiler! :

Code:
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 250/second --limit-burst 300 -j ACCEPT


yang dimaksud diatas yaitu, 
-p tcp (protokol yang digunakan tcp)
--dport 80 (port secara spesifik yang akan dilimit traffik nya)
-m state  NEW (rule ini ditujukan untuk koneksi baru)
--limit 250/second (dalam perdetik hanya 250 traffic baru yang diperkenankan untuk mengakses server secara bersamaan, selanjutnya kan dikelompokan didetik berikutnya)
--limit-burst (untuk ledakan traffic nya di cegah di angka 300)

rules kedua :
Spoiler! :

Code:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 250/second --limit-burst 250 -j ACCEPT



rules kedua tidak jauh beda seperti yang diatas, hanya saja rules kedua lebih tertuju untuk semua port. tapi tidak efektif untuk port 22 SSH.

jangan lupa untuk mengetikkan
Spoiler! :

Code:
iptables-save



udah sih itu aja, cie yang abis ngumpul di yogyakarta enggak ngajak2 ane -_-

keren om, memang lebih efektif iptables kalo hardening, bener kan om

#6
selain iptables, ada tuh script yang dikasi sama om zico. Lumayan keren pak... Search aja coba..
Quote:~ Tan Hana Wighna Tan Sirna ~






Users browsing this thread: 1 Guest(s)