LINUX.ORG.RU

как бы мне составить правило IPTABLES -A OUTPUT * -j LOG?

 


0

1

Добрый день, коллеги. Сижу вот в праздники на работе и вдруг мне в голову пришла идея чем бы себя занять на следующие несколько недель до отпуска. Хочу логировать исходящие (на 80 и 443 порты) пакеты из локалки в эти наши энторнэты.

Настроил rsyslog с logrotate на запись логов в отдельный файл, теперь вопрос в том, как бы получать только то, что нужно. Прописав в iptables правило -A OUTPUT -o iflocal -j LOG у меня вылезает слишком много разной грязи.

Начал думать над правилом, понаписал в правилах своей отсебятины. Получаю в логе сообщения только о пакетах, идущих на айпишник гугла. Где же остальные, напрашивается вопрос.

Вообще имеются интерфейсы em1(local) и em2(inet), а таблица представляет из себя следующее:

*filter
:INPUT DROP [184:18545]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [4151:1853799]
Правила INPUT по интерфейсам
Правила OUTPUT по интерфейсам
ниже засунул свое
-A OUTPUT -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »
Правила INPUT -j ACCEPT
Правила FORWARD -j ACCEPT
*nat
:PREROUTING ACCEPT [378:102197]
:POSTROUTING ACCEPT [72:7116]
:OUTPUT ACCEPT [62:6600]
Куча PREROUTING правил
Еще больше POSTROUTING
-A POSTROUTING -s 192.168.0.0/24 -o em2 -j SNAT --to myextip
-A POSTROUTING -s 192.168.1.0/24 -o em2 -j SNAT --to myextip
добавил ниже
-A POSTROUTING -s 192.168.0.0/24 -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »
-A POSTROUTING -s 192.168.1.0/24 -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »

COMMIT
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

На серваке так же лежит почтовик с веб-мордой, так что из локалки к нему через em1 цепляются.

Собственно, как лучше составить правило и в какую цепочку его засунуть, что б в лог попадали сообщения о соединении рабочих станций с веб-серверами через 80 и 443 порты?

Во вторых, транзитные пакеты через цепочку OUTPUT не проходят.

IPTABLES -A FORWARD -o em2 -p tcp -m multiport --dports 80,443 -j NFLOG [--nflog-options]

ZhuKoV ()

транзитка через OUTPUT не идет

ne-vlezay ★★★★★ ()

nfsen поставь больше толку будет

af5 ★★★★★ ()
Ответ на: комментарий от ZhuKoV

Убрал свою писанину, добавил в цепочку FORWARD правило:

-A FORWARD -o em2 -p tcp -m multiport --dports 80,443 -j NFLOG --nflog-prefix «iptables: » 
Голяк, просто голяк, мои запросы не видит, за час работы ни одной записи ни в лог, ни в dmesg не попало.

mrPresedent ()
Ответ на: комментарий от mrPresedent

Оно логи по netlink’у выгребает и в syslog отдаёт, так что никуда.

post-factum ★★★★★ ()
Ответ на: комментарий от post-factum

Я просто заменил nflog на log и поехало дело. Лог выдает то, что мне нужно - время, SRC=station-ip и DST=webserver-ip. По крайней мере себя я ловлю

Jan  9 14:35:14 mail kernel: iptables: IN=em1 OUT=em2 SRC=192.168.0.22 DST=94.100.190.95 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=10469 DF PROTO=TCP SPT=63509 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0
Начальник отдела озаботился недавно нехваткой компов, спросил сколько народу у нас собираются уходить (сидят в hh), так что я решил дать голове работу и изобрести велосипед. Остается сварганить парсер лога, который будет нужную информацию загонять в mysql-базу и какое-нибудь php-приложение, владеющее магией select-а. Пока не ясно только как связать все с dns-сервером, что бы не делать постоянно запросы nslookup для определения доменного имени узлов, но это пока проблемы будущего меня.

mrPresedent ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.