我使用 iptables 记录所有传入连接。在查看日志时var/log/messages
,我注意到有一些来自另一台计算机的传入连接连接到未分配的 LAN IP 地址,例如:
1 月 7 日 23:31:28 某些内核:[1863.117105] IPTABLES:IN=wlan0 OUT=MAC=ff:ff:ff:ff:ff:ff:ff:00:12:34:56:e1:e1:08:00 SRC=192.168.1.12 DST=192.168.1.255 LEN=239 TOS=0x00 PREC=0x00 TTL=128 ID=37 PROTO=UDP SPT=138 DPT=138 LEN=219
我的问题是,如果这些连接不是发往我的服务器的,为什么它们会记录在 INPUT 下?如果它们被记录下来,是否意味着如果我没有明确过滤掉它们,我的服务器就会接受它们?我当前的 iptables 配置是:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j LOG --log-prefix "IPTABLES: " --log-level info
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-d
这是否意味着我必须在最后一条规则中添加:
-A INPUT -p tcp -d 192.168.1.1 --dport 80 -j ACCEPT
过滤掉不是发往我的服务器的连接?
答案1
即记录一个数据包到 192.168.2.255,假设您有一个 24 位子网掩码,那么这意味着它是广播地址。广播被发送到网络上的每台计算机。
这个特定的数据包几乎肯定是一台 Windows 机器向网络宣布其名称。
答案2
假设您使用的是 /24 网络,那么您的系统正在接受该数据包,因为它的广播地址是 192.168.1/24 192.168.1.255,这是正常的。