Dos saldırıları yıllardır olduğu gibi hala çok moda.Hiç beklemediğiniz ülkelerden saldırı alabiliyorsunuz.Bu yüzden tedbiri elden bırakmamak ve güvenliğimizi sağlamak zorundayız.Bunun için piyasa kullanabileceğimiz birçok ücretsiz script var.Bunların arasında en çok bilineni şüphesiz inetbase adlı ddos koruma scripti.Bu script serverda belirli zamanda çok fazla bağlantı açanları apf veya iptables kullanarak banlıyor.Çok büyük saldırılar hariç ufak ve orta çaplı saldırıları önleyebilirsiniz.Kendi VPS veya VDS'nize kurmanızda fayda var diye düşünüyorum.
Öncelikle bilmeniz gereken bu script kesinlikle büyük saldırıları engelleyemez.Bu tarz saldırılara donanım kaynaklarınız imkanlarıyla ortantılı olarak karşı koyabilirsiniz.Ki büyük çaplı saldırılarda koskoca veri merkezleri zarar görüyor.Bir tane site niye görmesin.Ama birkaç site veya serverdan gelen saldırıları inetbase ile engelleyebilirsiniz.
Serverımıza kurulum yapmak için öncelikle 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
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ç düzenleme 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
PROTECTED_IPS=( "192.168.1.10" "127.0.0.1" "10.0.10.0" "192.168.2.5" )
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
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.*
iptables -F
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos sh uninstall.ddos
Eline sağlık :D
YanıtlaSil