我的网络地址是192.168.5.0
。我的主机是192.168.5.1
,我的客户端是192.168.5.2
。目前,我的客户端无法使用互联网浏览器,甚至无法 ping 通互联网。客户端可以 ping 通本地网络中的主机。
如何让我的客户端通过终端 ping 互联网,并使用 Shorewall 限制它使用浏览器或端口 80?以下是我的配置文件:
/etc/shorewall/interfaces file:
#ZONE INTERFACE
net eth0
loc eth1
eth0 接口是连接到互联网的接口,而 eth1 连接到本地网络。
/etc/shorewall/zones file:
#ZONE TYPE
fw firewall
net ipv4
loc ipv4
/etc/shorewall/policy file:
#SOURCE DEST POLICY LOGLEVEL
loc net ACCEPT
net all DROP $LOG_LEVEL
all all REJECT $LOG_LEVEL
/etc/shorewall/rules file:
?SECTION ALL
?SECTION ESTABLISHED
?SECTION RELATED
?SECTION INVALID
?SECTION UNTRACKED
?SECTION NEW
DNS(ACCEPT) $FW net
SSH(ACCEPT) loc $FW
PING(ACCEPT) loc $FW
PING(DROP) net $FW
ACCEPT $FW loc icmp
ACCEPT $FW net icmp
任何帮助都将非常感激。
答案1
如果你还没有这样做的话,我建议你查看这个页面:
http://www.shorewall.org/two-interface.htm
这里通过示例解释了基础知识。
根据您的版本,您还可以从以下位置复制和自定义示例文件:
/usr/share/doc/shorewall/examples/two-interfaces
从快速浏览来看,我认为缺少了以下内容:
- 伪装/NAT(
snat
或masq
文件,取决于您的版本)。 IP_Forwarding=ON
在 shorewall.conf 中。- 服务 Shorewall 在启动时自动启动。
补充 1:请检查您使用的 shorewall 宏的拼写是否正确。例如:
Ping (and not PING)
补充2:您有本地到互联网的默认策略全部允许:
/etc/shorewall/policy file:
#SOURCE DEST POLICY LOGLEVEL
loc net ACCEPT
这意味着默认情况下,从本地网络到互联网的所有内容都将被允许通过防火墙。现在,如果您想阻止某些东西,比如端口 80,您需要在上面设置一个阻止规则。例如:
HTTP(DROP) loc net
并且您不需要任何额外的允许规则来从 LAN 到网络进行 ping。