Блокируем спамофлудеров на BSD

Форум для размещения материалов по реализации различных схем использования ПО, решению частых проблем и предупреждению частых ошибок
mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Блокируем спамофлудеров на BSD

Сообщение mikkey finn »

На FreeBSD делается просто. Спер с переводных статей на bsdportal.ru
В pf.conf врисовываем строки:

Код: Выделить всё

set block-policy drop
block quick proto tcp from <spamers> to any port smtp
pass in on ng proto tcp from any to any port smtp \
    flags S/SA keep state \
        &#40;max-src-conn-rate 3/30, overload <spamers> flush global&#41;
Естественно необходимо или вкомпилировать в ядро или подгрузить pf.
Так же необходимо установить expiretable
В текущей версии нет необходимости настраивать cron.
достаточно таких строк в rc.conf:

Код: Выделить всё

expiretable_enable="YES"
expiretable_flags="-dpv -t 3600 spamers"
Это конечно не панацея, но от абьюзов немножко помочь должно.

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

А у нас нет pf
У нас так:
ipfw add tcp from any to me 25 in limit src-addr 10

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

я почему на pf покивал, потому что там есть рейтлимит по потоку. в ipfw не нашел... нашел бы - сделал бы на Ipfw :(

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

max-src-conn-rate 3/30 - это 3 соединения в 30 секунд?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

именно так. Цифры подгонять можно как сочтется правильно.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

А нечто подобное в iptables можно реализовать?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

можно. На наге расписывали, как...

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

Понятно)
От спаммерных вирусов внутри локалки может помочь
ipfw add allow tcp from any to any 25 in limit src-addr 10
Проверял - позволяет открывать не больше 10 соединений одновременно.

Хотя ограничение открытия количества соединений в период времени куда лучше.

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

А ежли внутренняя сеточка за НАТ? :) По поводу iptables - кину вечером (если не забуду) пример.

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

сеточка за натом на ng_nat, все фильтры - Ipfw, шейпы тоже.
это отнюдь не мешает pf нормализовать трафик и блокировать спамофлудеров.

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

Вы не поняли. :) У меня например НАТится всё ещё ДО роутера. И ко мне приходит трафик УЖЕ НАТенным. Хотя таки - да. Это уже мои проблемы. ;) Я просто к чему говорю? Вот конкретный случай - у меня приходит трафик занатенным с одного IP. И подобный фокус чреват отбрасыванием вполне легитимных сессий (из внутренней сети может быть очень много соединений на 25 порт внаружу). Я просто к тому - что в ДАННОМ КОНКРЕТНОМ случае, конечно же - надо очень аккуратно проверять эту технологию.

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

Вот правило для блокирования спама при помощи iptables и модуля tbf, написаннного Колей Малых:
-A FORWARD -p tcp -m tcp --dport smtp -m state --state NEW -m tbf ! \
--tbf 1/s --tbf-deep 1 --tbf-mode srcip --tbf-name SMTP \
--tbf-htable-expire 360000 -j TBFforSMTP
-----------
Предоставляю слово автору:
Словами это можно описать так - принимать не более 1 (параметр) попытки в секунду соединения с портом 25 и разрешать не существование более 1 (параметр) такого пакета в хэш-таблице с хешированием по адресу отправителя. Т. е. у меня сейчас все работает так - если некий (любой) хост предпринимает шлет более 1 (можно установить любое значение) SYN-пакета в секунду в порт 25, то принимается только первое соединение, а остальные отвергаются. очень легко и эффективно рубятся выбросы спама с одного хоста, когда тебе могут одномоментно заслать штук 100 сообщений. При этом не возникает никакой дискриминации по странам, континентам и прочим условиям - все в равной мере фильтруются просто по скорости попыток организации соединений.
Модуль доступен тута - http://www.nmalykh.org/work/tbf.tar.gz
А вот статья о нём (в том числе) - http://www.protocols.ru/Papers/iptables-tbf.shtml

cjcrazy
Сообщения: 497
Зарегистрирован: Чт янв 20, 2005 21:54

Сообщение cjcrazy »

ну, раз пошла такая пляска, то, в приведенной вами статье, упомянуто про те же hashlimit и примерчик:
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 360000 -j ACCEPT
на основе которого можно также порезать отправку спама.

ещё чуть более подробно написано на том же наге.
поиск в гугле: "nag.ru dport 25"

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

Странно. Сегодня ссылка не работает. Статья (если интересно) лежит тут - http://www.protocols.ru/modules.php?nam ... icle&sid=8
cjcrazy, спасибо - посмотрю. Как-то обсуждение на НАГе прошло мимо меня.

cjcrazy
Сообщения: 497
Зарегистрирован: Чт янв 20, 2005 21:54

Сообщение cjcrazy »

сделать бы вообще пакость - когда начинается спамо-шторм, то фильтровать весь трафик, а не только спам-трафик.

Закрыто