The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Логгирование пакетов на 25-м порту"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / Linux)
Изначальное сообщение [ Отслеживать ]

"Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 17:16 
У меня на сервере крутится pptp и openvpn. Юзеры подключаются и некоторые из них (о ужас!) злоупотребляют отсылкой почты. :(

Мне захотелось отследить сей факт и как-то автоматизировать процесс.

Я добавил такую строчку в файл файрвола:
-A FORWARD -p tcp -m tcp --dport 25 -j LOG --log-prefix "MAIL:"
-A FORWARD -i tap1 -p udp -m udp -j LOG --log-prefix "MAIL:" --log-level 7

В логах стала появляться информация, но у pptp есть в строчках соответствие ip - порт, а для openvpn этого соответствия нет и порт не указан. :(

Вот пример лога для опенвпн:

Jun 10 17:09:46 kernel: [1117557.992079] MAILIN=tap1 OUT=eth0 SRC=192.168.10.4 DST=x.x.x.x LEN=67 TOS=0x00 PREC=0x00 TTL=127 ID=43253 PROTO=UDP SPT=1710 DPT=53 LEN=47

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Логгирование пакетов на 25-м порту"  +/
Сообщение от PavelR (??) on 10-Июн-11, 17:25 

Подождите, пока "отпустит", а потом напишите всё заново, если вопрос останется.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 18:20 
> Подождите, пока "отпустит", а потом напишите всё заново, если вопрос останется.

Что отпустит?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 18:29 
Я что-то криво написал? :)

> Подождите, пока "отпустит", а потом напишите всё заново, если вопрос останется.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Логгирование пакетов на 25-м порту"  +/
Сообщение от reader (ok) on 10-Июн-11, 20:42 
> У меня на сервере крутится pptp и openvpn. Юзеры подключаются и некоторые
> из них (о ужас!) злоупотребляют отсылкой почты. :(
> Мне захотелось отследить сей факт и как-то автоматизировать процесс.
> Я добавил такую строчку в файл файрвола:
> -A FORWARD -p tcp -m tcp --dport 25 -j LOG --log-prefix "MAIL:"

интересно что потом из этих заголовков пакета вы хотите выудить?

> -A FORWARD -i tap1 -p udp -m udp -j LOG --log-prefix "MAIL:"
> --log-level 7

а это к чему? заголовки пакета от dns запроса , как привели ниже, будите рассматривать?

> В логах стала появляться информация, но у pptp есть в строчках соответствие
> ip - порт, а для openvpn этого соответствия нет и порт
> не указан. :(
> Вот пример лога для опенвпн:
> Jun 10 17:09:46 kernel: [1117557.992079] MAILIN=tap1 OUT=eth0 SRC=192.168.10.4 DST=x.x.x.x
> LEN=67 TOS=0x00 PREC=0x00 TTL=127 ID=43253 PROTO=UDP SPT=1710 DPT=53 LEN=47

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 21:59 
>[оверквотинг удален]
>> -A FORWARD -i tap1 -p udp -m udp -j LOG --log-prefix "MAIL:"
>> --log-level 7
> а это к чему? заголовки пакета от dns запроса , как привели
> ниже, будите рассматривать?
>> В логах стала появляться информация, но у pptp есть в строчках соответствие
>> ip - порт, а для openvpn этого соответствия нет и порт
>> не указан. :(
>> Вот пример лога для опенвпн:
>> Jun 10 17:09:46 kernel: [1117557.992079] MAILIN=tap1 OUT=eth0 SRC=192.168.10.4 DST=x.x.x.x
>> LEN=67 TOS=0x00 PREC=0x00 TTL=127 ID=43253 PROTO=UDP SPT=1710 DPT=53 LEN=47

Меня отпустило :) Все понял!

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Логгирование пакетов на 25-м порту"  +/
Сообщение от Дядя_Федор email on 10-Июн-11, 22:18 
На кой черт Вам логгировать ВСЕ пакеты по 25 порту? Задача какая? Блокировать (и логгировать) спам? Теперь включаем мозг. Что происходит при массовой рассылке спама? Куча обращения к ДНС-серверу с запросом MX-записей! Вот отсюда и танцуем!
Вот пример цепочки, которую надо выстроить:
1. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --set --name MXFLOOD --rsource
2. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --update --seconds 60 --hitcount 10 --rttl --name MXFLOOD --rsource -j LOG --log-prefix "Many MX requests from IP:"
3. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --update --seconds 20 --hitcount 10 --rttl --name MXFLOOD --rsource -j DROP
Это я привел ПРИМЕР. Адаптируйте его под свою сетевую логику. Пример реально работающий - это у меня на DNS-сервере крутится - позволяет каждый день, глядя на отчет logwatch, сдавать ТП злостных спамеров. К цифрам тоже отнеситесь творчески.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 22:45 
А к каким цифрам нужно отнестись творчески?

>[оверквотинг удален]
> recent --update --seconds 60 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> LOG --log-prefix "Many MX requests from IP:"
> 3. iptables -A INPUT -p udp -m udp --dport 53 -m state
> --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m
> recent --update --seconds 20 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> DROP
> Это я привел ПРИМЕР. Адаптируйте его под свою сетевую логику. Пример реально
> работающий - это у меня на DNS-сервере крутится - позволяет каждый
> день, глядя на отчет logwatch, сдавать ТП злостных спамеров. К цифрам
> тоже отнеситесь творчески.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Логгирование пакетов на 25-м порту"  +/
Сообщение от Дядя_Федор email on 10-Июн-11, 23:13 
> А к каким цифрам нужно отнестись творчески?

Ну, по видимому претендентов 2. :)
1. Временной интервал --seconds
2. Количество попаданий в этот интервал --hitcount.
Как видите - у меня дропается, при 10 вызовах за 20 секунд (с одного ИП, естественно). В логи попадает - при 10 попаданиях за минуту. Я в первый раз когда это правило включил - нарвался на 2 дня на идиотов-юриков, которые делали что-то типа массовой ОФИЦИАЛЬНОЙ рассылки по листу рассылки. Вони было - выше крыши. :) Поэтому я чуть "загрубил" срабатывание. Согласитесь, что нормальный пользователь вряд ли будет генерить 10 MX-запросов за 20 секунд. :) 10 - за 60 - возможно, но уже вызывает подозрение.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 10-Июн-11, 23:33 
>[оверквотинг удален]
> 1. Временной интервал --seconds
> 2. Количество попаданий в этот интервал --hitcount.
> Как видите - у меня дропается, при 10 вызовах за 20 секунд
> (с одного ИП, естественно). В логи попадает - при 10 попаданиях
> за минуту. Я в первый раз когда это правило включил -
> нарвался на 2 дня на идиотов-юриков, которые делали что-то типа массовой
> ОФИЦИАЛЬНОЙ рассылки по листу рассылки. Вони было - выше крыши. :)
> Поэтому я чуть "загрубил" срабатывание. Согласитесь, что нормальный пользователь вряд
> ли будет генерить 10 MX-запросов за 20 секунд. :) 10 -
> за 60 - возможно, но уже вызывает подозрение.

Интересно :) Попробую!

Спасибо огромное!

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital (ok) on 05-Июл-11, 23:36 
>[оверквотинг удален]
> recent --update --seconds 60 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> LOG --log-prefix "Many MX requests from IP:"
> 3. iptables -A INPUT -p udp -m udp --dport 53 -m state
> --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m
> recent --update --seconds 20 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> DROP
> Это я привел ПРИМЕР. Адаптируйте его под свою сетевую логику. Пример реально
> работающий - это у меня на DNS-сервере крутится - позволяет каждый
> день, глядя на отчет logwatch, сдавать ТП злостных спамеров. К цифрам
> тоже отнеситесь творчески.

1. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --set --name MXFLOOD --rsource
2. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --update --seconds 60 --hitcount 10 --rttl --name MXFLOOD --rsource -j LOG --log-prefix "Many MX requests from IP:"
3. iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m recent --update --seconds 20 --hitcount 10 --rttl --name MXFLOOD --rsource -j DROP

Эта вещь уже крутится на сервере и работает на отлично. Я вот подумал, что можно ее несколько переделать, чтобы юзеру запретить досить чей-либо веб-сервер.
Что-то вроде такого:

iptables -A INPUT -p udp -m udp --dport 80 -m state --state NEW -m recent --set --name WWW --rsource
iptables -A INPUT -p udp -m udp --dport 80 -m state --state NEW -m recent --update --seconds 20 --hitcount 10 --rttl --name WWW --rsource -j DROP

Но это совершенно никак не заработало :(

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Логгирование пакетов на 25-м порту"  +/
Сообщение от dvital email(ok) on 23-Ноя-11, 23:48 
>[оверквотинг удален]
> recent --update --seconds 60 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> LOG --log-prefix "Many MX requests from IP:"
> 3. iptables -A INPUT -p udp -m udp --dport 53 -m state
> --state NEW -m string --hex-string "|000f0001|" --algo kmp --to 65535 -m
> recent --update --seconds 20 --hitcount 10 --rttl --name MXFLOOD --rsource -j
> DROP
> Это я привел ПРИМЕР. Адаптируйте его под свою сетевую логику. Пример реально
> работающий - это у меня на DNS-сервере крутится - позволяет каждый
> день, глядя на отчет logwatch, сдавать ТП злостных спамеров. К цифрам
> тоже отнеситесь творчески.

Недавно попробовал данный способ и решил протестировать. Поставили в (3) срабатывание на 2 обращения за 60 секунд и стали слать письма. Послали 5 писем - и все письма прошли без проблем. :(

Может есть какая-то ошибка?

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру