Skip to content

Правило, логирующее факт отправки пакетов к определённому IP с указанием UID и GID пользователя, отправляющего пакеты

Правило, логирующее факт отправки пакетов к определённому IP с указанием UID и GID пользователя, отправляющего пакеты

В ситуации, когда есть есть сервер, на нём много пользователей(пусть будет пару сотен, для примера), у каждого из них запущены какие-то процессы, в том числе обеспечивающие обработку запросов к их веб-приложениям, и одно из приложений не известного им пользователя периодически делает не желательные запросы к стороннему хосту, нам может пригодится правило вида:

iptables -A OUTPUT -p all -d $SOME_IP -j LOG --log-uid
где вместо $SOME_IP указыаем нужный нам IP, к примеру 192.168.220.330(данный IP локальной сетки был взят чисто для примера).

Если нужно логировать не трафик к одному IP, а к целой подсети, просто указываем IP/MASK нужной нам подсети вместо $SOME_IP, к примеру так 192.168.220.1/24.

В итоге, если с вашего хоста будет зафиксирован трафик к стороннему хосту, в syslog/messages(в зависимости от настроек логирования на вашем сервере) будут добавлены записи вида

Jul  7 14:11:29 mylukyserver777 kernel: IN= OUT=eth0 SRC=192.168.110.220 DST=192.168.220.330 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=27938 SEQ=1 UID=0 GID=0
Jul  7 14:11:30 mylukyserver777 kernel: IN= OUT=eth0 SRC=192.168.110.220 DST=192.168.220.330 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=27938 SEQ=2 UID=0 GID=0
Jul  7 14:11:31 mylukyserver777 kernel: IN= OUT=eth0 SRC=192.168.110.220 DST=192.168.220.330 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=27938 SEQ=3 UID=0 GID=0
конкретно данные записи попали в лог в момент тестирования работы правила с помощью ping -c 3 192.168.220.330, пинт выполнятся от пользователя root, поэтому мы видим в логе PROTO=ICMP, и UID=0 GID=0.