isware

iptables+NAT+端口映射

在学习iptables时,我们应该知道这两个NAT端口映射东西,现在我给大家讲解下!

实现目标:

利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!实现目标:

利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服 务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!(加了SQUID后还没有成功,努力中!)

软硬件环境如下:

操作系统为 RHEL 4 ,3COM网卡两张,eth0为外网网卡,IP为:221.222.111.10; eth1为内网网卡,IP为:192.168.0.1; 内网WEB服务器IP为:192.168.0.200 。网络环境为:中国电信10M光纤,固定IP!

方法为如下:

首先我注释掉了iptables文件原始的全部内容,然后在iptables文件中写入如下内容!

##################################### Nat段开始 #########################################

*nat

:PREROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]

#

#------------------------------ Web Server 端口映射 ------------------------------

# 192.168.0.200 端口80

######################

# 用DNAT作端口映射!注意以下指令一定要在NAT透明代理的前面,否则无效!

-A PREROUTING -i eth1 -p tcp -d 221.222.111.10 --dport 80 -j DNAT --to-destination 192.168.0.200:80

-A PREROUTING -i eth0 -p tcp -d 221.222.111.10 --dport 80 -j DNAT --to-destination 192.168.0.200:80

#

#------------------------------ Iptables NAT 透明代理 ------------------------------

#

-A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to 221.222.111.10

#

COMMIT

##################################### Nat段结束 #########################################

###################################### Filter段开始 #####################################

#

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

#

#防止网络上其它计算机使用Ping命令探测本机:

-A INPUT -p icmp --icmp-type echo-request -i eth0 -j DROP

#

# 防止广播包从IP代理服务器进入局域网:

-A INPUT -s 255.255.255.255 -i eth0 -j DROP

-A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP

-A INPUT -d 0.0.0.0 -i eth0 -j DROP

# 屏蔽掉以下的TCP和UDP端口:

-A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP

-A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP

-A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP

-A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP

-A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP

-A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP

#

COMMIT

###################################### Filter段结束 #####################################

修改完以上的文件后,再将/etc/sysctl.conf 文件里面修改成 net.ipv4.ip_forward = 1 ,这个很重要,不然NAT代理不能生效的!

然后用#: service iptables restart 这个指令重起iptables 服务!!OK,你再试试看代理服务和WEB能否则正常访问,我想一定可以的!

附:

Web Server 端口映射一定要在 Iptables NAT透明代理指令前面,否则内网用户将无法通过公网IP或域名访问内网的Web服务器!

通过文章,我们知道了iptables的NAT+端口映射方法。希望对你们有用!

posted on 2011-06-01 13:56 艾斯维亚 阅读(504) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理