利用NAT保护您的内部网络 什么是NAT NAT——网络地址转换,是通过将专用网络地址(如企业内部网Intranet)转换为公用地址(如互联网Internet),从而对外隐藏了内部管理的 IP 地址。这样,通过在内部使用非注册的 IP 地址,并将它们转换为一小部分外部注册的 IP 地址,从而减少了IP 地址注册的费用以及节省了目前越来越缺乏的地址空间(即IPV4)。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。 NAT功能通常被集成到路由器、防火墙、单独的NAT设备中,当然,现在比较流行的操作系统或其他软件(主要是代理软件,如WINROUTE),大多也有着NAT的功能。NAT设备(或软件)维护一个状态表,用来把内部网络的私有IP地址映射到外部网络的合法IP地址上去。每个包在NAT设备(或软件)中都被翻译成正确的IP地址发往下一级。与普通路由器不同的是,NAT设备实际上对包头进行修改,将内部网络的源地址变为NAT设备自己的外部网络地址,而普通路由器仅在将数据包转发到目的地前读取源地址和目的地址。 NAT分为三种类型:静态NAT(staticNAT)、NAT池(pooledNAT)和端口NAT(PAT)。其中静态NAT将内部网络中的每个主机都被{yj}映射成外部网络中的某个合法的地址,而NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,端口NAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。 废话说了不少,让我们转入正题,看一下如何利用NAT保护内部网络。 使用网络地址转换NAT,使得外部网络对内部网络的不可视,从而降低了外部网络对内部网络攻击的风险性。 在我们将内部网络的服务使用端口映射到NAT设备(或是软件)上时,NAT设备看起来就像一样对外提供服务器一台服务器一样(如图一)。这样对于攻击者来讲,具有一定的难度,首先他要攻破NAT设备,再根据NAT设备连接到内部网络进行破坏。 图一 由图一我们可以看出,内部网络中的A、B和C提供相应的MAIL、FTP和HTTP服务。我们利用NAT将所提供服务机器的对应的服务端口25、110、20、21和80映射到NAT服务器上(IP:88.88.88.88,域名:5imax.net上,其中端口及服务对应如下: SMTP<->25 POP3<->110 FTP<->20,21 HTTP<->80 说到20,我来加一个小插曲。我们都知道FTP对应的端口应该是21,为什么又冒出来一个20呢?其实,我们们进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,当我们要传输文件时,服务器会开一个端口为20来进行传输数据文件,也就是说,端口20才是真正传输所用到的端口,端口21只用于FTP的登陆认证。我们平常下载文件时,会遇到下载到99%时,文件不完成,不能成功的下载。其实是因为文件下载完毕后,还要在21端口再行进行用户认证,而我们下载文件的时间如果过长,客户机与服务器的21端口的连接会被服务器认为是超时连接而中断掉,就是这个原因。解决方法就是设置21端口的响应时间。 话题扯远了(别拿柿子、鸡蛋……扔我啊),我们继续我们的NAT吧。由图一为例,当外部访问者访问时,NAT会自动把请求提交到内部的192.168.0.102的80端口上,反之也一样,我们所收到的信息也是内部的192.168.0.102通过NAT来传输给外部访问者的。同样FTP及MAIL的服务也是如此。 其中的NAT既可以用操作系统和代理软件,又可以用路由器及NAT设备。下面我们用软件的方法来具体实现具体的NAT设置。 使用WINDOWS 2000 SERVER进行NAT的设置 WINDOWS 20000 SERVER FAMILY强大的网络功能,说起来真是VERY GOOD。她集成很多网络功能,比如说DHCP、DNS、SNMP、路由……,进行NAT的设置,我们只需要一个WINDOWS 2000 SERVER就足够了,不必借助于其他的软件。 说干就干,我们以中文版的WINDOWS 2000 SERVER为例,在NAT服务器上加两块网卡,一块是与内部网络相连(如IP:192.168.0.35),另一块则是与外部网络相连(如IP:88.88.88.88),在配置之前,要保证NAT服务器与内部私有网络及外部公用网络的数据传输没有故障。具体配置如下: 打开“开始——>程序——>管理工具——>路由和远程访问”,出现一个对话框,左侧有一个“服务器状态”,一个“BDWSER(本地)”(不一定是BDWSER,其实就应该是你的机器名),点“BDWSER(本地)”,然后点“操作——>配置并启用路由和远程访问”,会弹出一个的对话框,下一步,会出现如图二的对话框,选择“Internet连接服务器”,下一步, 图二 如图三,选择“设置有网络地址转换(NAT)路由协议的路由器”,下一步 图三 如图四,选择“使用选择的Internet连接——>本地连接2”,这里要注意一点,“本地连接2”即为服务器的外部连接,如本例中域名为5imax.net地址为88.88.88.88;而“本地连接”而是服务器与内部网络的连接。然后“下一步——>完成”,此时“路由和远程访问”会自动启动,我们稍侯等待“路由和远程访问”的启动。 图四 通过以上的配置,我们就可以利用NAT将内部地址转发到外部地址,也就相当于本机(WINDOWS 2000 SERVER)可以通过NAT代理内部的机器共享上网了。如果NAT服务器使用了DHCP,那么客户机只要自动获取IP即可;如果没有设置,客户机要指定IP:192.168.0.*,子网掩码:255.255.255.0,网关:192.168.0.35,DNS:202.97.224.68(使用本地ISP提供DNS服务器地址即可)。接下来,我们应该来配置外部端口到内部端口的映射(如图一中的88.88.88.88:80——>192.168.0.102:80),使得外部访问者访问相应的HTTP服务时,NAT主机会将服务的请求自动转换到内部网络所提供相应服务的主机上,反之,内部主机服务的反馈信息经由NAT主机转换发送到外部访问者。 在“路由和远程访问”对话框的左侧,打开“BDWSER(本地)——>IP路由选择——>网络地址转换(NAT)”,这时在“路由和远程访问”对话框的右侧窗口应该有二个接口,外部网络和内部网络(如图五)。 图五 在详细信息窗格中,右键单击要配置的接口,然后单击“属性”。 在“特殊端口”选项卡上,在“协议”中,单击“TCP”或“UDP”(根据不同的服务选择不同的协议,如HTTP服务为TCP,TFTP服务为UDP,但此例中并未涉及到UDP协议),然后单击“添加”。 在“传入端口”中,键入传入公用通信的端口号(如图六中的“传入端口80)。在“传出端口”中,键入专用网络资源的端口号(如图六中的“传出端口80”)。在“专用地址”中,键入专用网络资源的专用地址(如图六中的“专用地址192.168.0.102”,即图一所示主机C:192.168.0.102)。单击“确定”,添加完毕。同样,FTP和MAIL的服务添加的端口为20,21,25和110。 图六 以上的例子是仅使用单个公用IP进行NAT的转换,如果是使用多个公用IP,那么我们在配置映射端口之前,要进行NAT地址池的设置。在详细信息窗格中,右键单击要配置的接口(即外部网络接口,本地连接2),然后单击“属性”。在“地址池”选项卡上,单击“添加”,并执行下列操作之一: 如果正在使用以 IP 地址和子网掩码表示的 IP 地址范围,则在“起始地址”中键入起始 IP 地址,然后在“掩码”中键入子网掩码。 如果正在使用不能以 IP 地址和子网掩码表示的 IP 地址范围,在“起始地址”中键入起始 IP 地址,然后在“结束地址”中键入结束 IP 地址。 在设置端口映射时(即特殊端口),请单击“在此地址池项上”,然后键入传入公用通信的公用 IP 地址,其他的设置与上述的设置方法相访。 到了这里,我们的全部工作——利用NAT主机代理内部网络共享Interent和内部网络到NAT主机的端口映射——就完成了。为了安全起见,我们{zh0}在NAT主机的接入处加一个防火墙或设置NAT主机的“IP安全机制(IPSEC)”和“TCP/IP筛选”。“IP安全机制”和“TCP/IP筛选”的设置就在外部网络的TCP/IP协议中的安全选项中,参考WINDOWS 2000的帮助文件进行设置就可以,我们在这里就不再赘述了。 NAT的小结 当然,使用NAT进行端口映射,用NAT代理软件同样可以做到(比如说WINROUTE),而且相应的设置比较简单,一般只要默认安装上后,在软件中进行简单设置就可以了。手都写累了,有机会我们以后再谈。 利用NAT保护内部网络,特别是软件的NAT,适用于小、中型的网络,而大型的网络一般要使用硬件(如路由),因为NAT服务也要消耗NAT服务器的资源的。在大型的网络中,使用路由来做NAT,要做相应的安全设置,一般参考路由手册及CISCO ISO安全模型即可。 NAT的使用,使内部网络相应于外部网络不可见化,入侵者要先侵入NAT服务器(或NAT设备),然后利用NAT做跳板,进一步侵入内部网络。这样,对于入侵者就有一定的难度,如果NAT服务器与内部服务器使用不同的操作系统,那么入侵者需要对这两个操作系统都要熟悉才可以做到的,这对于一般的入侵者来说,入侵行为无疑是提高了一个台阶。文章到此结束,本文的意图不仅仅只是一个步骤,而是希望大家以此为一个基点,利用现有的技术,组建出xxx的网络。 由于写作上的失误及本人水平有限,本文难免会出现纰漏,希望大家指正。 注意:本人已经在杂志上发表,所以请大家不要随意转载,只供参考。 |