Форумы

GNU.SU - Записки нубо-линуксойда :: Форумы :: Сервисы :: Виртуализация
 
<< Предыдущая тема | Следующая тема >>
Борьба с ботами и нагрузкой средствами iptables
Модераторы: tastelinux, Frizze, andrey, Bender
Автор Добавил
tastelinux
Втр Авг 30 2011, 11:16
andreika

ID пользователя #1
Зарегистрирован: Птн Апр 30 2010, 12:25

Сообщений: 337
Предыстория:
Вся история происходила на сервере, который очень любили боты, при этом сервак загибался по нагрузке от php-fpm. Ограничиваем количество соединений с одного айпи. Баним iptables на 5 минут, в случае превышения.

Необходимые модули для OpenVZ, прописываем в конфиге хоста, подгружаем на ноде.

## IPv4 iptables kernel modules
IPTABLES="iptable_nat iptable_filter iptable_mangle ip_conntrack ipt_conntrack ipt_REDIRECT ipt_REJECT ipt_multiport ipt_helper ipt_LOG ipt_stat
e ip_conntrack_ftp ipt_recent ipt_limit"


Листинг настроек iptables.

# Generated by iptables-save v1.3.5 on Tue Aug 23 14:19:39 2011*mangle
:PREROUTING ACCEPT [174556:149473824]:INPUT ACCEPT [174556:149473824]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [211793:266802643]
:POSTROUTING ACCEPT [211793:266802643]
COMMIT
# Completed on Tue Aug 23 14:19:39 2011
# Generated by iptables-save v1.3.5 on Tue Aug 23 14:19:39 2011
*filter

:INPUT ACCEPT [174750:149661095]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [212012:267106237]
:HTTPBL - [0:0]
:HTTPLIMIT - [0:0]
:LOGDROP - [0:0]

-A LOGDROP -j LOG -A LOGDROP -j DROP -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 300 --name HTTPBL --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j HTTPLIMIT-A HTTPLIMIT -m hashlimit --hashlimit-htable-expire 600000 --hashlimit-htable-max 65535 --hashlimit-htable-size 65535 --hashlimit 2/sec --hashli
mit-burst 200 --hashlimit-mode srcip --hashlimit-name HTTPLIMIT -j RETURN
-A HTTPLIMIT -m recent --set --name HTTPBL --rsource -j LOGDROP
COMMIT
# Completed on Tue Aug 23 14:19:39 2011


Текущее количество соединений по айпи смотрим тут:
cat /proc/net/ipt_hashlimit/HTTPLIMIT

Забаненных смотрим тут:
cat /proc/net/ipt_recent/HTTPBL


Результат действий:
LA упало со значения 80 до 8. Отзывчивость сервиса увеличилась значительно.

[ Редактирование Втр Авг 30 2011, 11:17 ]
Наверх

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System