用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,将不允许的访问全部禁止。

你可能感兴趣的:(linux,Web,centos,防火墙,IIS)