当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 用iptables构建DMZ防火墙
路由器增加以下设置: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.9.200.2 arp -i eth1 -Ds 192.168.1.1 eth1 pub 防火墙的设置为: route add default gw 192.168.1.1 route add -host 192.168.1.1 gw 192.168.1.2 route add -net 192.169.1.0 netmask 255.255.255.0 gw 192.168.1.3 eth1 停火区主机的网关设为防火墙的网卡eth1地址192.168.1.3。 外部主机的网关设为路由器的外网卡eth0地址10.0.0.1。 内部主机的网关设为路由器的内网卡eth2地址168.1.1.1。 步骤3:建立规则 在防火墙上创建如下脚本并运行之。 #!/bin/sh ######## default firewall rules-deny all ######## iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ############################################### # Rules between EXTERNAL LAN and INTERNAL LAN # ############################################### ######## masquerade INTERNAL Address to xx.xx.xx.xx when going out ######## iptables -t nat -A POSTROUTING -s 168.1.1.0/24 -d 10.0.0.0/24 -o eth0 -j SNAT --to xx.xx.xx.xx ######## deny all from EXTERNAL LAN to INTERNAL LAN directly ######## iptables -t nat -A PREROUTING -s 10.0.0.0/24 -d 168.1.1.0/24 -i eth0 -j DROP ###################################### # Rules between DMZ and INTERNAL LAN # ###################################### ######## allow INTERNAL LAN to DMZ ######## iptables -A FORWARD -p icmp -s 168.1.1.0/24 -d 192.168.1.0/24 -m limit --limit 1/s --limit-burst 10 -j ACCEPT iptables -A FORWARD -s 168.1.1.0/24 -d 192.168.1.0/24 -i eth2 -j ACCEPT ######## forbid DMZ to INTERNAL LAN except following instance ######## iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 168.1.1.0/24 ! --syn -i eth1 -j ACCEPT iptables -A FORWARD -p tcp -s 192.168.1.0/24 --sport 20 -d 168.1.1.0/24 -i eth1 -j ACCEPT iptables -A FORWARD -p icmp --icmp-type 0 -s 192.168.1.0/24 -d 168.1.1.0/24 -m limit --limit 1/s --limit-burst 10 -j ACCEPT iptables -A FORWARD -p udp -s 192.168.1.0/24 -d 168.1.1.0/24 --sport 53 -j ACCEPT ###################################### # Rules between EXTERNAL LAN and DMZ # ###################################### ### allow EXTERNAL LAN to DMZ but deny all from EXTERNAL LAN to DMZ directly ### iptables -t nat -A PREROUTING -s 10.0.0.0/24 -d 192.168.1.0/24 -i eth0 -j DROP ### REAL_XX is real address of XX server in DMZ ### ### MASQ_XX is the masquaded address of REAL_XX supplied to EXTERNAL LAN ### ######## allow DNS service ######## iptables -t nat -A PREROUTING -p udp -d MASQ_DNS -s 10.0.0.0/24 --dport 53 -i eth0 -j DNAT --to REAL_DNS iptables -A FORWARD -p udp -s 10.0.0.0/24 -d REAL_DNS -i eth0 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -d 10.0.0.0/24 -s REAL_DNS -i eth1--sport 53 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d MASQ_DNS -s 10.0.0.0/24 --dport 53 -i eth0 -j DNAT --to REAL_DNS iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d REAL_DNS -i eth0 --dport 53 -j ACCEPT iptables -A FORWARD -p tcp -d 10.0.0.0/24
评论 (0) All