数据包经过防火墙的路径 图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况: 来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。 由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径 来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。 图1 如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图. 图2 禁止端口的实例 禁止ssh端口 只允许在192.168.62.1上使用 ssh远程登录,从其它计算机上禁止使用 ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT #iptables -A INPUT -p tcp --dport 22 -j DROP 禁止代理端口 #iptables -A INPUT -p tcp --dport 3128 -j REJECT 禁止icmp端口 除192.168.62.1外,禁止其它人ping我的主机 #iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request -j ACCEPT #iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP 或 #iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT #iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP 注:可以用 iptables --protocol icmp --help查看 ICMP类型 还有没有其它办法实现? 禁止QQ端口 #iptables -D FORWARD -p udp --dport 8000 -j REJECT 强制访问指定的站点 图3 要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则: 1. 打开 ip包转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward 2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则: iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 202.96.134.130:80 iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT --to-destination 202.96.134.130:80 3. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则: iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s 192.168.52.0/24 -j SNAT --...