在 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
,有一个UID
和GID
信息:
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。