User Tools

Site Tools


ddos_ipset

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ddos_ipset [2009/08/27 06:48]
kyxap
ddos_ipset [2016/01/27 21:31] (current)
kyxap
Line 1: Line 1:
-====== Борьба с DDOS посредством использования утилиты ipset на выделенных серверах с Debian ======+{{tag>​ddos_mitigation debian squeeze ipset geoip bash perl iptables kernel}}====== Борьба с DDOS посредством использования утилиты ipset на выделенных серверах с Debian ======
   * Тянем последний [[ftp://​ftp.netfilter.org/​pub/​patch-o-matic-ng/​snapshot/​|patch-o-matic-ng]] в ''/​usr/​src'',​ распаковываем,​ заходим в директорию и стартуем **./runme set**. \\ При этом подразумевается что исходники текущего ядра находятся в ''/​usr/​src/​linux'',​ а ''​iptables''​ - в ''/​usr/​src/​iptables''​. \\ После заходим в ''/​usr/​src/​linux''​ и делаем **make oldconfig**,​ где указываем поддержку фич ''​ipset''​ //​модулями//​.   * Тянем последний [[ftp://​ftp.netfilter.org/​pub/​patch-o-matic-ng/​snapshot/​|patch-o-matic-ng]] в ''/​usr/​src'',​ распаковываем,​ заходим в директорию и стартуем **./runme set**. \\ При этом подразумевается что исходники текущего ядра находятся в ''/​usr/​src/​linux'',​ а ''​iptables''​ - в ''/​usr/​src/​iptables''​. \\ После заходим в ''/​usr/​src/​linux''​ и делаем **make oldconfig**,​ где указываем поддержку фич ''​ipset''​ //​модулями//​.
 Собираем и устанавливаем ядро: Собираем и устанавливаем ядро:
Line 60: Line 60:
   * Добавляем запуск скрипта **/​root/​antiddos/​blacklist.sh** в крон с интервалом в 10 минут.   * Добавляем запуск скрипта **/​root/​antiddos/​blacklist.sh** в крон с интервалом в 10 минут.
  
 +-----------------------------------------------------------------------------------
 +
 +Фильтрация с GeoIP
 +  # apt-get install xtables-addons-source
 +  #
  
 == ПРИМЕР ФАЕРВОЛА С ИСПОЛЬЗОВАНИЕМ GEOIP == == ПРИМЕР ФАЕРВОЛА С ИСПОЛЬЗОВАНИЕМ GEOIP ==
Line 160: Line 165:
 esac esac
 </​code>​ </​code>​
 +
 +===== Скрипт для удаления адресов из блеклиста (FreeBSD) =====
 +<file bash /​opt/​scripts/​unban_ip.sh>​
 +#​!/​usr/​bin/​env bash
 +
 +PATH=/​sbin:/​bin:/​usr/​sbin:/​usr/​bin:/​usr/​games:/​usr/​local/​sbin:/​usr/​local/​bin:​~/​bin
 +
 +SCRIPTHOME="/​root/​antiddos"​
 +
 +function valid_ip()
 +{
 +    local  ip=$1
 +    local  stat=1
 +
 +    [[ $ip =~ ^[0-9]{1,​3}\.[0-9]{1,​3}\.[0-9]{1,​3}\.[0-9]{1,​3}$ ]] && {
 +    OIFS=$IFS
 +    IFS='​.'​
 +    ip=($ip)
 +    IFS=$OIFS
 +    [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
 +        && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
 +    stat=$?
 +    return $stat
 +}
 +}
 +
 +###############​
 +
 +[[ -d $SCRIPTHOME ]] || exit 1
 +
 +if ! VALID_IP=$(valid_ip "​$1"​)
 +then
 +    echo "​Usage:​ $0 <IP ADDR>"​ >&2
 +    exit 1
 +fi
 +
 +sed_cmd="/​$1/​d;/​^[[:​space:​]]*$/​d;​s/​[[:​space:​]]*$//"​
 +
 +if LISTS=$(grep -lIrx "​$1"​ "​$SCRIPTHOME"​ | grep -v "​\.sh"​)
 +then
 +    for i in $LISTS
 +    do
 +        echo "​Removing $1 from $i"
 +        sed -i ''​ "​$sed_cmd"​ ${i}
 +    done
 +    nginx -t && nginx -s reload
 +fi
 +
 +</​file>​
 +
 +
ddos_ipset.1251355714.txt.gz · Last modified: 2009/08/27 06:48 by kyxap