在 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
主持人乙:
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
and3rd
行,日志中没有任何UID
or GID
。
题:
如何找出哪个程序正在发送以下网络数据包?
PROTO=ICMPv6 TYPE=136 CODE=0
注意:根据 iptables 日志,这个“未知”程序接受传入的 ICMPv6 数据包,然后发出传出的 ICMPv6 数据包,但是当数据包被规则丢弃时,iptables 无法记录该“未知”程序的 UID 和 GID。
参见Neighbor Discovery Protocol被阻止的 ICMP 消息属于 ipv6 堆栈。阻止他们不是一个好主意。Stack在内核的一部分,没有用户进程。没有用户进程的 UID / GID。