如何从 iptables 日志中找出程序

如何从 iptables 日志中找出程序

在 ubuntu 22.04 上测试 ping:

Host A IPv6: 1111:1111:1111:1111:1111:1111:1111:1111
Host B IPv6: 2222:2222:2222:2222:2222:2222:2222:2222

主持人A:

现在使用以下 bash 命令从主机 A 执行 ping 操作:

root@host_a:~# ping -6 2222:2222:2222:2222:2222:2222:2222:2222

主持人B:

iptables 丢弃了一些数据包并将其记录到文件中:

12 月 7 日 18:21:52 host_b 内核:[988.996335] 丢弃输出:IN=OUT=ens33 SRC=192.168.1.1 DST=192.168.2.1 LEN=83 TOS=0x00 PREC=0x00 TTL=64 ID=52289 PROTO=UDP SPT=41151 DPT=53 LEN=63 UID=113 GID=118

12 月 7 日 18:21:52 host_b 内核:[988.998359] 丢弃输出:IN=OUT=ens33 SRC=2222:2222:2222:2222:2222:2222:2222:2222 DST=1111:1111:1111:1111:1111:1111:1111:1111 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 PROTO=ICMPv6 TYPE=136 CODE=0

12 月 7 日 18:21:53 host_b 内核:[990.001075] 丢弃输出:IN=OUT=ens33 SRC=2222:2222:2222:2222:2222:2222:2222:2222 DST=1111:1111:1111:1111:1111:1111:1111:1111 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 PROTO=ICMPv6 TYPE=136 CODE=0

从中first log line,有一个UIDGID信息:

UID=113 GID=118

我们可以使用这种方法来找到用户:

root@host_b:~# cat /etc/passwd | grep 113

但是对于2nd和行,日志中3rd没有任何UID或。GID

问题:

如何找出哪个程序正在发送以下网络数据包?

PROTO=ICMPv6 TYPE=136 CODE=0

笔记:根据 iptables 日志,这个“未知”程序接受传入的 ICMPv6 数据包,然后发送出站 ICMPv6 数据包,但是当数据包被规则丢弃时,iptables 无法记录该“未知”程序的 UID 和 GID。

答案1

邻居发现协议被阻止的 ICMP 消息属于 ipv6 堆栈。阻止它们不是一个好主意。堆栈是内核的一部分,没有用户进程。用户进程没有 UID/GID。

相关内容