使用NAT打造FTP服务新法
- 格式:doc
- 大小:55.00 KB
- 文档页数:7
NAT穿透技术穿透原理和方法详解NAT(Network Address Translation)是一种将私有网络中的IP地址转换为公网IP地址的技术。
它的主要作用是解决了IPv4地址资源不足的问题,同时也提供了一定程度的网络安全保护。
然而,NAT也带来了一些问题,其中最显著的就是它在一些情况下会阻碍对私有网络中主机的远程访问。
为了解决NAT对远程访问的限制,出现了NAT穿透技术。
NAT穿透技术允许位于私有网络中的主机与公网上的主机建立直接的连接,从而使得私有网络中的主机可以被公网上的主机访问到。
下面详细介绍NAT穿透技术的实现原理和具体方法。
一、NAT穿透的原理:私有网络中的主机首先与穿透服务器建立连接,并将本地IP和端口号发送给穿透服务器。
穿透服务器将这些信息记录下来并分配一个公网IP和端口号。
对于公网上的主机来说,私有网络中的主机就像一个虚拟的公网主机一样可直接访问。
同时,私有网络中的主机也可以主动发起连接到公网上的主机。
私有网络中的主机相当于是通过穿透服务器将自己的通信请求“穿透”了NAT 防火墙,直接到达公网上的主机。
二、NAT穿透的方法:1.端口映射:端口映射是最常见和简单的NAT穿透方法之一、私有网络中的主机将本地的端口号映射到公网IP的一些端口上,然后通过穿透服务器将请求转发到该端口上,从而实现私有网络中主机的远程访问。
2.中继服务器:中继服务器是一种在公网上与私有网络中的主机建立连续连接的方法。
私有网络中的主机首先连接到中继服务器,然后公网上的主机也连接到中继服务器,中继服务器将两端的请求进行转发,从而实现私有网络中的主机和公网上的主机直接通信。
3.UDP打洞:UDP打洞是一种通过UDP协议来穿透NAT防火墙的方法。
私有网络中的主机先向公网主机发送一个UDP数据包,公网主机也向私有网络的主机发送UDP数据包,通过这两个数据包的发送和接收,NAT防火墙会记录下私有网络中主机的IP和端口号,从而实现两者之间的直接通信。
NAT技术在网络中的应用与实现NAT(Network Address Translation)是一种网络技术,它在网络中的应用与实现有着广泛的应用。
一、应用场景1.IP地址转换:在一个局域网中使用私有IP地址,通过NAT技术将私有IP地址转换为公有IP地址,以实现与互联网的通信。
这使得使用私有IP地址的企业或组织可以在不需要大量公有IP地址的情况下连接到互联网。
2.隐私和安全:NAT技术可以隐藏内部网络的真正IP地址,使得外部网络无法直接访问内部网络中的设备。
这提高了内部网络的安全性,并减少了受到攻击的可能性。
3.负载均衡:NAT技术可以将外部网络的请求分发到内部网络中的多个服务器上,实现负载均衡。
这可以提高网络的性能和可靠性,避免单一服务器的过载或故障导致整个网络的中断。
4.IPv4向IPv6的过渡:NAT技术可以用作IPv4和IPv6之间的转换技术。
通过使用NAT64和DNS64技术,将IPv6地址转换为IPv4地址,以允许IPv6设备访问IPv4互联网。
二、实现方式1.静态NAT:静态NAT是一种一对一的映射关系,将内部网络中的私有IP地址映射到外部网络中的公有IP地址。
当外部网络收到来自公有IP地址的请求时,NAT会将请求转发给相应的私有IP地址。
2.动态NAT:动态NAT是一种一对多的映射关系,将内部网络中的私有IP地址映射到外部网络中的一个或多个公有IP地址。
当外部网络收到来自公有IP地址的请求时,NAT会根据预先设定的策略将请求转发给相应的私有IP地址。
3.PAT(端口地址转换):PAT是一种一对多的映射关系,通过映射不同的端口号,将多个内部网络中的私有IP地址映射到外部网络中的一个公有IP地址。
当外部网络收到来自公有IP地址和端口号的请求时,NAT会将请求转发给相应的私有IP地址和端口号。
4.NAT64和DNS64:NAT64和DNS64是用于IPv6和IPv4之间转换的技术。
当IPv6设备需要访问IPv4互联网时,它将发送一个特殊的DNS查询请求,该请求会被NAT64服务器捕获并解析。
群晖nat规则全文共四篇示例,供读者参考第一篇示例:群晖NAS是一款备受用户青睐的网络存储设备,其功能强大且易于操作。
在使用群晖NAS时,经常需要设置一些网络规则来保障网络安全和优化网络连接。
设置NAT规则是非常重要的一项工作。
NAT,即网络地址转换,是一种网络通讯协议,用于在私有网络和公共网络之间进行通讯。
NAT规则的作用是将内部网络的私有IP地址映射为外部网络的公共IP地址,实现内网外网的连接。
在群晖NAS 中,设置NAT规则可以帮助用户实现多种网络功能,如端口映射、虚拟服务器、固定IP分配等。
在群晖NAS中设置NAT规则非常简单。
用户只需登录NAS的管理界面,找到“网络管理”或“端口转发”等功能模块,然后点击“新增规则”或“添加规则”,填写相应的规则信息即可。
在填写规则信息时,用户需要指定规则的类型(如端口映射、虚拟服务器)、内外网IP地址、端口范围等参数,完成设置后点击“保存”即可生效。
设置NAT规则的目的主要有以下几点:1. 端口映射:通过设置端口映射规则,可以将内网某个端口映射到外网的指定端口,实现远程访问内网服务的功能。
用户可以将内网的HTTP服务映射到外网的80端口,使外部用户可以通过浏览器访问内网的网站。
2. 虚拟服务器:虚拟服务器是指将公共IP地址映射到内网的某个设备上,从而实现外部对该设备的访问。
通过设置虚拟服务器规则,用户可以将外网流量导向内网的特定设备,比如监控摄像头、文件服务器等。
3. 固定IP分配:有些用户可能希望某些设备在网络上始终保持固定的IP地址,以便于管理和访问。
通过设置NAT规则,用户可以为某个设备分配固定的IP地址,确保其在网络中的唯一性和稳定性。
除了上述功能之外,设置NAT规则还可以帮助用户实现端口转发、路由转发等网络功能,提升网络性能和安全性。
在设置NAT规则时,用户需要注意一些常见问题,如规则冲突、端口占用、安全漏洞等,及时调整和优化规则,确保网络正常运行。
利用网络地址转换NAT实现内外网互通网络地址转换(NAT)是一种通信协议,用于在私有网络和公共网络之间建立连接,从而实现内外网的互通。
NAT的作用是将私有网络中的IP地址转换为可以在公共网络上识别的外部IP地址,以实现内网和外网的通信。
本文将介绍如何利用NAT技术实现内外网互通,并讨论NAT的优点和缺点。
一、NAT的原理和功能网络地址转换(NAT)是一种在网络层对IP地址进行转换的技术。
它通过将私有IP地址转换为公共IP地址,使得私有网络中的主机可以和公共网络中的主机进行通信。
NAT的主要功能包括以下几点:1. IP地址转换:NAT将内网的私有IP地址转换为公共网络中的公共IP地址,以实现内外网之间的通信。
2. 端口转换:NAT可以将内网主机的端口映射到公共网络中的端口,以实现多个内网主机通过同一个公共IP地址访问公共网络。
3. 地址映射:NAT会为内网主机分配一个唯一的公共IP地址,使得内网主机可以在公共网络中被识别和访问。
二、利用NAT实现内外网互通的步骤实现内外网的互通需要按照以下步骤进行配置:1. 配置NAT设备:首先,需选择合适的NAT设备作为网关,该设备负责将内网的IP地址转换为公共网络的IP地址。
配置NAT设备需要指定内网和外网的接口,并设置相应的IP地址、子网掩码和网关信息。
2. 配置内网主机:将内网主机连接到NAT设备的内网接口,并对主机进行相应的IP地址配置。
内网主机的IP地址应与NAT设备内网接口位于同一子网。
3. 配置网络策略:根据需求配置网络策略,允许或限制内网主机与公共网络中的主机进行通信。
网络策略规定了内外网之间的访问规则,可以根据需求设置相应的端口映射、访问限制等。
4. 测试网络连通性:配置完成后,进行网络连通性测试,确保内网主机可以正常访问外部网络资源,以及外部网络可以访问内网主机。
如有问题,可通过诊断工具进行故障排查。
三、NAT的优点和局限性NAT技术作为实现内外网互通的关键技术,具有以下几个优点:1. 节省IP地址:通过NAT技术,可以将多个内网主机映射到一个公共IP地址上,有效节省了IP地址资源的使用。
报⽂解析FTP主动被动模式和FTP结合NAT使⽤FTP模式介绍FTP的主动模式和被动模式的区别:主动模式:(也叫Standard模式,PORT⽅式)FTP服务器主动去连接FTP客户端。
FTP客户端告诉FTP服务器使⽤什么端⼝进⾏侦听,FTP服务器和FTP客户端的这个端⼝进⾏连接,源端⼝是20。
被动模式:(也叫Passive模式,也叫PASV⽅式)FTP服务器被动的等待FTP客户端连接⾃⼰。
FTP服务器打开指定范围内的某个端⼝(也叫⾃由端⼝,1024--65535之间),被动的等待客户端进⾏连接。
主被动模式报⽂解析建⽴控制连接的过程登录的时候客户端是44.1.1.44服务器是33.1.1.33,⽤户名1密码111111通过命令⾏登录Client:syn 我请求跟你进⾏连接Server:ack+syn 可以,我也请求跟你连接Client:ack 可以(上⾯是三次握⼿)Server:response 我这ready准备好了Client:ack 好的Client:request 我使⽤的user是1Server:response 请输⼊密码Client:ack 好的,收到Client:request 我⽤的密码是111111Server: response ⽤户名1 ,密码111111,正确,logged in,允许进⼊Client:ack 好的上⾯是进⾏的连接控制的简单过程,FTP服务器使⽤的端⼝号是21,FTP客户端使⽤的端⼝号是64023。
主动连接:客户端通过PORT命令告诉服务器⾃⼰要使⽤的数据端⼝号,然后在客户端主动建⽴起这个端⼝的监听。
进⾏⽂件传输的时候,服务器来连接客户端的这个数据接⼝,进⾏数据传输。
FTP客户端想要下载⽂件,get hfs.exeClient:request 我发送了PORT命令要使⽤主动连接,使⽤64024进⾏侦听Server:response 主动连接的指令成功Client:request 我想要hfs.exe⽂件Server:response 为hfs.exe打开数据连接Server:syn 主动请求建⽴数据连接,源端⼝号20,⽬的端⼝号64024Client:ack+syn 可以,请求与服务器建⽴连接,sport:64024,dport:20Server:ack 可以之后就是server和client之间传输数据的过程,⼀直到⽂件传完Server:response 给client发送⼀条命令,⽂件传输okClient:ack 好的以上是主动模式的过程被动连接:FTP客户端发送PASV命令到FTP服务器,想使⽤PASV⽅式传输数据。
一步步教你配置NAT(服务器篇)一步步教你配置NAT(服务器篇)【网友提问】我是一名公司的网管,想问一下NAT技术一般都在什么时候用,在windows 2 003和路由器上如何配置NAT?希望IT168能够帮助我解答!谢谢!经常听身边的网管朋友谈论NAT技术,那么什么时候用到NAT技术呢?主要有两方面,第一是公网IP地址不够用,当企业只租用到了数量有限的公网IP时,不可能为内部每台计算机都分配一个公网IP,如何解决IP地址不够用的问题呢?这时就可以采用NAT技术,多个内部计算机在访问INTERNET时使用同一个公网IP 地址;第二是当公司希望对内部计算机进行有效的安全保护时可以采用NA T技术,内部网络中的所有计算机上网时受到路由器或服务器(防火墙)的保护,黑客与病毒的攻击被阻挡在网络出口设备上,大大提高了内部计算机的安全性。
接下来笔者将带领大家一步步在Windows 2003 Server服务器上配置并启用NAT功能。
具体网络环境:电信的ADSL,交换机一个,服务器一台,客户机若干,网线已经做好,所有机器上用的都是windows2000或是XP。
配置服务器NAT地址转换第一步:启动“路由和远程访问”,通过“开始->程序->管理工具->路由和远程访问”,默认状态下,将本地计算机列出为服务器。
如果要添加其他服务器,请在控制台目录树中,右键单击“服务器状态”,然后单击“添加服务器”。
第二步:右击要启用的服务器(这里是本地服务器),然后单击“配置并启用路由和远程访问”,启动配置向导。
第三步:出现欢迎页面后单击下一步。
出现选择服务器角色设置页面,选择“网络地址转换(NAT)”,接着单击下一步。
第四步:在Internet连接页面中选择“使用Internet连接”,在下面的Internet列表中选项“外网连接”,我们将让客户机通过这条连接访问Internet,界面如下图。
单击下一步继续。
小提示:这一点非常重要,一定不能把内网与外网的接口选择错误,否则配置的NA T就无法生效,因此我们在上面将本地连接的名称进行了修改,这里就显得一目了然了。
NAT类型判断工具及使用方法详解NAT(网络地址转换)是一种常见的网络技术,用于将内部网络的IP地址转换为外部网络可识别的IP地址,以实现多个内部设备共享一个公共IP地址的功能。
在实际网络环境中,我们通常需要了解每个设备的NAT类型,以确保网络连接的稳定性和性能。
本文将介绍NAT 类型判断工具以及详细的使用方法。
一、NAT类型介绍NAT类型主要分为三类,分别是开放型(Open NAT)、中等型(Moderate NAT)和严格型(Strict NAT)。
1. 开放型NAT:该类型允许设备与外部网络之间的所有通信,是最理想的NAT类型,对于在线游戏和其他对网络连接质量要求较高的应用最为适用。
2. 中等型NAT:该类型允许设备与外部网络之间的某些通信,但受到一定程度的限制。
尽管对于一般的互联网使用来说仍可满足需求,但在某些情况下可能会导致一些应用的功能不完全。
3. 严格型NAT:该类型限制了设备与外部网络之间的通信,可能导致部分应用无法正常运行。
在在线游戏等对网络要求较高的应用中,不能使用严格型NAT。
二、NAT类型判断工具要判断设备的NAT类型,我们可以使用一些专业的网络工具。
以下是两种常用的NAT类型判断工具:1. UPnP检测工具:UPnP是一种用于实现网络设备之间无缝连接和通信的协议。
通过启用UPnP功能并使用相应的工具,我们可以轻松判断设备的NAT类型。
UPnP检测工具通常会显示设备的NAT类型以及相关的网络参数,方便用户了解设备的网络连接状况。
2. 网络测试工具:网络测试工具可以通过模拟网络连接进行各项测试,其中包括NAT类型的检测。
通过发送特定的网络数据包并根据返回结果分析,网络测试工具可以准确地判断设备的NAT类型。
此类工具通常具有友好的用户界面,用户只需按照指引进行相应的操作即可获得NAT类型的判断结果。
三、使用方法下面将介绍使用UPnP检测工具和网络测试工具来判断设备的NAT 类型的具体方法。
路由器NAT配置与实际运用,实现一个IP多用户大家好,今天我们来学习交流一下路由器NAT配置与实际运用,实现一个IP多用户。
为了减缓IP地址的枯竭,94年提出的nat。
早些时候有些朋友可能已经发现,在网络控制面板中,本地连接属性里就多了个IPV6,随着时间的推移,地球上的PC越来越多,IPV4迟早要被替换掉了。
什么是NAT(网络地址转换),简单的说就是把一个IP地址转变成另外一个IP地址,又或者把多个IP地址同时转变成另外一个IP地址。
我们生活中通常运用在将局域网中的私有地址(如192.168.1.1之类的)转成运营商给我们分配的唯一的公网地址。
现在很多傻瓜式路由器都是直接配置好的,只要连接拨号或者接入wan口就可以正常使用了。
但在企业和工作室需要使用专业的设备时,我们的管理员还是要进行一些配置。
如有多个外网地址,可以指派哪些内网地址转换成哪个外网地址等,做到合理的分配外网资源。
通过本文实验,主要了解为以下几点1、静态和动态 NAT 的特征;2、掌握静态 NAT基本配置和调试;3、掌握动态 NAT基本配置和调试4、overload的使用。
实验参考配置命令例:局域网采用10Mb/s 光纤,以城域网方式对接Internet。
路由器使用带有2 个10/100 Mb/s自适应端口的Cisco 2611。
网络内部配置使用的IP地址段为10.18.100.1~10.18.104.254,局域网路由器2611端口Ethernet 0 的IP 地址为10.18.100.1,子网掩码为255.255.0.0。
网络分配的合法IP地址范围为211.82.220.80~211.82.220.87,连接ISP(电信、移动、联通)的路由器2611端口Ethernet 1的IP地址为211.82.220.81,子网掩码为255.255.255.248。
要求网络内部的所有计算机均可访问 Internet,并且在 Internet 中提供 Web、E-mail、FTP和 Media等 4 种服务。
使用NAT打造FTP服务新法NAT(Network Address Translation)是一种在计算机网络中将IP地址进行转换的技术。
通过NAT,一个局域网中的多台计算机可以通过一个公网IP地址与外部网络进行通信。
在传统的网络环境中,如果在局域网中要搭建FTP服务器,需要给FTP服务器分配一个公网IP地址,使得外部网络可以访问该服务器。
然而,公网IP地址资源有限,且每个公网IP地址需要一定的资金费用,这导致了在一般的小型局域网中搭建FTP服务器成本较高。
NAT技术可以通过端口转发来实现FTP服务器在私网中的搭建。
在这种方式下,FTP服务器将运行在局域网中的一台计算机上,而这台计算机并没有被分配一个公网IP地址。
我们可以通过配置局域网中的路由器,将来自外部网络的FTP请求定向到FTP服务器所在的计算机上。
1.先确保局域网中FTP服务器所在的计算机已经正确配置了FTP服务器软件,并且可以在局域网内正常运行。
2.在路由器中进行端口转发配置。
进入路由器的管理界面,找到端口转发或者NAT设置选项。
根据不同的路由器型号和厂商,界面和配置选项可能会有所不同。
一般来说,我们需要指定外部网络的端口和内部网络的IP地址和端口。
3.设定外部网络端口。
在端口转发配置界面中,输入外部网络端口号。
这个端口号是外部网络中用来访问FTP服务器的端口号。
常用的FTP端口号为20和214.设定内部网络IP地址和端口。
在端口转发配置界面中,输入内部网络的IP地址和端口号。
IP地址是FTP服务器所在计算机在局域网中的IP地址,端口号是FTP服务器软件所使用的端口号,默认是21端口。
5.保存配置,并重新启动路由器。
配置完成后,保存配置并重启路由器,以使修改生效。
6.在外部网络中测试访问FTP服务器。
在外部网络中,打开FTP客户端软件,输入FTP服务器所在的公网IP地址和端口号,然后输入正确的用户名和密码,即可访问FTP服务器并进行文件传输等操作。
CISCO NAT 经典配置合集(5个)示例1在本例中,公司使用一台两接口路由器,一个是Ethernet,另一个是串行接口。
Ethernet0连接到内部网络,而串行接口则通过PPP链路连接到ISP路由器。
在内部网络中,公司使用10.0.0.0/24地址范围内的地址。
公司已从其供应商那里获得了一个单一的全局可路由的IP地址171.100.1.1,并且该地址用于路由器的串行接口上。
公司使用PAT将其所有的内部本地地址转换成单一的内部全局地址171.100.1.1。
公司希望提供可以从Internet访问的FTP和Web服务器,并且对Web服务器的请求应被送到Web服务器所在的地址10.1.1.100,而FTP请求则被送到FTP服务器所在的地址10.1.1.101。
1 解决方案interface ethernet0ip address 10.1.1.1 255.255.255.0ip nat inside!interface serial0ip address 171.100.1.1 255.255.255.252ip nat outside!ip access-list permit 10.0.0.0 0.255.255.255!ip nat inside source list 1 interface serial0 overloadip nat inside source list 1 static tcp 10.1.1.100 80 171.100.1.1 80 ip nat inside source list 1 static tcp 10.1.1.101 21 171.100.1.1 21 2 分析先定义NAT所用的接口,并通过将合适的命令放在每个接口下面来定义接口是NAT内部或外部接口。
通常,在定义NAT接口之后,就要定义NAT池来指定所用的内部全局地址。
但是,在本例中只使用了一个单一的内部全局地址,并且将该单一内部全局地址用于路由器的serial 0接口上。
NAT地址转换原理及配置NAT(Network Address Translation)是一种网络地址转换技术,主要用于解决IPv4地址不足的问题。
NAT工作在网络层,主要通过修改数据包的源地址和目的地址来实现地址转换。
下面将详细介绍NAT地址转换的原理和配置方法。
一、NAT地址转换原理当一个网络中的主机要与另一个网络中的主机进行通信时,需要知道目标主机的IP地址。
在IPv4中,IP地址空间有限,且分配不均,导致很多地方IP地址紧张。
NAT技术通过将内部网络的私有IP地址转换成外部网络的公有IP地址,使得内部网络中的主机能够访问Internet。
NAT地址转换的原理可以分为三种模式:静态NAT、动态NAT和PAT(端口地址转换)。
1.静态NAT:将特定的内部IP地址映射为特定的外部IP地址。
这种模式需要手动配置,一个内部IP地址只能映射为一个外部IP地址。
2.动态NAT:动态NAT是在静态NAT的基础上增加了地址池的概念。
内部主机可以动态地获取一个可用的外部IP地址,并在通信结束后释放。
这种方式可以使多个内部IP地址映射为多个外部IP地址,提高地址利用率。
3. PAT(端口地址转换):PAT是一种特殊的动态NAT技术。
在PAT 中,将多个内部IP地址映射到一个外部IP地址,并通过源端口号来区分不同的内部主机。
这样就可以实现多个内部主机通过一个公有IP地址访问Internet。
PAT是最常用的一种NAT方式。
二、NAT地址转换的配置方法1.配置地址池首先需要配置NAT的地址池,即可用的公有IP地址范围。
这个地址池可以是一个或多个连续的IP地址段。
配置地址池的命令如下:ip nat pool pool-name start-ip-address end-ip-address netmask netmask2.配置访问列表为了确定哪些数据包需要进行NAT地址转换,需要配置一个访问列表。
访问列表可以根据源地址、目的地址、协议、端口等条件进行匹配。
防火墙路由引入需要的设备:三个路由器、一个交换机、一个ASA防火墙交换机上的配置SW1>SW1>enSW1#vlan databaseSW1(vlan)#vlan 2VLAN 2 added:Name: VLAN0002SW1(vlan)#vlan 3VLAN 3 added:Name: VLAN0003SW1(vlan)#SW1(vlan)#exitSW1#conf tSW1(config)#int f0/2SW1(config-if)#switchport mode accessSW1(config-if)#switchport access vlan 2SW1(config-if)#int f0/11SW1(config-if)#switchport mode accessSW1(config-if)#switchport access vlan 2SW1(config)#int range f0/3 , f0/12SW1(config-if-range)#switchport mode accSW1(config-if-range)#switchport mode accessSW1(config-if-range)#switchport access vlan 3SW1(config-if-range)#^ZR1>R1>enR1#conf tR1(config)#int f0/0R1(config-if)#ip add 10.1.1.1 255.255.255.0R1(config-if)#no shutR1(config)#int loopback 0R1(config-if)#ip add 1.1.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exitR1(config)#line vty 0 4R1(config-line)#no loginR1(config-line)#exitR1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.8(配置缺省路由)R2>R2>enR2#conf tR2(config)#int fastEthernet 0/0R2(config-if)#ip address 20.1.1.2 255.255.255.0R2(config-if)#no shutR2(config)#interface loopback 0R2(config-if)#ip address 2.2.2.2 255.255.255.0R2(config-if)#no shutdownR2(config-if)#exitR2(config)#router ospf 1R2(config-router)#network 20.1.1.0 0.0.0.255 area 0(宣告路由网段)R2(config-router)#network 2.2.2.0 0.0.0.255 a 0 (宣告路由网段)R2(config-router)#exitR3>R3>enR3#conf tR3(config)#interface fastEthernet 0/0R3(config-if)#ip address 30.1.1.3 255.255.255.0R3(config-if)#no shutR3(config-if)#int loo 0R3(config-if)#ip address 3.3.3.3 255.255.255.0R3(config-if)#no shutR3(config-if)#exitR3(config)#router eigrp 100R3(config-router)#network 3.3.3.0(宣告本地网段)R3(config-router)#network 30.1.1.0(宣告本地网段)R3(config-router)#no auto-summary (关闭汇总)R3(config-router)#exitASA1防火墙上的配置pixfirewall>pixfirewall> enPassword:pixfirewall# conf tpixfirewall(config)# ho ASA1ASA1(config)# interface ethernet 0ASA1(config-if)# nameif outsideINFO: Security level for "outside" set to 0 by default.(默认安全级为0)ASA1(config-if)# ip address 10.1.1.8 255.255.255.0ASA1(config-if)# no shutASA1(config-if)# interface ethernet 1ASA1(config-if)# nameif insideINFO: Security level for "inside" set to 100 by default.(默认安全级为100)ASA1(config-if)# ip address 20.1.1.8 255.255.255.0ASA1(config-if)# no shutASA1(config-if)# interface ethernet 2ASA1(config-if)# nameif DMZINFO: Security level for "DMZ" set to 0 by default.(默认安全级为0)ASA1(config-if)# security-level 50(设置安全级为50)ASA1(config-if)# ip address 30.1.1.8 255.255.255.0ASA1(config-if)# no shutASA1(config-if)# exit下面配置静态路由ASA1(config)# route outside 1.1.1.0 255.255.255.0 10.1.1.1(配置静态路由:从outside接口出目的网络和子网掩码下一跳ID)下面配置ospf动态路由ASA1(config)# router ospf 1ASA1(config-router)# network 20.1.1.0 0.0.0.255 area 0ERROR: OSPF: Invalid address/mask combination (discontiguous mask) (防火墙上不支持反掩码)ASA1(config-router)# network 20.1.1.0 255.255.255.0 area 0ASA1(config-router)# redistribute static subnets (在ospf中引入静态携带子网)ASA1(config-router)# redistribute ?router mode commands/options:connected Connected (直连路由)eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)(eigrp动态路由)ospf Open Shortest Path First (OSPF)(ospf动态路由)rip Routing Information Protocol (RIP)(rip动态路由)static Static routes(静态路由)ASA1(config-router)# redistribute connected subnets(在ospf中引入直连路由携带子网)ASA1(config-router)# redistribute eigrp 100 subnets(在ospf中引入eigrp路由)ASA1(config-router)# exit下面配置eigrp动态路由ASA1(config)# router eigrp 100ASA1(config-router)# network 30.1.1.0ASA1(config-router)# no auto-summary (关闭自动汇总)ASA1(config-router)# redistribute connected(在eigrp中引入直连)ASA1(config-router)# redistribute static(在eigrp中引入静态)ASA1(config-router)# redistribute ospf 1 metric 10000 100 255 1 1500(把ospf引入eigrp中)ASA1(config-router)# exit在ASA1上做ACL放行配置ASA1(config)# access-list bb permit tcp any any eq telnet (any的意思是允许所有路由通过)ASA1(config)# access-group bb in interface outside(把bb的这个访问列表应用到in的方向outside端口上)放行ICMP流量有俩种方法第一种方法是将icmp添加到策略表里(只能从高级别访问低级别、低级别不可以访问高级别)ASA1(config)# policy-map global_policyASA1(config-pmap)# class inspection_defaultASA1(config-pmap-c)# inspect icmpASA1(config-pmap-c)# exitASA1(config-pmap)# exitASA1(config)# show runpolicy-map type inspect dns migrated_dns_map_1parametersmessage-length maximum 512policy-map global_policyclass inspection_defaultinspect dns migrated_dns_map_1inspect ftpinspect h323 h225inspect h323 rasinspect netbiosinspect rshinspect rtspinspect skinnyinspect esmtpinspect sqlnetinspect sunrpcinspect tftpinspect sipinspect xdmcpinspect icmp (在策略表里看到这条信息)在策略表中删掉ICMPASA1(config)# policy-map global_policyASA1(config-pmap)# class inspection_defaultASA1(config-pmap-c)# no inspect icmpASA1(config-pmap-c)# exitASA1(config-pmap)# exit第二种方法是将ICMP通过ACL访问控制列表放行ASA1(config)# access-list bb permit icmp any anyaccess-list bb extended permit tcp any any eq telnetaccess-list bb extended permit icmp any anyASA1(config)# access-group bb in interface DMZ下面我们做防火墙上的NATASA1(config)# show run nat-controlno nat-control(防火墙默认的情况下是关闭状态,所有我们在做NAT的时候就要把它开启)ASA1(config)# nat-control(开启NAT)ASA1(config)# nat (inside) 1 20.1.1.0 255.255.255.0(设置20网段的ip地址进入1号列表池里进行转换)ASA1(config)# global (outside) 1 10.1.1.10-10.1.1.20(设置1号地址里的转换ip 所进来的ip都将转换成地址池里的ip才能出去)(设置进入outside区域转换的地址池)ASA1(config)# nat (inside) 1 2.2.2.0 255.255.255.0(设置2.0的网段ip地址进入1号列表地址池里进行转换ip 它们共同使用1号地址池里的ip转换出去)ASA1(config)# show run nat(查看已配置好的nat转换)nat (inside) 1 2.2.2.0 255.255.255.0nat (inside) 1 20.1.1.0 255.255.255.0ASA1(config)# show run global (查看已配置的地址池)global (outside) 1 10.1.1.10-10.1.1.20ASA1(config)# global (dmz) 1 30.1.1.90-30.1.1.100(设置进入dmz区域转换的地址池)ASA1(config)# show run globalglobal (outside) 1 10.1.1.10-10.1.1.20global (DMZ) 1 30.1.1.90-30.1.1.100(防火墙上清空所有配置的命令:ASA1(config)# clear configure all)(查看转换规则的命令是:ASA1(config)# show xlate)PAT(多对一)地址转换ASA1(config)# nat (inside) 1 20.1.1.0 255.255.255.0ASA1(config)# nat (inside) 1 2.2.2.0 255.255.255.0ASA1(config)# global (outside) 1 10.1.1.100(建立PAT)ASA1(config)# show xlate (查看转换规则)2 in use, 7 most usedPAT Global 10.1.1.100(6) Local 2.2.2.2 ICMP id 37PAT Global 10.1.1.100(5) Local 20.1.1.2 ICMP id 36ASA1(config)# clear xlate(清除转换规则)ASA1(config)# show xlate0 in use, 7 most used一个公有ip的转换方法ASA1(config)# nat (inside) 1 20.1.1.0 255.255.255.0ASA1(config)# nat (inside) 1 2.2.2.0 255.255.255.0ASA1(config)# global (outside) 1 interfaceINFO: outside interface address added to PAT pool在R2上telnet1.1.1.1时候在R1上查看转换的ip是R1#who(查看转换完的命令)Line User Host(s) Idle Location* 0 con 0 idle 00:00:0066 vty 0 idle 00:00:12 10.1.1.8Interface User Mode Idle Peer Address我们将R3看成是服务器NAT同一性(就是自己转换自己)ASA1(config)# nat (dmz) 0 30.1.1.0 255.255.255.0nat 0 30.1.1.0 will be identity translated for outboundASA1(config)# show run natnat (dmz) 0 30.1.1.0 255.255.255.0在到R3上R3#telnet 1.1.1.1在到R1上who一下R1#whoLine User Host(s) Idle Location* 0 con 0 idle 00:00:0066 vty 0 idle 00:04:21 30.1.1.3Interface User Mode Idle Peer Address在防火墙上查看转换条目ASA1(config)# show xlate1 in use, 3 most usedGlobal 30.1.1.3 Local 30.1.1.3(自己转换自己)NAT的豁免(和同一性作用一样)ASA1(config)# access-list nonat permit ip 30.1.1.0 255.255.255.0 10.1.1.0 255.255.255.0(建立一个列表、名字叫做nonat、将30网段豁免到10网段上)ASA1(config)# show run access-listaccess-list nonat extended permit ip 30.1.1.0 255.255.255.0 10.1.1.0 255.255.255.0ASA1(config)# nat (dmz) 0 access-list nonat(调用到NAT上)在到R3上telnet 10.1.1.1R3#telnet 10.1.1.1Trying 10.1.1.1 ... OpenR1#在到R1上查看转换条目R1#whoLine User Host(s) Idle Location* 0 con 0 idle 00:00:0066 vty 0 idle 00:00:10 30.1.1.3Interface User Mode Idle Peer Address到防火墙上查看转换信息ASA1(config)# show xlate0 in use, 3 most used(没有任何转换信息、因为豁免不转换信息)在R1上清掉信息(也就是转换条目里的缓存)R1#clear line 66[confirm]^P [OK]R1#clear line 67[confirm][OK]映射【把R3的(dmz区域)转换到R1的(outside区域)】这样R1访问的就是R1被转换好的地址ASA1(config)# static (dmz,outside) 10.1.1.254 30.1.1.3(把30.1.1.3的地址映射成10.1.1.254的地址)ASA1(config)# access-list out permit tcp any host 10.1.1.254 eq telnet (建立ACL 名字叫做out 允许tcp任何用户访问10.1.1.254这台主机的telnet远程)ASA1(config)# show run access-listaccess-list out extended permit tcp any host 10.1.1.254 eq telnetaccess-group out in interface outside(将ACL列表调用到outside区域里)ASA1(config)# show run access-groupaccess-group out in interface outside在到R3上telnetR110.1.1.1R3#telnet 10.1.1.1Trying 10.1.1.1 ... OpenR1#在到R1上查看转换信息R1#whoLine User Host(s) Idle Location* 0 con 0 idle 00:00:0066 vty 0 idle 00:00:11 10.1.1.254Interface User Mode Idle Peer Address在R1上telnetR3需要使用10.1.1.254的ip地址才能telnet到R3上去R1#telnet 10.1.1.254Trying 10.1.1.254 ... OpenR3#在到防火墙上查看static表ASA1(config)# show run staticstatic (dmz,outside) 10.1.1.254 30.1.1.3 netmask 255.255.255.255(看到这条命令才可以)ASA1(config)# clear configure static(删除static列表条目)多服务器对一个公有IP的做法将公有IP的地址映射到服务器上的各种协议的端口号上、使他们对映ASA1(config)# static (dmz,outside) tcp 10.1.1.254 23 30.1.1.3 23(将R1上的10.1.1.254的telnet 端口号23映射到R3上的30.1.1.3上的telnet端口号23上)ASA1(config)# static (dmz,outside) tcp 10.1.1.254 80 3.3.3.3 80 (将R1上的10.1.1.254的http端口号80映射到R3上的3.3.3.3的http端口号80上)ASA1(config)# show run static (查看列表条目)static (dmz,outside) tcp 10.1.1.254 telnet 30.1.1.3 telnet netmask 255.255.255.255 static (dmz,outside) tcp 10.1.1.254 www 3.3.3.3 www netmask 255.255.255.255 ASA1(config)# access-list out permit tcp any host 10.1.1.254 eq telnetASA1(config)# access-list out permit tcp any host 10.1.1.254 eq 80ASA1(config)# show run access-listaccess-list out extended permit tcp any host 10.1.1.254 eq telnetaccess-list out extended permit tcp any host 10.1.1.254 eq www在R3开启http80服务R3(config)#ip http server在R1上telnet3.3.3.3的80服务R1#telnet 10.1.1.254 80Trying 10.1.1.254, 80 ... Open(看到这条信息就证明是通的)R1上退出敲qoid。
路由器NAT功能介绍及配置在互联网时代,路由器作为网络连接的核心设备之一,其功能日渐强大。
其中,网络地址转换(NAT)功能是路由器的一个重要特性,它可以为家庭或企业网络提供更加安全和高效的网络连接。
本文将介绍NAT功能的原理、作用以及如何在路由器上配置NAT功能。
一、NAT功能的原理NAT是一种在网络层面上进行地址转换的技术,它主要用于将内部私有IP地址转换为外部公共IP地址,从而实现多个内部设备共享一个公共IP地址的功能。
NAT功能通过修改数据包的源IP地址和目标IP 地址来实现地址转换,同时实现了对网络中的流量控制和数据过滤。
二、NAT功能的作用1. IP地址转换:NAT功能可以将内部网络中的私有IP地址映射为公共IP地址,实现与外部网络的通信。
这样,多个内部设备可以通过一个公共IP地址访问互联网,节约了IP地址资源并提高了网络的安全性。
2. 网络安全保护:通过NAT功能,内部设备的真实IP地址被路由器隐藏起来,对外部网络隐藏了内部网络的拓扑结构,提高了网络的安全性。
外部网络无法直接访问内部设备,需要经过NAT转换才能进行通信,从而有效防止了外部入侵。
3. 流量控制与数据过滤:NAT功能可以根据设定的规则来进行流量控制和数据过滤。
通过配置端口映射和转发规则,可以实现特定数据包的快速转发和过滤,提高网络的传输效率。
三、NAT功能的配置步骤以下是在常见路由器上配置NAT功能的步骤:1. 进入路由器的管理界面:打开浏览器,在地址栏输入默认网关IP 地址(通常为192.168.1.1或192.168.0.1),回车键进入登录界面。
2. 登录路由器:输入管理员账号和密码登录路由器管理界面。
3. 找到NAT功能配置选项:在路由器管理界面中找到“NAT”或“网络设置”等相关选项,点击进入NAT功能配置界面。
4. 配置内外网IP地址:在NAT配置界面中,设置内网和外网的IP 地址。
通常情况下,内网IP地址是私有IP地址,外网IP地址是由互联网服务提供商分配的公共IP地址。
NAT的3种实现方式配置示范网络地址转换(NAT)是一种网络协议,用于将私有IP地址转换为公共IP地址,以实现多台设备共享一个公共IP地址的功能。
NAT有三种实现方式:静态NAT、动态NAT和PAT(端口地址转换)。
1.静态NAT静态NAT是将一个私有IP地址映射到一个公共IP地址,实现一对一的映射关系。
静态NAT适用于需要固定映射关系的情况,如将内部服务器映射到公共IP地址,以便外部用户可以访问该服务器。
示范配置:1.配置内部接口的IP地址和子网掩码。
2.配置外部接口的IP地址和子网掩码,该接口将使用公共IP地址。
3.创建一个静态NAT转换规则,将内部服务器的IP地址映射到外部接口的公共IP地址。
例如,假设内部服务器的IP地址为192.168.1.10,外部接口的公共IP地址为203.0.113.10,配置如下:```interface fastethernet0/0ip address 192.168.1.1 255.255.255.0interface fastethernet0/1ip address 203.0.113.1 255.255.255.0ip nat inside source static 192.168.1.10 203.0.113.10```2.动态NAT动态NAT是将内部设备的私有IP地址动态映射到可用的公共IP地址,实现一对多的映射关系。
动态NAT适用于多个内部设备共享有限的公共IP地址的情况。
示范配置:1.配置内部接口的IP地址和子网掩码。
2.配置外部接口的IP地址和子网掩码,该接口将使用公共IP地址。
3.配置一个动态NAT池,指定可用的公共IP地址范围。
4.创建一个动态NAT转换规则,将内部设备的IP地址映射到动态NAT池中的公共IP地址。
例如,假设内部子网的IP地址范围为192.168.1.0/24,外部接口的公共IP地址为203.0.113.1,配置如下:```interface fastethernet0/0ip address 192.168.1.1 255.255.255.0interface fastethernet0/1ip address 203.0.113.1 255.255.255.0ip nat pool dynamic-nat-pool 203.0.113.10 203.0.113.20 netmask 255.255.255.0ip nat inside source list 1 pool dynamic-nat-pool overload access-list 1 permit 192.168.1.0 0.0.0.255```3.PAT(端口地址转换)PAT是一种特殊的动态NAT方法,它除了将内部设备的IP地址映射到公共IP地址外,还使用端口号来区分不同的连接。
路由和远程访问NAT服务器实验拓扑配置过程1.保证WINS服务器是静态IP地址。
在“开始”→“管理工具”→“路由和远程访问”选项。
2. 在“路由和远程访问”控制台窗口,右击选择“配置并启用路由和远程访问”选项。
3. 在“配置”窗口中,确定服务器的扮演角色,选择第二项“网络地址转换(NAT)”选项,单击“下一步”按钮。
4.在“NAT Internet连接”对话框中,选中一个接口连接到Internet网,即NAT服务器上与外网相连的网卡,单击“下一步”按钮。
5.完成安装向导,单击“完成”按钮。
6. 配置完成后,返回“路由和远程访问”控制台窗口。
NAT服务器接口的基本配置:1.在“路由和远程访问”控制台窗口,在右侧窗格中,双击与外网连接的本地连接2网卡。
弹出属性对话框。
2. 单击“入站筛选器”按钮,在弹出的对话框中可以创建筛选规则,单击“确定”按钮。
3.在“地址池”标签中,可以添加ISP分配的公用IP地址范围,单击“添加”按钮,可以输入地址池范围。
NAT服务器更改局域网内部IP地址范围:1. 在“路由和远程访问”控制台窗口,右击服务器“IP路由选择” “NAT/基本防火墙”选择“属性”选项。
2.在“NAT/基本防火墙属性”对话框中,选择“地址指派”选项卡,在“IP地址”和“掩码”的文件框中,输入为局域网络内的计算机指派IP地址范围。
配置NAT服务器对内部WEB服务器的发布:1.打开NAT服务器上的外网卡接口属性窗口,单击“服务和端口”选项卡。
勾选“Web服务器(HTTP)”选项。
2. 弹出“编辑服务”对话框,输入专用地址(内部中Web服务器的IP地址),单击“确定”按钮。
3.客户端通过210.110.110.1访问192.170.100.1。
NAT的3种实现方式配置示范网络地址转换(NAT)是一种用于将私有IP地址转换为公共IP地址的技术,以实现局域网内多个设备共享一个公共IP地址的目的。
以下是NAT的三种实现方式的配置示范。
1. 静态NAT(Static NAT)静态NAT是将一个私有IP地址映射到一个公共IP地址的一对一映射。
这个公共IP地址可以用于让外部网络访问内部网络中的特定设备。
以下是一个静态NAT的配置示例:首先,假设我们有一个私有网络,其IP地址范围是192.168.1.0/24,而我们有一个公共IP地址203.0.113.10。
1.在NAT设备上配置一个静态NAT规则:configure terminalip nat inside source static 192.168.1.5 203.0.113.102.配置内部接口和外部接口:interface GigabitEthernet0/0ip nat insideinterface GigabitEthernet0/1ip nat outside3.验证配置:show ip nat translations这个配置会将该私有网络中的设备192.168.1.5映射到公共IP地址203.0.113.10上,使其可以从外部访问该设备。
2. 动态NAT(Dynamic NAT)动态NAT是一种将私有IP地址动态映射到公共IP地址的方式,根据内部网络设备的需要,由NAT设备动态分配公共IP地址。
以下是一个动态NAT的配置示例:配置一个全局IP地址池:configure terminalip nat pool NAT-POOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0配置NAT规则:ip nat inside source list 1 pool NAT-POOL overload配置访问控制列表(ACL)以指定内部网络:access-list 1 permit 192.168.1.0 0.0.0.255配置内部接口和外部接口:interface GigabitEthernet0/0ip nat insideinterface GigabitEthernet0/1ip nat outside这个配置会将内部网络192.168.1.0/24中的设备动态映射到IP地址池中的公共IP地址,可以实现内部网络中的多个设备共享有限数量的公共IP地址。
理论目标:1、理解NAT的两个现实意义。
a)解决IP地址短缺问题。
使网内计算机使用一个共同的外网IP上网。
b)允许外网用户访问内网服务,但不让他们了解内部网络结构。
2、以处理ftp服务和web服务为例,理解NAT的两种静态配置方法,分别是地址映射和地址/端口映射。
实验目标:(准备两个WIN2003,两个工作组环境的XP)前提:使用WIN2003充当路由器,实现NA T功能。
1、在虚拟机软件中使虚机具备两块网卡。
2、通过拨号上网的形式实现内网访问外网。
3、通过公共接口的形式实现外网访问内网。
一、NAT功能引入路由器的网络互连功能主要由网络地址转换(NAT)服务完成。
通常NAT适用于以下两个情况:1、解决IP地址短缺问题。
网内计算机之间通信使用内部IP,网内计算机与外部Internet 通信需要通过路由器的NAT功能将内部IP地址转换为合法外部IP地址,即网内计算机使用一个共同的外网IP上网。
2、不想让外部用户了解自己的内部网络结构,即外部用户只知道内网有Web服务和FTP服务,却不知具体是哪台计算机提供这些服务。
前者旨在实现内网访外网,后者旨在实现外网访问内网。
路由器NAT在实现中相当于内网与外网的中间转发人,其中NAT的内部接口针对内网计算机,外部接口针对外网Internet。
二、NAT功能实现实现路由器的NAT功能主要有两种方案。
方案一:直接配置路由器。
该方案又分两条途径,要么直接用命令配置参数(可用Boson模拟),要么在浏览器中输入路由器IP地址,以网页形式将参数展现出来以便调配(可用锐捷实验环境模拟)。
方案二:将WIN2003充当路由器,配置WIN2003(可用虚拟机模拟)。
为验证NAT内网与外网互访效果,采用方案二使用虚拟机安排两个实验,分别是内网访问外网和外网访问内网。
三、准备工作实验能否成功关键在于为WIN2003配备两块网卡。
而如何让虚机具备两块网卡成为准备工作首要解决的问题。
问题解决过程:因为当时没有USB外界网卡,所以想到用虚拟网卡充当第二网卡。
NAT工作原理及其配置方法Network Address Translation(NAT)是一种在互联网连接中使用的技术,它允许一个IP地址与多个本地IP地址之间进行映射转换。
NAT是一个关键的网络组件,它在路由器、防火墙和其他网络设备中广泛应用。
在本文中,我们将详细介绍NAT的工作原理以及如何配置NAT。
1.NAT的工作原理:NAT的工作原理是通过转换IP地址和端口号来实现的。
当内部网络上的设备与外部网络进行通信时,NAT会将内部设备的IP地址和端口号转换为公共IP地址和端口号。
这个转换的过程可以分为以下几个步骤:a.发起请求:当内部设备发起一个连接请求时,它会将请求发送到NAT设备。
请求包含了源IP地址和端口号以及目标IP地址和端口号。
b.转换源IP地址和端口号:NAT设备将请求包中的源IP地址和端口号替换为它自己的公共IP地址和一个未被使用的端口号。
c.转发请求:转换后的请求包被发送到外部网络中的目标设备。
外部设备将响应发回给NAT设备。
d.转换目标IP地址和端口号:NAT设备接收到响应后,将响应包中的目标IP地址和端口号替换为内部设备的原始IP地址和端口号。
e.转发响应:转换后的响应包被发送给内部设备,完成了通信过程。
2.NAT的配置方法:NAT的配置可以通过路由器、防火墙或其他网络设备来完成。
以下是一些常用的配置方法:a.静态NAT:静态NAT是一种将内部网络设备的IP地址映射为一个公共IP地址的方法。
这种方法通常用于将内部服务器暴露给外部网络。
要配置静态NAT,首先需要指定一个公共IP地址,然后将内部设备的IP地址与公共IP地址进行绑定。
这样,当外部网络发送请求到公共IP地址时,NAT设备会将请求转发给对应的内部设备。
b.动态NAT:动态NAT是一种在需要时根据需要分配公共IP地址的方法。
这种方法通常用于在内部网络上使用私有IP地址时,将多个设备共享一个公共IP地址。
要配置动态NAT,首先需要指定一个公共IP地址和一个IP地址池,然后将内部设备的IP地址与IP地址池进行绑定。
使用NAT打造FTP服务新法
FTP(File Transfer Protocol,文件传输协议)是Internet的传统服务之一。
FTP使用户能在两个联网的计算机之间传输文件,是Internet传递文件最主要的方法。
除此之外,FTP还提供登录、目录查询、文件操作及其它会话控制功能。
在系统中FTP服务使用23端口进行通信,在Window、Linux系统中都可以设置FTP服务。
NAT(Network Address Translation)网络地址转换,NAT服务器就是支持地址转换的代理服务器。
当有几个工作站却只有一个合法的上网账户和IP地址时,可以用NAT服务器来实现地址转换。
本文主要介绍在NAT服务器上设置FTP服务。
这样的FTP服务设置比起其它一些服务,如WWW, E-mial等要复杂得多。
这是由于FTP自身的原因,因为FTP在连接过程中,分别需要Command和Data两个通道才能实现,而其连接的起始方向,对NAT服务器规则的设置有相当重要的影响。
设置规则
假设现在NAT服务器上有3块网卡,它们分别连接不同的网络且分配不同的IP地址。
例如,第一张网卡A是用外网C类IP地址:221.7.128.1;第二张网卡接DMZ,使用A类IP:10.0.0.1;第三张网卡接内部网络,使用C类IP地址:192.168.0.1;DMZ内有一台主机,IP:10.0.0.2,并且准备提供FTP 服务(使用port 21和port 2121)。
如果DMZ和外网的路由是通的,那么NAT服务器上只进行单纯的封包过滤,没有修改packet,而且预设的policy都是DENY。
如果DMZ和外网的路由是不通的,要如何设置规则,使得FTP能顺利向外部提供服务呢?可以用如下命令将第一块网卡的port 21连接请求转至10.0.0.2的port 21来提供服务。
方法一:ipchains
我们用命令:ipmasqadm portfw -a -P tcp -L 221.7.128.1 21 -R 10.0.0.2 21来进行操作。
NAT服务器上的预设policy全为DENY,要设置所有必须的规则,让FTP能顺利向外提供服务。
以如下示例说明:
以上是在没有考虑其它安全要求、单就FTP服务进行设置的情况下,以ipchains作为命令的操作。
下面对上述命令进行说明。
命令1:ipchains -A input -i eth0 -p TCP -d 221.7.128.1 21 -j ACCEPT
建立连接用,因为使用ipmasqadm命令来实现DNAT服务器(port forward),因此,destiNAT服务器就成了NAT服务器的外部界面。
命令2:ipchains -A forward -p TCP -d 221.7.128.1 21 -j MASQ *
值得注意的是,因为在DNAT服务器时已经将destiNAT服务器socket修改过了,也就是封包input进来后,外网的IP:221.7.128.1会改变为10.0.0.2。
而且还要了解ipmasqadm 这个程序的特点,是当它修改了input packet后,就不会再有ipchains的forward检测,而是直接根据路由判断后进行output。
所以,这行是多余的,可以不要。
命令3:ipchains -A output -i eth1 -p TCP -d 10.0.0.2 21 -j ACCEPT
这是经过DNAT服务器修改后从NAT服务器主机输出到FTP Server的封包,必须ACCEPT,否则连接请求没办法到达Server。
命令4:ipchains -A input -i eth1 -p TCP -s 10.0.0.2 21 -j ACCEPT
这是从FTP Server回应进来的封包,也一定要ACCEPT。
命令5:ipchains -A forward -p TCP -s 10.0.0.2 21 -j MASQ
这里要非常小心,因为假设的前提是DMZ和外网不能路由,如果封包没做MASQ处理,那么将无法传送。
而且,不要忽略当封包经过ipmasqadm处理进行MASQ后,出去的封包会被还原成Client所expect的socket。
如果用ACCEPT的话是不行的,ipmasqadm不会对ACCEPT规则做还原动作,只有使用MASQ才能将当初被DNAT服务器处理过的连接正确的还原为原来的socket,即port 21。
命令6:ipchains -A output -i eth0 -p TCP -s 221.7.128.1 21 -j ACCEPT
这是还原socket后送回到Client的回应封包,所以要ACCEPT。
命令7:ipmasqadm portfw -a -P tcp -L 221.7.128.1 2121 -R 10.0.0.2 2121 *
照理说,ftp-data连接应该是从port 2121出去的,换句话说,基本上第一个syn的连接封包是output而不是input。
这样的话,要能成功地将回应封包(不是起始封包)forward 到FTP Server去,要看Client是否知道ftp-data的建立socket会在Server端的port 2121上面,也就取决于DMZ的Server经过SNAT服务器之后是否能够成功地用port 2121来起始ftp-data通道。
命令8:ipchains -A input -i eth0 -p TCP -d 221.7.128.1 2121 -j ACCEPT *
只有上一句的条件成立时,这行命令才有用。
命令9:ipchains -A forward -p TCP -d 10.0.0.2 2121 -j MASQ *
这行和命令5的道理一样,如果用命令7处理后,这行就无须使用了。
命令10:ipchains -A output -i eth1 -p TCP -d 10.0.0.2 2121 -j ACCEPT
不管命令7和上一句是否被执行,这行是必须的,因为对于DMZ的FTP Server来说,不管NAT服务器怎么处理,用来做ftp-data的port还是2121。
命令11:ipchains -A input -i eth1 -p TCP -s 10.0.0.2 2121 -j ACCEPT
这行也是必须的,理由同上。
命令12:ipchains -A forward -p TCP -s 10.0.0.2 2121 -j MASQ
这行非常重要!因为ftp-data的连接是从Server端起始的,也就是当DMZ的FTP Server 要建立ftp-data连接时,因为无法路由,所以一定要用MASQ。
但与命令5比较,因为命令5的连接之前已经被ipmasqadm处理过,所以能正确地还原到原来的socket(port 21)。
但在这里,因为是第一个连接封包,之前不可能被ipmasaqdm处理过,是不可能被还原为port 2121的。
取而代之的是,ipchains会根据MASQ的请求,重新建立一个对外的socket,而port则是随机产生的,也就是说在1024~65535之间。
请记住这个特点,我们必须增加下面两行规则:
这样结果是,1024以上的port都能打开连接。
这是非常危险的一个操作,因为开放的范围太大,至少应该将来自外网的第一个syn封包拦截下来,所以上面的input可以修改为:
所以,命令7和其后紧接着的两行也就没什么作用,可以不要。
命令13:ipchains -A output -i eth0 -p TCP -s 221.7.128.1 2121 -j ACCEPT *
同样,这最后一行也可以不设,因为是多余的。
事实上,ftp-data的socket从NAT
服务器主机出去Client的时候,是不会使用到port 2121的。
这里,我们并没有使用passive模式,所有被*标识的句子,事实上都可省略掉。
方法二:iptalbes
首先进行iptables的设置如下:
iptables和ipchains的最大分别是对来自FTP Server的ftp-data封包的处理上。
如果用ipchains,在MASQ后会另外建一个source socket,但不是使用port 2121;如果用iptables,在MASQ后也会另建一个source socket,却保留原来的port 2121。
因为连接是从Server端由内至外建立的,所以在NAT服务器上已经有这个连接的MASQ记录存在,也就不必为port 2121做DNAT服务器了。
不过,在进行passive模式测试时,尽管将ip_NAT
服务器_ftp模块载入,还是不能建立ftp-data的连接。
抓几个封包就可以发现:Client
端从command channel中接收Server的port命令后,会尝试直接以FTP Server的IP地址作为destiNAT服务器,而不是以NAT服务器的外部界面为目标,所以连接无法建立。
结论
如果Server和Client两端都各自“躲”在NAT服务器背后,无论用ipchains或iptalbes方法都无法使用passive 模式来建立data channel。
解决的方法只能是在Client 端的NAT服务器上,将ip_NAT服务器_ftp的模块载入(ipchains 是用ip_masq_ftp 模块),而Server端使用标准的port 2121和port 21来提供FTP服务。