This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
ddos_ipset [2009/05/31 21:06] kyxap |
ddos_ipset [2013/12/15 16:27] 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 35: | Line 35: | ||
SCRIPTHOME="/root/antiddos"; | SCRIPTHOME="/root/antiddos"; | ||
# don't change anything bellow | # don't change anything bellow | ||
- | grep "$BADREQUEST}" $LOGPATH | awk -F ' ' '{ print $ 1 }' | sort | uniq -c | ${SCRIPTHOME}/num-filter.pl $MINREQUESTS >> ${SCRIPTHOME}/in_blacklist.add.pre | + | grep "${BADREQUEST}" $LOGPATH | awk -F ' ' '{ print $ 1 }' | sort | uniq -c | ${SCRIPTHOME}/num-filter.pl $MINREQUESTS >> ${SCRIPTHOME}/in_blacklist.add.pre |
- | sort -u < {SCRIPTHOME}/in_blacklist.add.pre > ${SCRIPTHOME}/in_blacklist.add | + | sort -u < ${SCRIPTHOME}/in_blacklist.add.pre > ${SCRIPTHOME}/in_blacklist.add |
cat ${SCRIPTHOME}/in_blacklist.add > ${SCRIPTHOME}/in_blacklist | cat ${SCRIPTHOME}/in_blacklist.add > ${SCRIPTHOME}/in_blacklist | ||
for i in `cat ${SCRIPTHOME}/in_blacklist`; | for i in `cat ${SCRIPTHOME}/in_blacklist`; | ||
Line 60: | Line 60: | ||
* Добавляем запуск скрипта **/root/antiddos/blacklist.sh** в крон с интервалом в 10 минут. | * Добавляем запуск скрипта **/root/antiddos/blacklist.sh** в крон с интервалом в 10 минут. | ||
+ | ----------------------------------------------------------------------------------- | ||
+ | |||
+ | Фильтрация с GeoIP | ||
+ | # apt-get install xtables-addons-source | ||
+ | # | ||
== ПРИМЕР ФАЕРВОЛА С ИСПОЛЬЗОВАНИЕМ GEOIP == | == ПРИМЕР ФАЕРВОЛА С ИСПОЛЬЗОВАНИЕМ GEOIP == |