ASA-NAT配置指南.docx
《ASA-NAT配置指南.docx》由会员分享,可在线阅读,更多相关《ASA-NAT配置指南.docx(94页珍藏版)》请在冰点文库上搜索。
ASA配置指南
l文档属性
属性
内容
标题
思科ASA防火墙配置指南
邮箱
zx_network@
文档传播范围
发布日期
2014.7.XX
l文档历史
序号
版本号
修订日期
修订人
修订内容
1.
V1.0
郑鑫
文档初定
2.
3.
4.
目录
一、 文档说明 5
二、 基础配置 6
(一) 查看系统信息 6
(二) 版本区别简介 6
(三) 接口配置与安全级别简介 7
(四) NTP配置 8
(五) SNMP配置 9
(六) telnet配置 9
(七) SSH配置 9
(八) 配置管理 10
(九) 常用设备排错命令 10
三、 NAT静态方向写法 12
(一) 传统静态NAT配置方向写法 12
(二) 新静态NAT配置方向写法 15
四、 NAT配置举例 16
(一) DynamicNAT 16
(二) StaticNAT 27
(三) IdentityNAT 34
(四) NAT免除 40
(五) TwiceNAT(策略NAT) 40
(六) NAT执行顺序 52
五、 状态化应用监控 53
(一) 状态化监控策略配置 53
(二) 路由、NAT、ACL、策略执行顺序 57
六、 failover 65
(一) 配置failover 65
(二) 配置A/A 76
一、文档说明
本文档主要介绍思科ASA防火墙在版本8.2之前与版本8.3之后配置区别和常用的一些管理和运维命令,如:
系统管理、防火墙策略、NAT、日志配置等。
思科ASA防火墙目前新出厂的设备都在8.3以后,但有很多老的设备都在8.2以前,所以本文档通过使用ASA8.0与8.4这两个版本来介绍。
请读者打开文档中的显示批注功能,文档中有部分批注内容。
二、基础配置
(一)查看系统信息
//ASASoftware8.4
//ASASoftware8.0
(二)版本区别简介
两个版本除了在技术NAT和ACL配置方式有所不同外,其他技术配置方式都相同。
NAT:
两个版本的NAT配置的动作和效果都是相同的,但配置方式都不通,详细见NAT配置举例。
ACL:
8.2之前的版本在放行inbound流量时放行的是映射的虚IP,而8.3以后的新版本放行inbound流量时是内网的真实IP,详细见配置举例。
(三)接口配置与安全级别简介
默认情况下,所有接口都是shutdown,也就是说没有流量可以穿越
任何一个接口都必须设置安全级别,范围从0-100,数字越高表示越可信
intx/x
security-level[0-100]
在使用nameif命令配置接口名称时,ASA会给这个接口分配一个预定义的安全级别
当名称为"inside"时级别为100(mosttrust),其它名称都为0(leasttrust)
一个接口必须在配置了接口名称(nameif)之后才可转发流量
intx/x
nameif[name]
防火墙默认安全策略
Outbound流量:
从“高安全级别”到“低安全级别”
Inbound流量:
从“低安全级别”到“高安全级别”
Outbound流量,默认Permitany
Inbound流量,默认Denyany
状态化包监控:
默认对于TCP和UDP协议报文在穿越防火墙时,会自动在出接口形成反向放行策略。
该策略优先于接口默认策略。
除了TCP/UDP的其他协议默认都不会有状态化表项来创建反向放行策略。
(比如ICMP)
(四)NTP配置
ntptrusted-key1//为所有NTP服务器定义key-id为1
ntpauthentication-key1md5cisco123//cisco123是key-id1的密钥
ntpserver192.168.10.15key1sourceinside//inside指定ntp服务器在哪个接口方向
ntpserver192.168.10.16key1sourceinsideprefer//如果指定了多台ntp服务器,且时间精确度相差不大的情况下,优选prefer的服务器。
但是如果有其他ntp服务器比prefer的服务器时间更精确,就会优选其他ntp服务器
//定义优先的服务器
ntpauthenticate//启用认证
showntpstatus//查看NTP状态信息
(五)SNMP配置
snmp-serverhostinside1.1.1.1communitycisco123versionX//定义SNMPserver、字符串、版本
snmp-serverenable//启用SNMP
snmp-serverenabletrapsall//发送所有snmp支持的信息
showsnmp-serverstatistics//查看输出信息
(六)telnet配置
usernameciscopasswordcisco
aaaauthenticationtelnetconsoleLOCALLOCAL一定要大写,其他名字就会到AAA服务器区认证
//使用本地认证
passwdcisco123//使用密码认证
telnet1.1.1.1insidetelnet为明文,所以从outside过来到ASA的telnet流量是会被拒绝的。
//允许inside接口的1.1.1.1telnet到本ASA防火墙上。
telnettimeout5//5分钟后超时(根据版本是秒或者是分钟)
kill0//断开会话为0的连接
(七)SSH配置
usernameciscopasswordcisco
aaaauthenticationsshconsoleLOCALLOCAL一定要大写,其他名字就会到AAA服务器区认证
//使用本地认证
CryptokeygeneratersaSSH是加密登陆,所以被允许从outside登陆ASA。
//自动产生密钥对(公钥、私钥),默认长度1024
Showcryptokeymypubkeyrsa//查看生成的密钥对
Ssh1.1.1.1outside//允许outside源为1.1.1.1的IP使用ssh登陆方式连接ASA。
Sshtimeout5//5分钟后超时(根据版本是秒或者是分钟)
Showsshsessions//查看ssh会话信息
Sshdisconnect1//断开会话1
(八)配置管理
Showrunning-config//查看当前配置。
Showrunning-configall //查看当前配置,并显示完整保留的默认命令。
Showstartup-config//查看启动配置。
Writememory//保存配置。
Writeerase//清除启动配置
Clearconfigurenat//删除有关nat所有的配置,可以将nat改成其他的参数。
Clearconfigureall//删除ASA所有配置。
(九)常用设备排错命令
1追中数据包流量处理动作
Packet-tracerinputinsidetcp192.168.1.10050080202.100.99.22980//可以通过此方式来追踪数据包的流量,可以定义协议、源目IP、原木端口。
2抓包
全局:
Access-listIN-2-OUTpermitiphost192.168.1.100host202.100.99.229//定义感兴趣流
特权:
captureTESTaccess-listIN-2-OUTinterfaceinside//针对感兴趣流抓包
查看抓包内容
ShowcaptureTEST//查看目前为止抓包内容
captureTESTaccess-listIN-2-OUTinterfaceinsidereal-time流量超过设备负载的情况下,最多能显示1000个数据包。
//查看实时流量
下载抓包内容
copy/pcapcapture:
insidetftp:
//1.1.1.1//copy抓包文件到tftp服务器
https:
//1.1.1.1/capture/TEST/pcap//通过https下载抓包文件
3查看drop的统计信息
Showaspdrop//可以查看因为各种原因将包丢弃的统计数量信息。
//只有丢弃的包才会被查看到,没有丢包的信息是看不到的。
三、NAT静态方向写法
(一)传统静态NAT配置方向写法
//R2主动发起,R1回包
//R1主动发起,R2回包
从上面两个现象可以看到不管是R2主动发起,还是R1主动发起跟(inside,outside),inside都是在前,outside都是在后面。
而不能理解成R2主动发起时用(inside,outside),R1主动发起时用(outside,inside),这样是错误的理解,在这里static是没有方向性的。
根据上面的举例:
可以看出(inside,outside)针对outbound流量是源的转换,针对inbound流量是目的的转换。
//R2主动发起,R1回包
//R1发包,R2回包
根据上面的举例,可以看出(outside,inside)针对outbound流量是转换目的,针对inbound的是转换源。
(二)新静态NAT配置方向写法
objectnetwork2.2..2.2
host2.2.2.2
nat(inside,outside)static10.1.1.220
objectnetwork1.1.1.1
host1.1.1.1
nat(outside,inside)static20.1.1.10
access-listinboundextendedpermitiphost1.1.1.1host2.2.2.2
access-groupinboundininterfaceoutside
新命令的outbound和inbound流量动作是一样的:
(inside,outside)针对outbound流量是源的转换,针对inbound流量是目的的转换
(outside,inside)针对outbound流量是转换目的,针对inbound的是转换源。
不同点是:
ACL列表要放行内网真是的IP,而不是映射后的源IP地址。
四、NAT配置举例
实验拓扑
(一)DynamicNAT
1动态NAT,动态一对一
步骤1:
配置接口IP地址
R1(config)#interfacefastEthernet0/0
R1(config-if)#ipaddress10.1.1.1255.255.255.0
R1(config)#interfaceloopback1
R1(config-if)#ipaddress1.1.1.1255.255.255.255
R1(config)#interfaceloopback2
R1(config-if)#ipaddress1.1.1.2255.255.255.255
R1(config)#interloopback3
R1(config-if)#ipaddress1.1.1.3255.255.255.255
R1(config)#interloopback4
R1(config-if)#ipaddress1.1.1.4255.255.255.255
R2(config)#interfacefastEthernet0/0
R2(config-if)#ipaddress20.1.1.1255.255.255.0
R2(config)#interfaceloopback1
R2(config-if)#ipaddress2.2.2.1255.255.255.255
R2(config)#interfaceloopback2
R2(config-if)#ipaddress2.2.2.2255.255.255.255
R2(config)#interfaceloopback3
R2(config-if)#ipaddress2.2.2.3255.255.255.255
R2(config)#interfaceloopback4
R2(config-if)#ipaddress2.2.2.4255.255.255.255
ASA(config)#interfacegigabitEthernet0
ASA(config-if)#noshutdown
ASA(config-if)#nameifoutside
ASA(config-if)#ipaddress10.1.1.100255.255.255.0
ASA(config)#interfacegigabitEthernet1
ASA(config-if)#noshutdown
ASA(config-if)#nameifinside
ASA(config-if)#ipaddress20.1.1.100255.255.255.0
步骤2:
路由配置
R2(config)#iproute0.0.0.00.0.0.020.1.1.100
ASA(config)#routeinside2.2.2.0255.255.255.020.1.1.1
ASA(config)#routeoutside0010.1.1.1
R1走直连路由
步骤3:
NAT配置
1.1传统配置
ASA(config)#nat(inside)12.2.2.0255.255.255.0
ASA(config)#global(outside)110.1.1.150-10.1.1.200
ASA(config)#access-listinboundpermiticmpanyany
ASA(config)#access-groupinboundininterfaceoutside
//ping测试
//查看NAT转换条目
//可以看到新的测试会话映射的IP是10.1.1.151,表示是动态一对一的映射。
NAT条目默认默认保存3个小时,可以使用clearxlate来清除。
1.2新配置
实例一:
基本接口、路由配置不在重复
ASA(config)#showrunobject
objectnetworkOutside-Nat-Pool
range10.1.1.15010.1.1.200
objectnetworkInside-Network
subnet2.2.2.0255.255.255.0
ASA(config)#showrunnat
!
objectnetworkInside-Network
nat(inside,outside)dynamicOutside-Nat-Pool
ASA(config)#access-listinboundpermiticmpanyany
ASA(config)#access-groupinboundininterfaceoutside
//NAT映射是动态一对一,但转换的源不是连续的。
实例二:
ASA(config)#clearconfigureobjectnetwork//清除object相关配置
//showrun没有看到任何条目
//NAT映射条目还存在,所以需要使用clearxlate
ASA(config)#showrunobject
objectnetworkInside-Network
subnet2.2.2.0255.255.255.0
objectnetworkOutside-Nat-Pool
range10.1.1.20010.1.1.201
objectnetworkOutside-PAT-Address
host10.1.1.220
ASA(config)#showrunobject-group
object-groupnetworkOutside-Address
network-objectobjectOutside-Nat-Pool
network-objectobjectOutside-PAT-Address
ASA(config-network-object)#showrunnat
!
objectnetworkInside-Network
nat(inside,outside)dynamicOutside-Addressinterface
//先200-201动态一对一,然后10.1.1.220动态PAT,最后使用接口地址动态PAT
//动态一对一
//可以看到源2.2.2.3和2.2.2.4都转换成10.1.1.220,使用的是PAT转换
2动态PAT,动态多对一和动态多对多
步骤1:
配置接口IP地址
R1(config)#interfacefastEthernet0/0
R1(config-if)#ipaddress10.1.1.1255.255.255.0
R1(config)#interfaceloopback1
R1(config-if)#ipaddress1.1.1.1255.255.255.255
R1(config)#interfaceloopback2
R1(config-if)#ipaddress1.1.1.2255.255.255.255
R1(config)#interloopback3
R1(config-if)#ipaddress1.1.1.3255.255.255.255
R1(config)#interloopback4
R1(config-if)#ipaddress1.1.1.4255.255.255.255
R2(config)#interfacefastEthernet0/0
R2(config-if)#ipaddress20.1.1.1255.255.255.0
R2(config)#interfaceloopback1
R2(config-if)#ipaddress2.2.2.1255.255.255.255
R2(config)#interfaceloopback2
R2(config-if)#ipaddress2.2.2.2255.255.255.255
R2(config)#interfaceloopback3
R2(config-if)#ipaddress2.2.2.3255.255.255.255
R2(config)#interfaceloopback4
R2(config-if)#ipaddress2.2.2.4255.255.255.255
ASA(config)#interfacegigabitEthernet0
ASA(config-if)#noshutdown
ASA(config-if)#nameifoutside
ASA(config-if)#ipaddress10.1.1.100255.255.255.0
ASA(config)#interfacegigabitEthernet1
ASA(config-if)#noshutdown
ASA(config-if)#nameifinside
ASA(config-if)#ipaddress20.1.1.100255.255.255.0
步骤2:
路由配置
R2(config)#iproute0.0.0.00.0.0.020.1.1.100
ASA(config)#routeinside2.2.2.0255.255.255.020.1.1.1
ASA(config)#routeoutside0010.1.1.1
R1走直连路由
步骤3:
NAT配置
ASA(config)#clearconfigurenat
ASA(config)#clearconfigureglobal
//清除老版本ASANAT配置
ASA(config)#clearconfigurenat
ASA(config)#clearconfigureobject-group
ASA(config)#clearconfigureobject
//清除新版本ASANAT配置
ASA(config)#showrunaccess-list
access-listinboundextendedpermiticmpanyany
ASA(config)#showrunaccess-group
access-groupinboundininterfaceoutside
2.1传统配置
ASA(config)#nat(inside)12.2.2.0255.255.255.0
global(outside)110.1.1.220
global(outside)110.1.1.221
写两个以上的global条目就相当于动态多对多。
当10.1.1.220IP的端口号被利用完后,就会使用10.1.1.221这个IP来映射