一,NAT ALG

NAT ALG(Application Level Gateway)应用级网关,支持对应用层信息进行相应转换。通常情况下,NAT只对报文的IP头部的地址信息喝TCP/UDP头部的端口信息进行转换而不会关注其报文的载荷信息。但是对于一些特殊的协议(如FTP等多通道协议),其报文载荷中也携带了地址或端口的信息,而载荷的信息通常是双方协商产生的。如果经过NAT后不修改会影响到后续的使用。

FW提供了NAT ALG功能,对报文的载荷字段进行解析,识别并转换其中的重要信息,保证FTP的正常使用。

下图以FTP主动模式为例,在FW上配置了NAT,将客户端的源地址和端口号转换。

1.客户端和FTP服务器TCP握手并协商完成用户名和密码信息。

2.FW收到客户端发送的PORT命令,如果直接转发那么载荷中的地址和端口号将会是错误的内网地址。NAT ALG对PORT命令的载荷进行改变,修改为正确的NAT后的载荷。

3.FW收到服务器的请求后,再次改变目的地址和端口号发送到客户端。

二,ASPF

ASPF(Application Specific Packet Filter)是一种高级通信过滤,它检查应用层协议信息并监控连接的应用层协议状态。对特定应用协议的所有连接,每一个连接状态信息都会被ASPF维护并用于动态的决定数据包是否被允许通过防火墙或者被丢弃。

在打开ASPF功能后,设备会根据检测到的应用报文根据报文中的地址信息动态创建server-map表项。转发QQ、TFTP等STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)类型协议。通过配置STUN类型的ASPF,设备会记录用户的IP和端口号信息,并生成STUN类型的server-map。这个server-map表项中包含三元组信息,通信方的IP,端口号和协议号。

NAT ALG与ASPF的关系:

差异:①开启ASPF的功能目的是识别多通道协议,并自动为其开放相应的安全策略。②开启NAT ALG功能是为了识别顶多通道协议,并自动转换报文载荷的IP地址和端口信息。

三,FTP

FTP有两个端口,端口21用于控制,端口20,用于上传,下载数据。同时它有两个模式分别是主动模式和被动模式。

①主动模式:

第一步FTP服务器将Port内容封装在载荷中,如图所示载荷中的内容表示,对端的IP地址为10.1.1.1,端口号为最后两个数字中的第一个数字乘以256加上最后一个数字。

第二步,服务器返回确认。

第三步,FTP根据第一步中计算的目的IP和端口号进行TCP握手。

第四步,客户端发送ACK建立连接。

②被动模式

第一步,客户端与服务器建立TCP连接并发送PASV,声明被动模式。

第二步,服务器发送Port命令。其载荷包含了计算进行FTP数据传输的IP地址和端口号。

第三步,客户端从自己的数据端口和计算出的IP地址和端口号建立数据连接。

第四步,服务器进行ACK确认。

四,FTP经过NAT实验

4.1拓扑

根据上图配置FTP客户端和服务器和配置FW的基础配置。先测试FW不配置NAT以及关闭NAT ALG和ASPF,再配置NAT观察现象并配置NAG ALG和ASPF后再观察现象。

4.2无NAT无NAT ALG和ASPF

1.开启NAT ALG和ASPF的命令是同一条" firewall detect  协议 ",该功能默认开启,关闭配置如下

[FW]undo firewall detect ftp

2.配置安全策略放行客户端访问服务器

[FW-policy-security] rule name Trust_Internet
[FW-policy-security-rule-Trust_Internet]  source-zone trust
[FW-policy-security-rule-Trust_Internet]  destination-zone untrust
[FW-policy-security-rule-Trust_Internet]  source-address 10.1.1.0 mask 255.255.255.0
[FW-policy-security-rule-Trust_Internet]  action permit

3.在G1/0/1接口下抓取数据报文,并使用客户端使用被动模式访问服务器

①客户端访问服务器之前的会话表

[FW]display  firewall session table
2023-02-18 01:23:42.040 Current Total Sessions : 0

②客户端使用被动模式访问服务器

③成功访问服务器,并抓取到客户端发送给服务器的PASV命令的报文和服务器返回的PORT命令,其载荷包括通知客户端建立数据链路的目的IP地址和端口号的材料(IP地址为:10.1.5.188,端口号为:192*256+13=49165)。

 ftp  VPN: public --> public  ID: c387faf3bc67128eaa63f02a43Zone: trust --> untrust  TTL: 00:20:00  Left: 00:19:59Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 20 bytes: 1,480 --> packets: 19 bytes: 88810.1.1.1:51320 --> 10.1.5.188:21 PolicyName: Trust_InternetTCP State: established

③查看建立数据连接的报文和会话,验证现象。控制链路识别为FTP,但关闭ASPF后无法识别FTP的数据链路。

 tcp  VPN: public --> public  ID: c487faf3bc672d8370163f02a4bZone: trust --> untrust  TTL: 00:00:10  Left: 00:00:09Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 4 bytes: 240 --> packets: 5 bytes: 21210.1.1.1:51324 --> 10.1.5.188:49165 PolicyName: Trust_Internet

4.将被动模式建立的连接关闭,并建立主动模式的FTP观察现象同时清除会话表。

①客户端配置主动模式连接服务器

②发现FTP无法建立连接

③通过抓包和查看会话表发现,FTP的控制连接是建立的即客户端和服务器的21端口的连接是建立的。也发现客户端已经发送了Port命令其中包含计算主动模式下服务器主动连接客户端建立数据链路的材料。

④根据FTP的原理就可以理解为防火墙阻断了这条链路,因为这条链路并没有配置安全策略。配置安全策略并重新观察现象。

 rule name FTPServer_Trustsource-zone untrustdestination-zone trustsource-address 10.1.5.188 mask 255.255.255.255destination-address 10.1.1.0 mask 255.255.255.0action permit

⑤查看抓包和会话表,FTP的主动模式成功建立并匹配安全策略

 tcp  VPN: public --> public  ID: c487faf3bc6505010fd63f02d9fZone: untrust --> trust  TTL: 00:00:10  Left: 00:00:04Recv Interface: GigabitEthernet1/0/1Interface: GigabitEthernet1/0/0  NextHop: 10.1.1.1  MAC: 000c-2958-190a<--packets: 4 bytes: 172 --> packets: 5 bytes: 28010.1.5.188:20 --> 10.1.1.1:52879 PolicyName: FTPServer_Trustftp  VPN: public --> public  ID: c487faf3bc65128153063f02d96Zone: trust --> untrust  TTL: 00:20:00  Left: 00:19:54Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 20 bytes: 1,470 --> packets: 19 bytes: 92210.1.1.1:52857 --> 10.1.5.188:21 PolicyName: Trust_Internet

4.3有NAT无NAT ALG和ASPF

根据4.2的配置不删除,关闭FTP连接并清空会话表,继续在FW设备上配置NAT,使得trust区域10.1.1.0/24的主机通过源NAT转换为公网地址访问FTP服务器。详细过程如下。

1.源NAT配置

[FW]nat address-group  SNAT_Group_1
[FW-address-group-SNAT_Group_1]section  2.2.2.2 2.2.2.2
[FW-address-group-SNAT_Group_1]mode pat
[FW]nat-policy
[FW-policy-nat]rule name Trust_PC
[FW-policy-nat-rule-Trust_PC]source-zone trust
[FW-policy-nat-rule-Trust_PC]destination-zone untrust
[FW-policy-nat-rule-Trust_PC]source-address 10.1.1.0 24
[FW-policy-nat-rule-Trust_PC]action  source-nat address-group SNAT_Group_1

2.除了4.2中对G1/0/1接口(服务器侧)进行抓包,同时对G1/0/0接口(客户端侧)进行抓包使用客户端使用主动模式连接服务器。

①查看会话表,FTP控制链路成功建立同时观察到源NAT的记录。

 Current Total Sessions : 1ftp  VPN: public --> public  ID: c487faf3bc5d05019fc63f0300bZone: trust --> untrust  TTL: 00:20:00  Left: 00:19:53Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 16 bytes: 1,279 --> packets: 18 bytes: 90010.1.1.1:53543[2.2.2.2:2048] --> 10.1.5.188:21 PolicyName: Trust_Internet

②我们的安全策略已经放开,但是FTP数据链路依然建立失败,观察报文。发现NAT只是进行了源地址和端口号的转换并没有对FTP的载荷进行转换导致了FTP建立失败。

③同理,思考被动模式下会不会还是失败,根据FTP的原理。被动模式下是服务器发送PORT命令给客户端,载荷是正常的所以NAT不会影响到被动模式。验证如下。载荷是正确的。

[FW]display  firewall session  table   verbose
2023-02-18 02:03:33.710 Current Total Sessions : 2ftp  VPN: public --> public  ID: c387faf3bc5d138ddf63f031efZone: trust --> untrust  TTL: 00:20:00  Left: 00:19:55Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 17 bytes: 1,243 --> packets: 14 bytes: 66610.1.1.1:53980[2.2.2.2:2049] --> 10.1.5.188:21 PolicyName: Trust_InternetTCP State: establishedtcp  VPN: public --> public  ID: c487faf3bc5d2201fe463f031f0Zone: trust --> untrust  TTL: 00:00:10  Left: 00:00:05Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 4 bytes: 417 --> packets: 4 bytes: 17210.1.1.1:53981[2.2.2.2:2048] --> 10.1.5.188:49171 PolicyName: Trust_InternetTCP State: close

4.4有NAT有NAT ALG和ASPF

1.根据4.3的配置,增加一条命令开启NAT ALG和ASPF,删除安全策略FTPServer_Trust。

[FW]firewall detect  ftp
[FW-policy-security]undo rule name FTPServer_Trust

2.使用客户端被动模式连接FTP服务器。

①查看会话表,FTP数据链路被ASPF识别为ftp-data

 ftp  VPN: public --> public  ID: c487faf3bc5d4d8245963f03392Zone: trust --> untrust  TTL: 00:20:00  Left: 00:20:00Recv Interface: GigabitEthernet1/0/0     Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 25 bytes: 1,833 --> packets: 25 bytes: 1,15610.1.1.1:54362[2.2.2.2:2050] +-> 10.1.5.188:21 PolicyName: Trust_InternetTCP State: establishedftp-data  VPN: public --> public  ID: c487faf3bc5d7902dc263f033ceZone: trust --> untrust  TTL: 00:00:10  Left: 00:00:09Recv Interface: GigabitEthernet1/0/0Interface: GigabitEthernet1/0/1  NextHop: 10.1.5.188  MAC: 000c-29e0-9f9a<--packets: 4 bytes: 240 --> packets: 5 bytes: 21210.1.1.1:54409[2.2.2.2:54409] --> 10.1.5.188:49176 PolicyName: Trust_Internet

②ASPF还产生了一条server-map对应ftp-data的流量。该条server-map产生不需要配置安全策略。

[FW] display  firewall server-map
2023-02-18 02:12:21.670 Current Total Server-map : 1Type: ASPF,  10.1.1.1[2.2.2.2] -> 10.1.5.188:49177,  Zone:---Protocol: tcp(Appro: ftp-data),  Left-Time:00:00:14Vpn: public -> public

3.再使用客户端使用主动模式连接服务器,观察是否在NAT ALG的作用下修改FTP的载荷。

NAT ALG与ASPF相关推荐

  1. NAT 网络地址转换技术(一)NAT原理介绍:静态NAT、动态NAT、NAPT、Easy IP、NAT ALG、NAT服务器、双向NAT技术

    文章目录 出现原因 基本概念 NAT技术基本原理 源NAT技术 静态NAT 动态NAT NAPT Easy IP NAT ALG NAT服务器 双向NAT技术 域间双向NAT(NAT Server+源 ...

  2. NAT ALG DNS — DNS在外部,内网通过域名访问内部服务器

    NAT ALG DNS-DNS在外部,内网通过域名访问内部服务器 应用场景: R2.R3.R4为企业内部,DNS部署在公网,R2上设置NAT是的R1能够telnet到R4. 如在R2上启用NAT AL ...

  3. NAT ALG DNS — DNS在内部,外网通过域名访问内部服务器

    应用场景: R2.R3.R4为企业内部,DNS也部署在内网,R2上设置NAT使得R1能够telnet到R4. 如在R2上启用NAT ALG DNS功能后,R1通过域名butcherroom.com访问 ...

  4. NAT ALG和STUN技术

    目录 NAT ALG 应用层网关讲解 Client1使用FTP主动模式建立FTP Client1使用FTP被动模式建立FTP STUN讲解 NAT ALG 应用层网关讲解 ALG主要用来替换应用层信息 ...

  5. 通过NAT ALG实现FTP服务器的访问【实例】

    [注:本实验和相关理解限于本人知识水平,难免有错误,如有前辈发现,谢谢批评指正] 本实例拓扑的实现是在华为eNSP模拟器上进行的,使用了一台客户端.一台FTP服务器和两台华为AR2240路由器.相关的 ...

  6. NAT ALG技术白皮书

    ALG技术白皮书 关键 摘要:ALG是一种对应用层进行处理的技术,它通过与NAT.ASPF等技术的组合应用,实现对应用层的处理和检测.本文详细介绍了ALG技术的工作机制以及典型组网应用. 缩略 缩略语 ...

  7. vsb asc_vsb电力线故障检测kaggle竞争

    vsb asc 案例研究概述: (Overview of the case study:) Step 1: Explanation of the problem which includes deta ...

  8. STM32学习笔记(超详细)

    查看全文 http://www.taodudu.cc/news/show-6770803.html 相关文章: STM32单片机学习笔记(超详细整理143个问题,学习必看) vsb asc_vsb电力 ...

  9. 安全防御 --- 防火墙-- ASPF、NAT

    ASPF.NAT 1.FTP技术 (1)简介: 主机之间传输文件是IP网络的一个重要功能,如今人们可以方便地使用网页.邮箱进行文件传输. 然而在互联网早期,Web(World Wide Web,万维网 ...

最新文章

  1. python无效数据怎么办_Python使用sqlite插入数据无效的原因
  2. 关于我对c#的一些看法
  3. Python-OpenCV 笔记8 -- PIL.Image和OpenCV图像格式转换
  4. 归约操作java8_使用Java 8进行分组,转换和归约
  5. [转][探讨]为什么说JavaScript是性价比最高的技术?
  6. 大创中期报告怎么写_课题研究中期报告怎么写?这篇范文很说的很详细
  7. 数据结构上机实践第13周项目1 - 验证Prim算法的验证
  8. ubuntu 10.04 下驱动程序的hello word
  9. ubuntu文件编码转换
  10. windows7远程桌面设置
  11. 智慧门禁管理系统为小区的安全提供了一份保证
  12. Java学习-32(Java高级特性知识总结)
  13. 探究CRM未来趋势:纷享销客的连接型CRM到底是什么?
  14. 四川农大2020计算机专业录取分数线,四川农业大学2020年美术类本科专业录取分数线...
  15. java mybatis优点_mybatis优缺点是什么?有哪些优点和缺点?
  16. 腾达无线路由器怎么设置能让自己的网速快
  17. c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
  18. TypeScript基础快速上手
  19. 2021年职业病防治法宣传周宣传资料
  20. python3-excel数据填充

热门文章

  1. 请问这个是什么意思?
  2. 从键盘输入一个大写字母,转换成小写字母
  3. kindeditor4.1.11版自定义插入网络视频代码(支持哔哩、优酷、爱奇艺、土豆、腾讯视频、56等视频网站)
  4. 【随想录12】01背包练习
  5. 烃贝科技:Steem对妄想控盘者说88!
  6. 随机数相加等于固定值_excel表格中如何使随机数相加成一个固定值
  7. 毕业设计——基于STM32单片机的绿植养护系统(物联网、智能家居、手机APP控制、自动监测土壤湿度)
  8. uni-app总结以及插件的使用
  9. 光电直读表的原理及优缺点
  10. 大师兄Smarty教程修正版(1).