我们在 LAN 环境中的 Linux 服务器上使用 shorewall。客户端机器使用 Windows XP。
当我尝试从我的 Windows XP 计算机连接到远程计算机(远程计算机具有静态 IP)时,shorewall 会丢弃静态 IP。我在 shorewall 规则中写入了例外,即使 shorewall 丢弃了 IP。请参阅以下日志消息:
Apr 28 16:13:46 system1 kernel: Shorewall:all2all:DROP:IN=eth1 OUT=eth0 SRC=192.168.21.12 DST=<Static IP> LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=62316 DF PROTO=TCP SPT=1822 DPT=1723 WINDOW=65535 RES=0x00 SYN URGP=0
我在shorewall上写的例外规则:
接受:info loc fw tcp 1723
我究竟做错了什么?
答案1
日志语句中显示“Shorewall:all2all:DROP”的部分表明数据包未被您编写的 ACCEPT 语句捕获,因为policy
正在触发默认的 all2all DROP 规则(在文件中找到)。
ACCEPT 规则的一部分:info
是我不熟悉的格式,这可能是该规则不起作用的原因。我建议使用:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT
ACCEPT loc fw tcp 1723
但是,“fw”区域(默认情况下)是防火墙本身,因此仅当目标是防火墙本身的 IP 且没有其他网络上的其他客户端时才会接受数据包。这可能是此规则无法按预期工作的另一个原因。您可以考虑将“fw”替换为包含目标主机的区域的名称。