9.4.2 通过NAT上网解决方案
(1)应用背景
公司内部网络使用私有IP网段192.168.10.0/32进行规划,网络拓扑如图9-2所示。公司内部Web和FTP服务器能被外部主机访问,服务器的IP地址为内部地址分别为192. 168.10.10/24和192.168.10.20/24,对应的外部IP地址为222.17.10.250/28和222.17.10.251/28。作为公司的网络管理员,试将服务器内外地址通过NAT服务器进行映射,使得外部主机能访问服务器,内部主机通过出口地址复用方式上网,允许VPN部署以及SSH安全模式连接,同时要求部署安全策略防止外网对内网的攻击。
(2)配置步骤
第一步,清除已有规则和删除用于定义链:
iptables-F
iptables-X
iptables-Z
iptables-F-t nat
iptables-X-t nat
iptables-Z-t nat
第二步,配置禁止转发任何包的默认策略(Policy),当接收到的数据包不在已定义规则之内时,则该封包的通过与否,以Policy的设定为准:
iptables-P INPUT DROP
iptables-P FORWARD DROP
iptables-POUTPUT ACCEPT
iptables-t nat-P PREROUTING ACCEPT
iptables-t nat-P POSTROUTING ACCEPT
iptables-t nat-P OUTPUT ACCEPT
第三步,设置过滤规则:
iptables-A INPUT!-i-eth1-m state--state NEW-j ACCEPT
iptables-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT
iptables-A FORWARD!-i-eth1-m state--state NEW-j ACCEPT
iptables-A FORWARD-m state--state ESTABLISHED,RELATED-j ACCEPT
第一条规则允许所有非外部发起的新连接包进入;第二条规则允许双向传送的连接包或已有连接的TCP新的连接包进入;第三条规则允许转发所有非外部发起的新连接包;第四条规则允许转发双向传送的连接包或已有连接的TCP新的连接包;
第四步,过滤IP和ICMP碎片。
iptables-A FORWARD-f-m limit--limit100/s--limit-burst100-j ACCEPT
iptables-A FORWARD-p icmp-m limit--limit1/s--limit-burst10-j ACCEPT
第五步,防止外网被内网IP欺骗。
iptables-t nat-A PREROUTING-i-eth1-s 192.168.0.0/16-j DROP
iptables-t nat-A PREROUTING-i-eth1-s 172.16.0.0/12-j DROP
iptables-t nat-A PREROUTING-i-eth1-s 10.10.0.0/8-j DROP
iptables-t nat-A PREROUTING-i-eth1-s 127.0.0.0/8-j DROP
第六步,打开VPN和SSH端口1723和22。
iptables-A INPUT-i-eth1-p tcp--dport 1723-m state--state NEW-j ACCEPT
iptables-A INPUT-i-eth1-p tcp--dport22-m state--state NEW-j ACCEPT
iptables-A INPUT-i-eth1-p udp--dport22-m state--state NEW-j ACCEPT
第七步,设置NAT转换,将服务器内外地绑定。
iptables-A FORWARD-i eth1-o eth0-d 192.168.10.10-p tcp--dport 80-m state--state NEW-j ACCEPT
iptables-A FORWARD-i eth1-o eth0-d 192.168.10.20-p tcp--dport 21-m state--state NEW-j ACCEPT
iptables-t nat-A PREROUTING-d 222.17.10.250-p tcp--dport80-j DNAT--to-destination 192.168.10.10
iptables-t nat-A PREROUTING-d 222.17.10.251-p tcp--dport21-j DNAT--to-destination 192.168.10.20
iptables-t nat-A POSTROUTING-s 192.168.10.10-p tcp--sport80-j SNAT--to-source 222.17.10.250
iptables-t nat-A POSTROUTING-s 192.168.10.20-p tcp--sport21-j SNAT--to-source 222.17.10.251
第八步,使用源地址转换的一种特例:地址伪装使内部主机通过出口地址复用方式上网,配置命令如下:
iptables-t nat-A POSTROUTING-o-eth1-j MASQUERADE
通过上面的八个主要步骤就可以完成公司的初步的安全上网部署。为了提高管理的效率,日后维护方便,可以将上面的内容写成脚本,方便维护。脚本编制如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。