1.1, Аноним (-), 11:29, 24/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
фильтр PF в FreeBSD\OpenBSD умеет самостоятельно вылавливать адреса, превышающие порог на частоту соединений и заносить их в свою внутреннюю таблицу. По этой таблице можно и блокировать трафик, и вылавливать нарушителей. Все гораздо проще и изящнее ...
| |
|
2.2, Банзай (??), 11:38, 24/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>фильтр PF в FreeBSD\OpenBSD умеет самостоятельно вылавливать адреса, превышающие порог на частоту
>соединений и заносить их в свою внутреннюю таблицу. По этой таблице
>можно и блокировать трафик, и вылавливать нарушителей. Все гораздо проще и
>изящнее ...
Не умеет.
| |
|
|
4.9, Щекн Итрч (ok), 02:37, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Умеет, конечно.
Попробуйте и доложите.
Желательно с дешифрованными tpcdump'ом логами, иллюструющими ваш набор правил.
| |
|
5.14, ws (ok), 11:57, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
Где-то так:
table <smtp_bruteforce> persist
block drop in quick from <smtp_bruteforce>
pass in quick proto tcp from <local_net> to any port smtp flags S/S keep state \
(max-src-conn-rate 20/300, overload <smtp_bruteforce> flush global)
Теперь в таблице <smtp_bruteforce> будет содержаться забаненые ip.
Очистку этой таблицы можно производить через запуск по крону программы, очищающая устаревшие записи на сутки:
/usr/local/sbin/expiretable -t 79200 smtp_bruteforce
| |
|
|
7.30, ws (ok), 10:22, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
У меня большой сети зомбируемых машин нет. Поэтому оставлю вам это на самопроработку.
В этом коде, конечно не учтено:
>>Здесь дело не в количестве соединений, а в количестве IP-адресов, с которыми устанавливается соединение.
но тем немение, работает с частотой создаваемых соединений.
ps: такая связка успешно функционирует у меня на блокирование попыток подключения по ssh.
| |
|
|
9.37, ws (ok), 16:46, 26/08/2009 [^] [^^] [^^^] [ответить] | +/– | Естественно И применимая в текущей задаче Так и в pf таймауты в таблице выс... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.3, Дима Иванов (?), 12:21, 24/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
Здесь дело не в количестве соединений, а в количестве IP-адресов, с которыми устанавливается соединение. К тому же, нужна гибкая политика, кого и как банить.
| |
|
1.4, Andrew (??), 12:43, 24/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это, конечно, от ситуации зависит, но проще просто ЗАКРЫТЬ весь исходящий траффик на 25й порт, и проковырять его только для реальных почтовых серваков.
Логика очень простая: кому действительно надо иметь выход на 25й порт, осознанно попросят его открыть, но их будет очень мало. Всем остальным это не надо, и они будут закрыты => боты обломаются. При этом надо, разумеется, _документировать_ эту политику.
| |
|
2.5, Дима Иванов (?), 12:45, 24/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
Да, так было бы лучше всего. Но пользователям этого не объяснить. Т.е. увеличится число тупых кейсов у саппорта. А так заодно выявляем сифозные хосты в сети.
| |
|
3.21, mr_gfd (?), 15:06, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Да, так было бы лучше всего. Но пользователям этого не объяснить. Т.е.
>увеличится число тупых кейсов у саппорта. А так заодно выявляем сифозные
>хосты в сети.
На трипаки в сетке похер, а закрытый на выход 25й порт - это айс. парсить maillog - изящнее и информативнее.
| |
|
|
1.8, настоящий_аноним (?), 00:59, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это же надо так мучаться... В iptables это делается несколькими строчками:
# Создаем список спамеров
ipset -N spambots iphash
# Блокируем спамеров
iptables -I FORWARD -m set --set spambots src -j DROP
# Если кто-то превышает лимит подключений - заносим в "черный список"
iptables -A FORWARD -p tcp --dport 25 -m state --state NEW -m hashlimit --hashlimit-name spamcheck --hashlimit-mode srcip --hashlimit-above 20/min -j SET --add-set spambots src
# Еще можно добавить проверку на количество одновременных соединений с одного адреса
iptables -A FORWARD -p tcp --dport 25 -m state --state NEW -m connlimit --connlimit-above 10 -j SET --add-set spambots src
Вуаля! Не более 20 новых соединений в минуту, не более 10 соединений одновременно.
Правда, hashlimit жестко задает контролируемые периоды времени (минута, час, сутки). Если хотите задавать их произвольно - см. recent.
И не жалуйтесь, что "для этого надо патчить ядро и т.п.". Это всего лишь следствие неправильного выбора дистрибутива =) В debian stable (с iptables и xtables-addons из testing) все работает "искаропки".
| |
|
2.24, andrew (??), 20:29, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
Нда. Скрипт на двести строчек... и три-четыре строчки на iptables и pf.
Наглядно понимаешь разницу между сисадмином и велосипедистом.
| |
|
3.27, Щекн Итрч (ok), 00:05, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Нда. Скрипт на двести строчек... и три-четыре строчки на iptables и pf.
>
>Наглядно понимаешь разницу между сисадмином и велосипедистом.
НЕ работают "три-четыре строчки на iptables и pf". НЕ работают.
Бабушку свою жить поучите.
| |
|
4.31, аноним (?), 11:02, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
А у меня - работают. Причем далеко не на одном сервере.
Вопрос: у кого из нас двоих руки из плеч, а у кого из ...?
| |
4.33, настоящий_аноним (?), 15:44, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>НЕ работают "три-четыре строчки на iptables и pf". НЕ работают.
Полагаю, проблема не у "iptables и pf", а у вас. Где-то в области /dev/hands либо /dev/brain. Возможно, обусловлено ошибками при сборке ДНК :)
| |
|
|
|
1.10, shadow_alone (ok), 04:52, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Самое простое
-A FORWARD -p tcp --dport 25 -j LOG --log-prefix smtpport:
включить logwatch и получать почту с логом ежедневно, не гнушаясь просматривать.
| |
1.11, .snake (?), 05:12, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
-A FORWARD -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -m state --state NEW -m recent --set --name SMTP
-A FORWARD -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 --name SMTP -j REJECT --reject-with icmp-port-unreachable
Автоматически блокирует рассылку спама от клиентов. Как только спам прекращается почта начинает работать :)
| |
|
2.12, shadow_alone (ok), 05:21, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>-A FORWARD -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -m state
>--state NEW -m recent --set --name SMTP
>-A FORWARD -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -m state
>--state NEW -m recent --update --seconds 60 --hitcount 5 --name SMTP
>-j REJECT --reject-with icmp-port-unreachable
>
>Автоматически блокирует рассылку спама от клиентов. Как только спам прекращается почта начинает
>работать :)
очень интересно, из-за кого-то одного будут страдать все - это во первых.
Во вторых, при /16 вполне возможно одновременное подключение более 5 клиентов в минуту, так что, думаю , не лучший вариант.
| |
|
3.13, .snake (?), 06:23, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
Страдать будет только тот кто спамит, проверено.
Префикс /16 указан для примера, роли это не влияет
| |
3.16, настоящий_аноним (?), 13:11, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>очень интересно, из-за кого-то одного будут страдать все - это во первых.
>Во вторых, при /16 вполне возможно одновременное подключение более 5 клиентов в минуту, так что, думаю , не лучший вариант.
Мсье самый умный? Мсье никогда не читает документацию?
Шагом марш читать man iptables!
recent хранит информацию по каждому айпишнику отдельно. /16 задает только "область наблюдения".
| |
|
4.17, shadow_alone (ok), 13:16, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>>очень интересно, из-за кого-то одного будут страдать все - это во первых.
>>Во вторых, при /16 вполне возможно одновременное подключение более 5 клиентов в минуту, так что, думаю , не лучший вариант.
>
>Мсье самый умный? Мсье никогда не читает документацию?
>Шагом марш читать man iptables!
>recent хранит информацию по каждому айпишнику отдельно. /16 задает только "область наблюдения".
>
Мсье не страдает такой хренью, ибо.....
| |
|
5.18, настоящий_аноним (?), 14:05, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Мсье не страдает такой хренью, ибо.....
Ибо считает, что лучше написать двадцать тормозных велосипедов по сто килобайт каждый, чем один раз прочитать документацию по штатным возможностям своей системы.
Я правильно вас понял?
| |
|
6.19, shadow_alone (ok), 14:18, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
совершенно неправильно....
сплошной, блин, офф топ.... (лучше по русски - не по теме)
далек от таких ньюансов.... мелко.
ну судите строго.
не видел такого в 1.2
а дальше уже, как то, не очень вставляет - железо лучше, да и оно уже прошлое.
| |
|
|
|
|
|
1.15, emp (??), 12:11, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
за прогу - зачёт. за ночь наловила 87 хостов. фикусы с iptables стоят на релее. но вот на исходящий поток от клиентов надо ставить чтото заносящее инфу в биллинг. чтоб тп по ночам спокойно могло удалить/приостановить бан клиенту, а не ждать админа чтобы он посмотрел в табличку.
| |
|
2.22, Дима Иванов (?), 15:17, 25/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>надо ставить чтото заносящее инфу в биллинг. чтоб тп по ночам спокойно могло >удалить/приостановить бан клиенту, а не ждать админа чтобы он посмотрел в табличку.
Именно!!! Наконец кто-то понял мою задумку :)
| |
|
|
2.36, настоящий_аноним (?), 15:52, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Я бы предложил анализировать коннтраки с ASSURED на 25 порту.
Кстати вопрос: ctstatus анализирует все подключения или только related по conntrack?
| |
|
1.25, admin (??), 23:04, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
многабукаф в перле. может и красиво, но оч тяжело.
у меня на шеле в 5 строк влезло.
| |
|
2.28, Щекн Итрч (ok), 00:06, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>многабукаф в перле. может и красиво, но оч тяжело.
>у меня на шеле в 5 строк влезло.
И не слабО их здесь привести?
Что-то мешает? Шарики?
| |
2.34, настоящий_аноним (?), 15:46, 26/08/2009 [^] [^^] [^^^] [ответить]
| +/– |
>у меня на шеле в 5 строк влезло.
У меня на iptables 3-4. У товарища выше на pf - 3. Что вы там так длинно пишете? ;)
| |
|
1.38, XoRe (ok), 00:25, 27/08/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Скрипт, думаю, будет полезен.
Он хорошо подходит, когда нужно оповещать пользователя о том, что с него сыплется спам.
Могу посоветовать прикрутить к нему отправлялку писем пользователям.
Типа "Это автоматическое сообщение - у вас на компе вирус. Можете скачать антивирус с нашего фтп (ссылка), обновить его бесплатно с нашего фтп (ссылка)."
Ещё можно ссылку на пошаговое описание, как что делать.
А описание в картинках)
Думаю, это может ещё больше уменьшить звонки в суппорт.
Ещё могу посоветовать анализировать dns запросы типа MX - они тоже обычно генерятся именно спамописателями.
Вылавливать такие запросы тоже можно с помощью tcpdump.
Ещё в свое время заметил, что размер "окна" (параметр такой в ip или tcp заголовке) у спамописем равен 24000.
Помнится, даже после долгого наблюдения не заметил ничего другого, кроме спама, с таким окном.
Но это уже не так однозначно.
А ещё могу посоветовать:
ipfw add 1 skipto 4 tcp from table(x) to not me 25
ipfw add 2 skipto 4 tcp from any to not me 25 limit src-addr 10
ipfw add 3 deny tcp from any to not me 25
Просто не дает устанавливать больше 10 одновременных соединений)
Правило с limit - динамическое.
Параметры динамических правил можно настроить тут:
sysctl net.inet.ip.fw
А в table(x) кидать "официальных спаммеров")
Т.е. тех, кого не надо блочить.
Можно пойти более хитро)
Можно воспользоваться подсистемой netgraph - связать модуль для bpf и модуль для netflow.
И настроить так, чтобы получать статистику netflow о спаммерах.
А netflow уже хоть куда - хоть в БД, хоть в html)
| |
1.41, Kost (?), 15:53, 16/01/2012 [ответить] [﹢﹢﹢] [ · · · ] | +/– | Время записи в журнал client_connection_status_update_time 5m Задаём промеж... большой текст свёрнут, показать | |
|