扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51cto 2007年10月17日
关键字:
在本页阅读全文(共2页)
5、 内部机器对外发布WEB。
要把内网机器192.168.5.179的WEB对外发布的话,相当于是从外网访问内网。与第1步操作的局域网共享上网相同,只是访问的方向改变了。 不是从内网访问外网,而是从外网访问内网。
当公网访问服务器218.100.100.111时,防火墙把它映射到内网的192.168.5.179的TCP80上。当内网机器访问服务器218.100.100.111时,防 火墙把它映射到内网的192.168.5.179的TCP80上。
-A PREROUTING –i eth0 –p tcp –d 218.100.100.111 --dport 80 –j DNAT --to-destination 192.168.5.179:80
-A PREROUTING –i eth1 –p tcp –d 218.100.100.111 –dport 80 –j DNAT --to-destination 192.168.5.179:80
(以上两句必须写在 –A PREROUTING –p tcp --dport 80 –j ACCEPT 前面。)
TCP 80端口的转发在第1步就已做过,此处就不用重复制作了。另外在
-A POSTROUTING –s 192.168.5.0/24 –j SNAT --to 218.100.100.111 之后加上一句:
-A POSTROUTING –o eth1 –s 0/0 –j SNAT --to 192.168.5.1
为什么要加这句话呢,我的理解是这样的,
公网访问 http://218.100.100.111时:(假设公网上用户的IP为199.199.199.199,端口12345为随机的产生的。)
数据源 : ip:199.199.199.199 sport:12345
数据目标: ip:218.100.100.111 dport 80
此时,通过-A PREROUTING –i eth0 –p tcp –d 218.100.100.111 --dport 80 –j DNAT --to-destination 192.168.5.179:80 告诉 199.199.199.199,您要访问的真正地址应该是192.168.5.179:80,然后我们通过-A POSTROUTING –p tcp --dport 80 –j ACCEPT 目标地址 218.100.100.111:80伪装成 192.168.5.179:80 。
数据源 : ip:199.199.199.199 sport:12345
数据目标: ip:192.168.5.179 dport 80
当192.168.5.179返回数据时:
数据源 : ip:192.168.5.179 sport:80
数据目标: ip:199.199.199.199 dport 12345
数据经过 -A POSTROUTING –s 192.168.5.0/24 –j SNAT –to 218.100.100.111 后,
数据源 : ip:218.100.100.111 sport:80
数据目标: ip:199.199.199.199 dport 12345
6、 完整的iptables配置
###########################################################################
*nat
################################
:PREROUTING DROP [0:0]
:OUTPUT DROP [0:0]
:POSTROUTING DROP [0:0]
################################
-F
-Z
-X
-A PREROUTING –i eth0 –p tcp –d 218.100.100.111 --dport 80 –j DNAT --to-destination 192.168.5.179:80
-A PREROUTING –i eth1 –p tcp –d 218.100.100.111 --dport 80 –j DNAT –to-destination 192.168.5.179:80
-A PREROUTING –p tcp --dport 80 –j ACCEPT
-A PREROUTING –p udp --dport 53 –j ACCEPT
-A PREROUTING –p tcp --dport 22 –j ACCEPT
-A PREROUTING –p tcp --dport 1863 –j ACCEPT
-A PREROUTING –p tcp --dport 443 –j ACCEPT
-A PREROUTING –p tcp --dport 8000 –j ACCEPT
-A PREROUTING –p udp --dport 8000 –j ACCEPT
-A PREROUTING –p udp --dport 4000 –j ACCEPT
-A PREROUTING –p tcp --dport 110 –j ACCEPT
-A PREROUTING –p tcp --dport 25 –j ACCEPT
-A POSTROUTING –s 192.168.5.0/24 –j SNAT –to 218.100.100.111
-A POSTROUTING –o eth1 –s 0/0 –j SNAT –to 192.168.5.1
-L –v
COMMIT
################################################
*filter
##############################
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
##############################
-F
-Z
-X
-A INPUT –p tcp --dport 22 –j ACCEPT
-A OUTPUT –p tcp --sport 22 –j ACCEPT
-A FORWARD –p tcp --dport 80 –j ACCEPT
-A FORWARD –p tcp --sport 80 –j ACCEPT
-A FORWARD –p udp --dport 53 –j ACCEPT
-A FORWARD –p udp --sport 53 –j ACCEPT
-A FORWARD –p tcp --dport 1863 –j ACCEPT
-A FORWARD –p tcp --sport 1863 –j ACCEPT
-A FORWARD –p tcp --dport 443 –j ACCEPT
-A FORWARD –p tcp --sport 443 –j ACCEPT
-A FORWARD –p tcp --dport 8000 –j ACCEPT
-A FORWARD –p tcp --sport 8000 –j ACCEPT
-A FORWARD –p udp --dport 8000 –j ACCEPT
-A FORWARD –p udp --sport 8000 –j ACCEPT
-A FORWARD –p udp --dport 4000 –j ACCEPT
-A FORWARD –p udp --sport 4000 –j ACCEPT
-A FORWARD –p tcp --dport 110 –j ACCEPT
-A FORWARD –p tcp --sport 110 –j ACCEPT
-A FORWARD –p tcp --dport 25 –j ACCEPT
-A FORWARD –p tcp --sport 25 –j ACCEPT
-L –v
COMMIT
##########################################################################
7、 其它注意事项
1)在使用iptables防火墙之前,必须先打开IP转发功能。
# echo “1” > /proc/sys/net/ipv4/ip_forward
2)以上内容(第6步生成的内容)保存到 /etc/sysconfig/iptables文件中。
3)每修改一次iptables文件后,都要重启iptalbes
# service iptables restart
以上就是我对iptables的初浅理解,里面的语句已在RedHat 9.0上测试通过。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。