Linux系列-Red Hat5平台下的Iptables防火墙应用(二)

上次咱们已经对 iptables 做了一个了解,并且后面也举了很多常用的例子。也许大家觉得很难,特别是那四张表和五个链。其实真正用的时侯没哪么复杂,等一下你们看完下面两个应用就会觉得确实不难。
每个人学技术的目的都是为客户解决问题,给客户拿出一套解决方案来。这样才算是做的有用功。 Iptables 有很多功能,咱们不用好高骛远。学两招真正用的上技术是比较现实的。说这番话的目的是为了缓解大家面对 iptables 的压力。
NAT 就不用说了吧,相信大家也不会陌生。不管哪个企业哪个机构都会用到它,想上网除了走代理就是走 NAT ,所以咱们必须要把这个技术吃透。不但要掌握在路由、 windows 上的配置还要掌握在 Linux 系统上的配置。下面来看一下 SNAT DNAT 的应用。
拓扑图如下:
Linux系列-Red Hat5平台下的Iptables防火墙应用(二)_第1张图片 
现在大家看到拓扑了,我们的目的是让内网用户安全的上网,另外就是把内网中的一台主机名为 www.zpp.com web 服务器发布出去。这些应用只要是个公司肯定都会有的,前面虽然已给出了用 CISCO 路由、 windows ISA 等设备的解决方案,但就性能和成本来说用 Linux 肯定是最划算的,现在大部分网吧、小型企业都用的是 iptables.
这里为了大家阅读方便我简单罗列一下拓扑上的信息:
1>. 网关服务器 iptables 有两块网卡, TCP/IP 参数如下:
Eth0 LAN 接口) IP 192.168.1.1/24
Eth1 WAN 接口) IP 61.134.1.4/24
2>. 内网 Web 服务器的 IP 为: 192.168.1.10/24 网关: 192.168.1.1  主机名: www.zpp.com
还是一样分两部分来说,先让内网中的用户上了网再说。然后再让 Internet 用户访问咱们的 Web 服务器。
第一部分:利用SNAT 技术使内网用户安全上网。
SNAT Source Network Address Translation )源网络地址转换,咱们用这个技术既可以化解四版本的地址危机,又可以起到隐藏局域网信息的功能。下面来看看如何使用 SNAT 技术使用内网用户安全上网。
1.        确认两块网卡的 TCP/IP 参数设置 . 如图 :
 
2.        开启网关服务器的路由转发功能。
1>. /etc 目录下找到文件 sysctl.conf 将文件中的 net.ipv4.ip_forward = 0, 改为 net.ipv4.ip_forward = 1. 如图:
 
2>. 执行命令 sysctl �Cp 使咱们的修改生效。如图:
 
3.        为局域网访问 Internet 的数据包采用 SNAT 策略,将源地址更改为服务器的公网 IP 地址。
我这儿内网是 192.168.1.0/24 网段,所以源地址是 192.168.1.0/24.
 
这时大家可能会问,如果我用的是 ADSL 拨号上网 IP 地址不是固定的而是动态的,如何设置这个策略?此时我们可以使用 MASQUERADE (伪装)策略。 MASQUERADE 是一种特殊的 SNAT 技术,它照样可完成修改(伪装)数据包源 IP 地址的工作,只不过它会自动获取外网接口的 IP 地址。下面是 MASQUERADE 策略的用法:
 
说明:使用 iptables 命令设置 MASQUERADE 策略时,只需要去掉 SNAT 策略中的“ ―to-source IP 地址”,改为“ -j MASQUERADE ”指定数据包处理方式即可。 ADSL 通常使用 PPPoE 技术,在 Linux 系统中,对应的连接名称为 ppp0 ppp1 等,如果没不确定编号可以用 ppp+ 代替。
现在来测试一下:
在内网的客户机上使用命令 nslookup, 可以成功解析出外网 google 网站的 IP 说明 DNS 请求可以通过 SNAT 正常进行。如图:
 
从下图可以看到我们利用 SNAT 我们可以成功的访问外部站。
 
第二部分:利用DNAT 技术将位于咱们局域网内部的web 服务器发布出去
DNAT Destination Network Address Translation )目标网络地址转换。和 SNAT 刚好相反, DNAT 更灵活一点它可以用在 nat 表的 PREROUTING 链和 OUTPUT 链或被它调用的链。咱们用 DNAT 技术可以将内网或 DMZ 区中的服务器发布出去,
只需要一部搞定如下。在网关服务器上添加 DNAT 映射,将外网用户访问网关主机公网 IP (地址为: 61.134.1.4 80 端口的数据包更改为网站主机的 IP( 地址为: 192.168.1.2). 如图:
 
现在我们到外网主机上去测试一下,可以看到可以成功访问内网的 web 主机。
 
(注:我这里开了一台启动了 httpd 服务的 Linux 主机用于模拟内网 web 主机 www.zpp.com
通过命令 nslookup 可以测试出 , 主机 www.zpp.com 所对应的 IP 是网关服务器的外网口地址。
 
    OK !现在我们 iptables 中的两个关键技术―― SNAT DNAT 解决了两个关键的问题――用户安全上网的问题和发布内网服务器的问题。大家也可以发现虽然是关键的东西,但做起来并不难,几乎都只是一条命令搞定。这也正顺应了一句话―― Linux 是一种高起点低应用的技术,往往我们再学的时侯感觉很困难,但真真用的时侯就不哪样认为了。
本文出自 “ zpp” 博客,请务必保留此出处 http://zpp2009.blog.51cto.com/730423/285194

你可能感兴趣的:(linux,防火墙,iptables,平台,red)