URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3699
[ Назад ]

Исходное сообщение
"Iptables. Помогите подправить правила."

Отправлено NeO , 12-Мрт-08 15:55 
Вот, долго мучаясь написал какой никакой антиспамовский скрипт:

-A FORWARD -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 5/min -j LOG_ACCEPT
-A FORWARD -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
-A FORWARD -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name spamer --rsource -j LOG_DROP

Заработал он у меня только в таком виде...Если я ставлю критерии,то все разваливается.
Я хотел бы у вас спросить совета, как мне правильно написать, что бы для каждого отдельного eth1.+ срабатывало свое антиспамовское правило...т.е. например: если больше 5 писем в минуту ушло с eth1.1 то заблокировало не все интерфейсы имеющиеся на машине, а именно eth1.1. Помогите пожалуйста. Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Iptables. Помогите подправить правила."
Отправлено Agressor , 12-Мрт-08 16:21 
Никак.
Iptables не работает с виртуалами.

"Iptables. Помогите подправить правила."
Отправлено NeO , 12-Мрт-08 16:33 
>Никак.
>Iptables не работает с виртуалами.

Хм...а при помощи чего тогда это можно сделать? Очень надо, я постоянно попадаю в блэклисты...


"Iptables. Помогите подправить правила."
Отправлено Agressor , 12-Мрт-08 16:52 
>Хм...а при помощи чего тогда это можно сделать? Очень надо, я постоянно
>попадаю в блэклисты...

Плохо ситуция у тебя описана, ну да я предположу что это что-то примерно так.
Некая локалка, с нее рассылается спам через твой шлюз в мир.
Ты же этой локалке предоставляеш доступ в мир.
1. Закрыть форвард 25 порта в мир. Ибо нехрен.
2. Разрешить юзверям отправлять мыло только через smtp, который поставиш на этом шлюзе.
Вот тут уже можеш делать что угодно, проверять траф на вирусы и килять нагло его, ничего не вырезать и не лечить!(50%) отсееш. Потом при помощи того же smtp сможеш отслеживать реальных спамеров по кол-ву отправленых (мин час сутки)... Вообщем возможности будет поболее...
Сорри если сумбурно рассказал, темп под 40...


"Iptables. Помогите подправить правила."
Отправлено NeO , 13-Мрт-08 11:31 
>[оверквотинг удален]
>Некая локалка, с нее рассылается спам через твой шлюз в мир.
>Ты же этой локалке предоставляеш доступ в мир.
>1. Закрыть форвард 25 порта в мир. Ибо нехрен.
>2. Разрешить юзверям отправлять мыло только через smtp, который поставиш на этом
>шлюзе.
> Вот тут уже можеш делать что угодно, проверять траф на вирусы
>и килять нагло его, ничего не вырезать и не лечить!(50%) отсееш.
>Потом при помощи того же smtp сможеш отслеживать реальных спамеров по
>кол-ву отправленых (мин час сутки)... Вообщем возможности будет поболее...
>Сорри если сумбурно рассказал, темп под 40...

Спасибо за совет. Просто нет такой возможности закрыть форвад 25 порта....
Еще вопрос, а можно как-то те же правила прописать, только с ключем -s 192.168.x.0/255.255.255.0? что бы для каждого сегмента 192.168.х было свое ограничение на кол-во отправленных писем?


"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 11:49 
>[оверквотинг удален]
>> Вот тут уже можеш делать что угодно, проверять траф на вирусы
>>и килять нагло его, ничего не вырезать и не лечить!(50%) отсееш.
>>Потом при помощи того же smtp сможеш отслеживать реальных спамеров по
>>кол-ву отправленых (мин час сутки)... Вообщем возможности будет поболее...
>>Сорри если сумбурно рассказал, темп под 40...
>
>Спасибо за совет. Просто нет такой возможности закрыть форвад 25 порта....
>Еще вопрос, а можно как-то те же правила прописать, только с ключем
>-s 192.168.x.0/255.255.255.0? что бы для каждого сегмента 192.168.х было свое ограничение
>на кол-во отправленных писем?

А что вам мешает попробовать это?


"Iptables. Помогите подправить правила."
Отправлено NeO , 13-Мрт-08 15:47 
>[оверквотинг удален]
>>>Потом при помощи того же smtp сможеш отслеживать реальных спамеров по
>>>кол-ву отправленых (мин час сутки)... Вообщем возможности будет поболее...
>>>Сорри если сумбурно рассказал, темп под 40...
>>
>>Спасибо за совет. Просто нет такой возможности закрыть форвад 25 порта....
>>Еще вопрос, а можно как-то те же правила прописать, только с ключем
>>-s 192.168.x.0/255.255.255.0? что бы для каждого сегмента 192.168.х было свое ограничение
>>на кол-во отправленных писем?
>
>А что вам мешает попробовать это?

Я пробывал,не получилось..Вот поэтому и спрашиваю совета, может там надо как-то по-другому эти правила писать...


"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 15:58 
>[оверквотинг удален]
>>>
>>>Спасибо за совет. Просто нет такой возможности закрыть форвад 25 порта....
>>>Еще вопрос, а можно как-то те же правила прописать, только с ключем
>>>-s 192.168.x.0/255.255.255.0? что бы для каждого сегмента 192.168.х было свое ограничение
>>>на кол-во отправленных писем?
>>
>>А что вам мешает попробовать это?
>
>Я пробывал,не получилось..Вот поэтому и спрашиваю совета, может там надо как-то по-другому
>эти правила писать...

Что писали?
Что не получилось?


"Iptables. Помогите подправить правила."
Отправлено NeO , 13-Мрт-08 16:06 
>[оверквотинг удален]
>>>>-s 192.168.x.0/255.255.255.0? что бы для каждого сегмента 192.168.х было свое ограничение
>>>>на кол-во отправленных писем?
>>>
>>>А что вам мешает попробовать это?
>>
>>Я пробывал,не получилось..Вот поэтому и спрашиваю совета, может там надо как-то по-другому
>>эти правила писать...
>
>Что писали?
>Что не получилось?

Для теста писал:
-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 5/min -j LOG_ACCEPT
-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name spamer --rsource -j LOG_DROP

Потом отправил запустил вирусняк, для массовой отправки писем, в логах показывались, как все прошли успешно. Почти 100 писем ушло...и этот источник не был помечен как spamer..


"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 16:36 
>[оверквотинг удален]
>>Что не получилось?
>
>Для теста писал:
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m limit --limit 5/min -j LOG_ACCEPT
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
>
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --set --name spamer --rsource -j -A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP

-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name spamer --rsource -j LOG_DROP
>
>Потом отправил запустил вирусняк, для массовой отправки писем, в логах показывались, как
>все прошли успешно. Почти 100 писем ушло...и этот источник не был
>помечен как spamer..

А счетчики правил:

-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name spamer --rsource -j LOG_DROP

изменяются?


"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 17:02 
>[оверквотинг удален]
>
>А счетчики правил:
>
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
>
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --set --name spamer --rsource -j LOG_DROP
>
>изменяются?

Попробуйте так:

iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer --set
iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer --update --seconds 60 --hitcount 5 -j DROP


"Iptables. Помогите подправить правила."
Отправлено NeO , 13-Мрт-08 17:23 
>[оверквотинг удален]
>>SYN -m recent --set --name spamer --rsource -j LOG_DROP
>>
>>изменяются?
>
>Попробуйте так:
>
>iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer
>--set
>iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer
>--update --seconds 60 --hitcount 5 -j DROP

Оставив первое правило с ключем -s?



"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 17:30 
>[оверквотинг удален]
>>>изменяются?
>>
>>Попробуйте так:
>>
>>iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer
>>--set
>>iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer
>>--update --seconds 60 --hitcount 5 -j DROP
>
>Оставив первое правило с ключем -s?

Нет, попробуйте только эти два правила.
По идее, под эти правила должны попасть все syn пакеты, идущие на 25 порт.
Можно поиграться с параметрами --seconds и --hitcount(описание найдете).


"Iptables. Помогите подправить правила."
Отправлено stas , 13-Мрт-08 17:49 
>[оверквотинг удален]
>>>--set
>>>iptables -A FORWARD -p tcp --syn --dport 25 -m recent --name spamer
>>>--update --seconds 60 --hitcount 5 -j DROP
>>
>>Оставив первое правило с ключем -s?
>
>Нет, попробуйте только эти два правила.
>По идее, под эти правила должны попасть все syn пакеты, идущие на
>25 порт.
>Можно поиграться с параметрами --seconds и --hitcount(описание найдете).

Еще вариант:

iptables -A FORWARD -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 5/min -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -j DROP

Так можно ограничить общее количество syn пакетов на 25 порт.


"Iptables. Помогите подправить правила."
Отправлено stas , 14-Мрт-08 09:46 
>[оверквотинг удален]
>SYN -m limit --limit 5/min -j LOG_ACCEPT
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
>
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --set --name spamer --rsource -j LOG_DROP
>
>Потом отправил запустил вирусняк, для массовой отправки писем, в логах показывались, как
>все прошли успешно. Почти 100 писем ушло...и этот источник не был
>помечен как spamer..

А вашем варианте, наверное, надо было правило:

-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP

поместить первым и убрать все ключи -s.
И еще. Сто писем через smtp - это не значит 100 syn пакетов. Вам тогда надо парсить в пакетах команду "RCPT TO". Только iptables для этого, по-моему, не самое удачное решение.


"Iptables. Помогите подправить правила."
Отправлено NeO , 14-Мрт-08 11:30 
>[оверквотинг удален]
>А вашем варианте, наверное, надо было правило:
>
>-A FORWARD -s 192.168.5.0/255.255.255.0 -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK
>SYN -m recent --update --seconds 300 --name spamer --rsource -j LOG_DROP
>
>
>поместить первым и убрать все ключи -s.
>И еще. Сто писем через smtp - это не значит 100 syn
>пакетов. Вам тогда надо парсить в пакетах команду "RCPT TO". Только
>iptables для этого, по-моему, не самое удачное решение.

Хм...но ведь если вирус, и он шлет постоянно на разные адреса..то тогда будет SYN.
Ок. Спс. Обязательно попробую такой вариант.


"Iptables. Помогите подправить правила."
Отправлено stas , 14-Мрт-08 11:37 
>[оверквотинг удален]
>>
>>
>>поместить первым и убрать все ключи -s.
>>И еще. Сто писем через smtp - это не значит 100 syn
>>пакетов. Вам тогда надо парсить в пакетах команду "RCPT TO". Только
>>iptables для этого, по-моему, не самое удачное решение.
>
>Хм...но ведь если вирус, и он шлет постоянно на разные адреса..то тогда
>будет SYN.
>Ок. Спс. Обязательно попробую такой вариант.

Естественно, чтобы подключиться нужно послать syn пакет.
Но в одной smtp сессии можно указать несколько команд RCPT TO.