|
奇怪的问题? 不允许外网访问内网真实IP(双网口LINUX防火墙)
我用双网卡服务器做个简单的LINUX防火墙
外网口eth0:192.168.0.200/24 ; 内网口eth1:192.168.2.1/24
内网中有台WEB服务器192.168.2.10/24,需要被外网访问(虚拟IP为192.168.0.200)
内网192.168.2.0/24 都可以访问外网
做这个SNAT和DNAT的脚本很简单,以上需求也实现了。脚本如下
我在测试时发现个问题,我的PC连接在外网上,将PC网关设置防火墙外网口IP:192.168.0.200
结果奇怪的问题,我访问虚拟IP192.168.0.200的80端口正常,访问真实IP192.168.2.10的80端口也正常!
是不是当打开转发功能"echo "1" > /proc/sys/net/ipv4/ip_forward",从外网到内网路由已经通了?
比较奇怪的是不加DNAT和forward规则,是不能访问真实IP的(因为默认FORWARD DROP)
怎样才能不允许外网访问真实IP呢? 以保护网络安全.
请教高手,问题出在哪里? 先谢谢了!
#!/bin/sh
echo "0" > /proc/sys/net/ipv4/ip_forward
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A FORWARD -p ICMP -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -p TCP -i eth0 -o eth1 -d 192.168.2.10 --dport 80 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -p TCP -i eth0 -d 192.168.0.200 --dport 80 -j DNAT --to-destination 192.168.2.10
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.200
echo "1" > /proc/sys/net/ipv4/ip_forward |
|