Блокировка по странам
Материал из [k0d.cc] Hack Wiki
Защита от ddos на уровне iptables
Благодаря расчудесному сайту ipdeny.com, который любезно собрал списки подсетей из различных стран мы можем воспользоваться нехитрым скриптиком.
Для начала:
mkdir /root/ddos cd /root/ddos touch count.sh chmod +x count.sh
Добавляем в count.sh следующее:
#!/bin/bash ### You can ban countries - use he ISO names so like Russian = ru , Ukrainian = uk ### ISO="af cn al dz as ad ao ai aq ag am aw au at az kh cm cv cf cg co in it zm zw" ### переменные среды, установите ваши ### IPT=/sbin/iptables WGET=/usr/bin/wget EGREP=/bin/egrep SPAMLIST="countrydrop" ZONEROOT="/root/ddos" DLROOT="http://www.ipdeny.com/ipblocks/data/countries" # Создаем папку если ее нету [ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT # создаем новую табличку $IPT -N $SPAMLIST # вгоняем в массив все страны for c in $ISO do local zone file tDB=$ZONEROOT/$c.zone # получаем файлы с их ИП на железо $WGET -O $tDB $DLROOT/$c.zone # Выставляем блок для всего массива ип-ов BADIPS=$(egrep -v "^#|^$" $tDB) for ipblock in $BADIPS do $IPT -A $SPAMLIST -s $ipblock -j DROP done done # Более точный дроп для зловредов $IPT -I INPUT -j $SPAMLIST $IPT -I OUTPUT -j $SPAMLIST $IPT -I FORWARD -j $SPAMLIST exit 0
Исполняем:
./count.sh
Чтобы убедится, что правила добавлены:
iptables -L -n -v