Linux系列-Red Hat5平台下的Iptables防火墙应用(二)Iptables中必须掌握的两个技术S

上次咱们已经对iptables做了一个了解,并且后面也举了很多常用的例子。也许大家觉得很难,特别是那四张表和五个链。其实真正用的时侯没哪么复杂,等一下你们看完下面两个应用就会觉得确实不难。

每个人学技术的目的都是为客户解决问题,给客户拿出一套解决方案来。这样才算是做的有用功。Iptables有很多功能,咱们不用好高骛远。学两招真正用的上技术是比较现实的。说这番话的目的是为了缓解大家面对iptables的压力。

NAT就不用说了吧,相信大家也不会陌生。不管哪个企业哪个机构都会用到它,想上网除了走代理就是走NAT,所以咱们必须要把这个技术吃透。不但要掌握在路由、windows上的配置还要掌握在Linux系统上的配置。下面来看一下SNAT和DNAT的应用。

拓扑图如下:

现在大家看到拓扑了,我们的目的是让内网用户安全的上网,另外就是把内网中的一台主机名为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 –p使咱们的修改生效。如图:

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是一种高起点低应用的技术,往往我们再学的时侯感觉很困难,但真真用的时侯就不哪样认为了。

本文出自 51CTO.COM技术博客

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