Serverınıza İnetbase Ddos Koruması
Serverınıza İnetbase Ddos Koruması
Dos saldırıları yıllardır olduğu gibi hala çok moda.Hiç beklemediğiniz ulkelerden saldırı alabiliyorsunuz.Bu yuzden tedbiri elden bırakmamak ve guvenliğimizi sağlamak zorundayız.Bunun için piyasa kullanabileceğimiz birçok ucretsiz script var.Bunların arasında en çok bilineni şuphesiz inetbase adlı ddos koruma scripti.Bu script serverda belirli zamanda çok fazla bağlantı açanları apf veya iptables kullanarak banlıyor.Çok buyuk saldırılar hariç ufak ve orta çaplı saldırıları onleyebilirsiniz.Kendi VPS veya VDS'nize kurmanızda fayda var diye duşunuyorum.
Öncelikle bilmeniz gereken bu script kesinlikle buyuk saldırıları engelleyemez.Bu tarz saldırılara donanım kaynaklarınız imkanlarıyla ortantılı olarak karşı koyabilirsiniz.Ki buyuk çaplı saldırılarda koskoca veri merkezleri zarar goruyor.Bir tane site niye gormesin.Ama birkaç site veya serverdan gelen saldırıları inetbase ile engelleyebilirsiniz.
Serverımıza kurulum yapmak için oncelikle ssh ile root girişi yapıyoruz.Ve daha sonraki aşağıdaki 2 komutu çalıştırarak scripti kuruyoruz.
wget http://www.inetbase.com/scripts/ddos/install.sh
sh install.sh
Kurulumu yaptıktan sonra ayarlar için /usr/local/ddos/ddos.conf dosyasını açalım.
APF_BAN=0 (Eğer 0 olursa iptables ile 1 olursa apf ile banlar.)
NO_OF_CONNECTIONS=150 (150 bağlantıdan sonrasını banlar.Ben 75 kullanıyorum.)
BAN_PERIOD=600 (10 dakika içinde yukarıdaki sayı kadar bağlantı açanı banlar.)
EMAIL_TO=mail@siteadresi.com (Banlanma bilgilerinin gideceği mail adresi.)
Bu ayarlardan sonra aşağıdaki komutu konsola girerek birkaç duzenleme yapıyoruz.
netstat -tn --inet 2> /dev/null| grep ":80" | awk '/tcp[ ]*[0-9]+[ ]*[0-9]+[ ]+[^ ]+[ ]*[^ ]*/ { print $5; }' | cut -d":" -f1 | sort | uniq -c | sort -n
Ddos.conf dosyasının en altına gozardı edilecek ip adreslerini ekleyebiliriz.(Google botları,local ipler gibi)
PROTECTED_IPS=( "192.168.1.10" "127.0.0.1" "10.0.10.0" "192.168.2.5" )
/usr/local/ddos/ddos.sh dosyası içinde aşağıdaki satırı bulun.
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
Daha sonra bu satırın altındakileri silip aşağıdaki kodları ekleyelim.
BAD_SYN_IP_LIST=`$TMP_FILE`
netstat -np | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | cut -d: -f1 | sort | uniq -c | \
sort -n| awk '{if ($1 > 4) print $2;}' > $BAD_SYN_IP_LIST
cat $BAD_SYN_IP_LIST
while read SYN_IP; do
$IPT -I INPUT -s $SYN_IP -j DROP ;
echo $SYN_IP>> $BANNED_IP_LIST
echo $SYN_IP>> $IGNORE_IP_LIST
done < $BAD_SYN_IP_LIST
#DDOS Bolumu
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
cat $BAD_IP_LIST
if [ $KILL -eq 1 ]; then
IP_BAN_NOW=0
while read line; do
CURR_LINE_CONN=$(echo $line | cut -d" " -f1)
CURR_LINE_IP=$(echo $line | cut -d" " -f2)
if [ $CURR_LINE_CONN -lt $NO_OF_CONNECTIONS ]; then
break
fi
IGNORE_BAN=`grep -c $CURR_LINE_IP $IGNORE_IP_LIST`
if [ $IGNORE_BAN -ge 1 ]; then
continue
fi
IP_BAN_NOW=1
echo "$CURR_LINE_IP with $CURR_LINE_CONN connections" >> $BANNED_IP_MAIL
echo $CURR_LINE_IP >> $BANNED_IP_LIST
echo $CURR_LINE_IP >> $IGNORE_IP_LIST
if [ $APF_BAN -eq 1 ]; then
$APF -d $CURR_LINE_IP
else
NOT_PROTECTED=1
for u in "${PROTECTED_IPS[@]}"; do
if [ $CURR_LINE_IP = $u ]; then
NOT_PROTECTED=0
break
fi
done
if [ $NOT_PROTECTED -eq 1 && $CURR_LINE_IP != ""]; then
$IPT -I INPUT -s $CURR_LINE_IP -j DROP
fi
fi
done < $BAD_IP_LIST
if [ $IP_BAN_NOW -eq 1 ]; then
dt=`date`
if [ $EMAIL_TO != "" ]; then
cat $BANNED_IP_MAIL | mail -s "IP addresses banned on $dt" $EMAIL_TO
fi
unbanip
fi
fi
rm -f $TMP_PREFIX.*
Böylelikle arka arkaya 4 syn paketi gonderen ip adresini banlıyorsunuz.Bu banlanan ip adresleri sizlere mail olarak gelecek.Eğer banlanan tum ip adreslerini boşaltmak için aşağıdaki komutu kullanabilirsiniz.
iptables -F
Eğer inetbase kullanmak istemiyorsanız da aşağıdaki uninstall dosyasını indirip çalıştırabilirsiniz.
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
sh uninstall.ddos