Posted: 05-08-2019, 01:50 PM
(This post was last modified: 05-08-2019, 11:45 PM by darkranger.)
Hallo kembali lagi dengan saya di sini,
Untuk melanjutkan artikel sebelumnya tentang cara mengamankan server dari berbagai serangan.
Di post kali ini saya akan membahas bagaimana cara meminimalisir serangan DOS/DDOS pada server yang kita kelola secara teknisnya.
Yang akan kita bahas kali ini adalah:
Blok traffic masuk ICMP
Blok IP yang di sinyalir membahayakan server dengan iptables
Batasi jumlah traffic masuk pada server
Tutup port yang tidak di perlukan
Batasi ukuran file yang di upload
Pasang IDS & IPS untuk meminimalisir serangan
Pertama:
Oke langsung saja ke bahasan pertama yaitu mem blok traffic masuk ICMP.
Kenapa ICMP harus di batasi??
Karena perlu kita ketahui juga dalam serangan DOS/DDOS itu ada namanya teknik "Ping of death" atau bisa di sebut sebagai serangan yang di tujukan pada protokol ICMP.
Untuk cara menangkalnya cukup mudah, kita hanya menambahkan rule iptables saja.
Tetapi sebelum mengeksekusi perintahnya kita harus menggunakan user root terlebih dahulu.
Perintahnya kurang lebih seperti ini
Code:
$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
dan jika kalian ingin menghapus rute tersebut cukup mengganti "-A" menjadi "-D".
Code:
$ iptables -D INPUT -p icmp --icmp-type echo-request -j DROP
Cukup mudah bukan?? :)
Kedua:
Oke kita lanjut ke pembahasan kedua, yaitu membloking ip address yang di sinyalir membahayakan server.
Seperti biasa tools yang di gunakan masih menggunakan iptables.
Perintahnya serperti ini
Code:
$ iptables -A INPUT -s ipaddress -j DROP
Sebagai contoh kita akan memblok ip 1.1.1.1, dan perintahnya seperti ini.
Code:
$ iptables -A INPUT -s 1.1.1.1 -j DROP
Seperti pembahasan di atas, jika kita ingin meng unblock tinggal mengganti "-A" menjadi "-D".
Code:
$ iptables -D INPUT -s 1.1.1.1 -j DROP
Sudah mulai sedikit paham dengan iptables?? :)
Ketiga:
Lanjut ke pembahasan ke tiga yaitu tentang cara membatasi maksimal request yang masuk.
Kali ini masih seputar iptables, dan tidak perlu lagi seting di webserver.
Tujuannya yaitu menghidari bruteforce, DOS/DDOS pada web server, dan bisa juga di terapkan ke service yang lain.
Sebagai contoh bisa di terapkan juga ke port ssh agar tidak terjadi serangan bruterforce secara berturut turut.
Ketika ada salah satu ip yang mencoba mem bruteforce maka ip tersebut akan di block oleh iptables untuk sementara.
Perintahnya kurang lebih seperti ini
Code:
$ iptables -I INPUT -p tcp --dport [port] -i [interface] -m state --state NEW -m recent --set
$ iptables -I INPUT -p tcp --dport [port] -i [interface] -m state --state NEW -m recent --update --seconds [waktu] --hitcount 4 -j DROP
Keterangan:
[port] = port yang akan kita batasi koneksinya
[interface] = interface jaringan yang di gunakan pada server
[waktu] = waktu tunggu setelah di blok oleh ip tables
Sebagai contoh apabila di server kita mempunyai 3 port yang di buka maka perintahnya seperti ini
Code:
$ iptables -I INPUT -p tcp --dport 22 -i ens3 -m state --state NEW -m recent --set
$ iptables -I INPUT -p tcp --dport 80 -i ens3 -m state --state NEW -m recent --set
$ iptables -I INPUT -p tcp --dport 443 -i ens3 -m state --state NEW -m recent --set
$ iptables -I INPUT -p tcp --dport 22 -i ens3 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
$ iptables -I INPUT -p tcp --dport 80 -i ens3 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
$ iptables -I INPUT -p tcp --dport 443 -i ens3 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
Port 22 = SSH
Port 80 = Web server
Port 443 = Web server
ens3 = Interface jaringan
Kurang lebih seperti itu teknisnya dalam membatasi koneksi yang masuk pada server menggunakan iptables.
Dan jangan lupa juga kalau kita sudah menginput rule iptables di atas, kita harus menyimpan rule tersebut dengan perintah iptables-save.
Code:
$ iptables-save
Keempat:
Untuk tahap ke empat yaitu menutup port yang tidak terpakai.
Kali ini caranya agak sedikit berbeda, yang di mana sebelum mematikan service kita harus mengecek terlebih dahulu port yang terbuka dengan netstat.
Perintah dasarnya seperti ini
Code:
$ netstat -ntlp
Untuk melihat service apa saja yang di jalankan, kita harus menggunakan user root agar bisa terlihar name servicenya.
Karena kalo kita menjalankan netstat menggunakan user biasa, nama service dan nomer pid nya tidak akan muncul di outputnya.
Setelah kita mengetahui pid dan port mana yang tidak terpakai, tahap selanjutnya adalah memberhentikan service tersebut.
Sebagai contoh
Di gambar tersebut terlihat service haproxy dan python yang sedang berjalan tetapi proses tersebut sebenernya tidak terpakai.
Selain itu juga port 31337 itu adalah port backdoor (bind shell), dan ini yang akan menyebabkan server kita menjadi tidak aman.
Untuk cara memberhentikan service dan backdoor tersebut ada banyak cara, yang pertama memberhentikan terlebih dahulu service haproxy yang sedang berjalan dengan cara seperti ini.
Code:
$ /etc/init.d/haproxy stop
atau
$ systemctl stop haproxy
Kemudian cara selanjutnya yaitu mendisable service tersebut saat restart dengan perintah ini.
Code:
$ systemctl disable haproxy
Selanjutnya jika service yang berjalan tidak ada di dalam systemctl atau init.d kita bisa mematikan proses secara paksa dengan perintah ini.
Code:
$ kill -9 <pid>
<pid> ini adalah pid proses yang keluar di dalam output netstat tadi, sebagai contoh pid yang menjalankan python yaitu 5615 dan perintahnya seperti ini.
Code:
$ kill -9 5615
Kalo kalian sudah terbiasa dengan perintah linux pastinya cara ini sangat mudah di lakukan. :)
Kelima:
Yang ke lima adalah bagaimana caranya agar koneksi yang di terima pada server bisa kita limit.
Karena secara default, bandwidth koneksi yang di gunakan itu rata" tanpa ada batasan ukurannya.
Di sini kita akan coba me limit bandwidth yang akan kita gunakan menggunakan aplikasi wondershaper.
Untuk installasi nya cukup mudah, kita tinggal mengetik saja perintah ini di terminal.
Code:
$ apt install make
$ git clone https://github.com/magnific0/wondershaper
$ cd wondershaper
$ make install
$ chmod +x /usr/bin/wondershaper
$ systemctl enable wondershaper
Setelah installasi selesai, kita tinggal menyesuaikan interface yang di pakai, kecepatan download dan upload pada setingan wondershaper dengan mengedit file /etc/conf.d/wondershaper.conf kemudian mengaktifkan service nya.
Kemudian jika kita ingin mengecek apakah wondershaper nya sudah bekerja dengan baik, kita bisa cek menggunakan aplikasi speedtest di terminal.
Kenapa hal ini harus kita lakukan??
Karena sebagai kita ketahui bahwa service DDOS itu bisa di beli secara online, dan bisa di jalankan juga tanpa menggunakan koneksi yang kita pakai.
Sehingga serangan yang di hasilkan bisa sangat besar jika server kita tidak di batasi bandwidth nya.
Keenam:
Dan yang terakhir adalah memasang IDS dan IPS pada web server.
Cara ini cukup mudah juga dalam proses installasinya, kita tinggal install saja aplikasi snort di terminal server kita.
Code:
$ apt install snort
Setelah proses installasi selesai, snort akan berjalan secara otomatis di system.
Dia juga akan menganalisa setiap request yang masuk apakah request tersebut mencurigakan atau tidak.
Kemudian hasil analisa tersebut akan masuk ke dalam log server untuk di analisa oleh kita.
Selain itu juga kita bisa membuat rule sendiri untuk pengamanan pada server kita.
Mungkin cukup sekian pembahasan kali ini tentang cara meminimalisir serangan DOS/DDOS pada server.
Kurang lebih nya mohon, di maklumi.
Karena saya sendiri pun masih belajar dan mendalami bagaimana cara mengamankan server dari berbagai serangan.
Next saya akan melanjutkan tulisan berikutnya.