用linux设置iptables做网关

周海汉 /文

2010-3-25

http://blog.csdn.net/ablo_zhou

 

为了安全起见,web服务器,数据库,计费等有重要内容的机器,可能是藏在防火墙后面的,甚至没有外网地址。在此,我们假定需要给一台只有内网地址的web服务器设置linux网关,让外网可以访问web,但又屏蔽其他端口的访问。

 

iptables是linux 2.4以上内核自带的防火墙,可以用于阻挡非法的端口和IP访问,也可以用于做网关设备,配置NAT/防火墙,做port forward.

 

iptables 的逻辑,由表tables,链chains,规则rules组成。根据报文头进行相应的处理。系统接受到包时,底层路由根据目的地分发。如果目的地是本机,则进入INPUT链。本机处理完,再进入OUTPUT链,发送出去。如果目的地不是本机,则进入FORWARD链,符合规则,则转发出去。

 

设备设置:

web site ip port: 192.168.12.50 80 (windows IIS server  or linux apache)

gateway public ip(eth0): 210.211.22.20, private ip(eth1): 192.168.12.10 (centos 5.2)

 

现在我们希望访问http://210.211.22.20 即可访问http://192.168.12.50:80.

 

1.gateway上设置允许IP转送:

 

vi /etc/sysctl.conf

设置:

 

net.ipv4.ip_forward = 1

 

执行

sysctl -p

应该看到

net.ipv4.ip_forward = 1

 

2.gateway上设置iptables

 

 

设置完毕,执行service iptables save

此时,从外网访问http://210.211.22.20已经可以看到内网的网页。

 

3.举一反三,根据需要,可以将端口设置为数据库的1433或ftp的20,21,smtp和pop的25,110等,协议和转发需要稍有改动和调试。

例如,设置mssql数据库的代理。

 

 

4.设置好iptables,将不允许的访问全部禁止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章