проблема связки tail, egrep и pfctl

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tiger boobs
проходил мимо

проблема связки tail, egrep и pfctl

Непрочитанное сообщение tiger boobs » 2013-06-24 14:54:23

приветствую всех
упёрся в проблему, прошу помощи
есть идея с помощью tail -f отлавливать спам-хосты и автоматически добавлять их в таблицу блокировки pf.
вот так оно работает

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

tail -90 /var/log/exim/mainlog | grep --line-buffered "spammer!" | egrep --line-buffered -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' | pfctl -t lockdown -T add -f-
а вот так уже нет

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

tail -f /var/log/exim/mainlog | grep --line-buffered "spammer!" | egrep --line-buffered -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' | pfctl -t lockdown -T add -f-

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Charlz_Klug_
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение Charlz_Klug_ » 2013-06-24 16:21:58

tiger boobs писал(а):а вот так уже нет

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

tail -f /var/log/exim/mainlog | grep --line-buffered "spammer!" | egrep --line-buffered -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' | pfctl -t lockdown -T add -f-
Подозреваю, что tail работу не заканчивает и до grep'а очередь не доходит.

Dmitriy_3206
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение Dmitriy_3206 » 2013-06-24 18:02:50

Первую команду повесит в cron

tiger boobs
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение tiger boobs » 2013-06-25 6:47:49

первое, tail как и полагается сливает поступающие данные лога в трубу. до обоих грепов всё доходит и благополучно извлекается. не срабатывает pfctl

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

tail -f /var/log/exim/mainlog | grep --line-buffered "spammer!" | egrep --line-buffered -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
118.69.37.126
118.69.37.126
113.170.27.142
121.170.174.236
180.74.245.113
второе, cron срабатывает раз в минуту, а обсуждаемый однострочник - немедленно. разницу понимаете? пока сделал так. добавил в acl-и задержку в 120 сек и по крону собираю ip.

Charlz_Klug_
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение Charlz_Klug_ » 2013-06-25 12:43:58

tiger boobs писал(а):второе, cron срабатывает раз в минуту, а обсуждаемый однострочник - немедленно. разницу понимаете? пока сделал так. добавил в acl-и задержку в 120 сек и по крону собираю ip.
Ну, если pfctl не дружит с tail -f, то попробуйте написать соответствующий сценарий на perl например. В бесконечном цикле обрабатываете поступление новых данных и вызываете pfctl.

tiger boobs
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение tiger boobs » 2013-06-25 13:18:38

"дружит-не дружит" - это не серьёзно. :) мне просто хотелось докопаться до сути, но пока знаний не хватает. думал тут подскажут в какую сторону копать. пока же решил, что всё равно однострочником не обойтись и надо ваять скрипт, т.к. помимо занесения в блок-таблицу pf надо ещё tcpdrop-ом закрыть уже установленные соединения. sockstat для этого не подходит. лучше пользоваться netstat-ом

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

netstat -n | grep -e 'tcp' | grep EST
сейчас вымучиваю скрипт на shell, который всё это делал бы. c перлом, увы, на вы.
Charlz_Klug_ писал(а):В бесконечном цикле обрабатываете поступление новых данных и вызываете pfctl.
мысль интересная, спасибо

Charlz_Klug_
проходил мимо

Re: проблема связки tail, egrep и pfctl

Непрочитанное сообщение Charlz_Klug_ » 2013-06-25 14:08:31

tiger boobs писал(а):"дружит-не дружит" - это не серьёзно. :)
Why so serious?
tiger boobs писал(а):
Charlz_Klug_ писал(а):В бесконечном цикле обрабатываете поступление новых данных и вызываете pfctl.
мысль интересная, спасибо
Правда тут есть накладные расходы в виде бесконечного цикла. Ну, поиграйтесь, посмотрите.