网络防火墙功能的小实验
1、三台机器的各自IP如下图:
2、在A机器上添加默认路由,并将网关指向B机器的192.168.33.83
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.33.83
3、在A机器分别对192.168.33.83和172.16.10.2执行ping操作,结果如下:(172.16.10.2会ping通的原因是因为,A机器gw指向了B,而IP地址是属于B机器内核的,并非属于网卡的,所以ping此地址会通)
3、在A机器对172.16.10.1执行ping操作不会成功的原因是因为
(1)B机器没有打开网络转发功能;
(2)ApingC,对C而言源地址为192.168.33.81,目标地址为172.16.10.2;当C返回报文时,源地址为172.16.10.2,目标地址却为172.16.10.1了,返回报文未能送达A机器
4、在B机器打开网络转发功能
sysctl -w net.ipv4.ip_forward=1
5、在C机器添加路由如下,将返回的报文通过172.16.10.2网关送达A机器
route add -net 192.168.33.0/24 gw 172.16.10.2
6、A机器ping172.16.10.1机器可以通了
7、通过上面的实验我们可以在B机器制定相关规则,实现网络防火墙的功能,如A仅能够访问C的22(ssh)和80(httpd)端口的服务,则需在B机器制定下面规则即可:
iptables -t filter -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -d 172.16.10.1 -p tcp -m multiport --dport 22,80 -m state --state NEW -j ACCEPT