Melindungi server dari serangan spamming, scanning, harvesting dan dDoS attacks
December 8 | Posted by Muhammad Yusuf E. | Security Tags: dDos, iptables, scanning, scripts, spamming
Serangan ke server akan datang dengan berbagai macam cara. Yang paling sering adalah mungkin SPAM email yang akan datang ke mailbox anda. Atau mungkin ip addres scanning yang akan menimpa server anda. Ada beberapa cara untuk melawah serangan semua itu, misalnya saja dengan menginstall SpamAssassin di server kita. Akan tetapi otomatis resource server kita akan terpakai untuk menjalankan SpamAssassin ini. Misalnya saja adalah CPU server yang akan semakin tinggi atau memori kita semakin sedikit yang tersisa.
Apalagi kalau serangan SPAM email datang dengan bertubi-tubi dalam jumlah besar, sudah pasti CPU atau memory akan terpakai untuk menjalankan proses SpamAssassin ini.
Nah di dalam tulisan ini penulis ingin memperkenalkan bagaimana cara menangkal serangan-serangan ini di atas kernel layer dengan memakai iptables. Karena diblok dengan iptables maka otomatis resource(CPU, Memory) server kita tidak akan terpakai sama sekali. Ketika ada permintaan dari list ip address yang bermasalah dari spamhaus.org, maka akan langsung di blok melalui iptables ini. Dengan demikian otomatis service-service kita akan berjalan dengan normal, tanpa gangguan atau beban tambahan.
Berikut adalah script singkat yang dapat kita pasang di server kita. Cara kerja script ini sangat sederhana sekali, pertama akan mengambil list ip address yang telah terdaftar di spamhaus.org(http://www.spamhaus.org/drop/drop.lasso) sebagai ip address yang bermasalah karena sering melakukan serangan SPAM, scanning atau DoS.
[sourcecode lang='php']
#!/bin/bash
FILE=”/tmp/drop.lasso”
URL=”http://www.spamhaus.org/drop/drop.lasso”
echo “”
echo -n “Applying DROP list to existing firewall…”
[ -f $FILE ] && /bin/rm -f $FILE || :
cd /tmp
wget $URL
#iptables policy di hapus
/sbin/iptables -F
#jalankan policy yang sudah ada
./regular_rules
blocks=$(cat $FILE | egrep -v ‘^;’ | awk ‘{ print $1}’)
/sbin/iptables -N droplist
for ipblock in $blocks
do
/sbin/iptables -A droplist -s $ipblock -j LOG –log-prefix “DROP List Block”
/sbin/iptables -A droplist -s $ipblock -j DROP
done
/sbin/iptables -I INPUT -j droplist
/sbin/iptables -I OUTPUT -j droplist
/sbin/iptables -I FORWARD -j droplist
echo “…Done”
/bin/rm -f $FILE
[/sourcecode]
regular_rules adalah script yang kita jalankan sebelum menjalankan script di atas. Script ini berisi policy dari iptables yang kita miliki sebelum dihapus dengan perintah iptables -F. Sudah tentu, kalau anda tidak memiliki policy di iptables anda, baris regular_rules tidak diperlukan.
Selamat mencoba.


