思科ASA基本配置
前言:
我发现网上的思科ASA资料写的都不是很详细,对刚学习思科防火墙的人很不友好,本着
分享自己学习经验想法,我写了这一篇文章来讲解思科ASA的基本概念和配置。
简介:
ASA可以将接口划分到三种区域inside,outside,dmz,默认情况下outside与dmz区域的接
口安全级别为0,inside区域的接口安全级别为100。安全级别的作用就是,从高安全级别区域转
发到低安全级别区域的数据包是被允许的(数值越大安全级别越高)。例如从inside发送到dmz
或outside的数据包默认是允许的,数据包被发送到目的地址后,返回的数据包会根据在ASA中
记录的连接会话表而被允许返回,但是注意,ICMP发送出去数据包不会被记录到连接会话表,所
以返回的ICMP数据包需要另外配置acl放行。还要注意的是,如果一个区域应用了acl,那么进入
该区域接口的数据包将按照acl的配置来决定是否允许放行。先不说那么多,让我们边配置边做介
绍吧。
实验环境:
0.设备的ip地址配置已经按照实验图配置完成,配置的命令就不写了。
1.划分安全区域。
ciscoasa(config)# int g0/0
ciscoasa(config-if)# nameif outside
ciscoasa(config)# int g0/1
ciscoasa(config-if)# nameif inside
ciscoasa(config)# int g0/2
ciscoasa(config-if)# nameif dmz
2.配置nat,让inside区域的内网主机可以访问internet。
ciscoasa(config)# object network inside【1】
ciscoasa(config-network-object)# subnet 192.168.10.0 255.255.255.0 【2】
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface 【3】
我们定义了一个网络对象inside【1】(从思科8.3版本之后就使用对象来定义主机和网络),在
【2】里面定义了这个网络对象的子网以及掩码,也就是我们内网区域的子网。在【3】这里对
该对象进行了nat配置,将从inside到outside数据包的源地址转化为outside的接口,也就是
G0/0口,这里使用的使用动态地址转换,OK,nat已经配置完毕,让我们在pc上ping一下
internet测试一下(internet是由windows主机模拟的,我们关闭的该主机的防火墙,注意我们
不需要为该主机设置网关)。
测试:
奇怪为什么【1】ping不通?回想一下简介里面有说到的ASA的连接会话表不会记录ICMP数据
包,所以从inside发送到outside的数据包在返回的时候被ASA拒绝了。怎么让ICMP数据包在
返回的时候不被拒绝呢?我们设置一条acl就可以解决问题了。
ciscoasa(config)# access-list outside extended permit icmp any 192.168.10.0 255.255
.255.0 【2】
ciscoasa(config)# access-group outside in interface outside 【3】
【2】添加一条acl名为outside,允许any(所有ip)到192.168.10.0/24的ICMP数据包,【3】
将acl应用到进入outside区域的接口上。
重新测试:
现在nat已经配置好了,内网的pc可以访问外网的所有服务了。
3.配置端口映射,让dmz的server可以对外提供应用服务。
ciscoasa(config)# object network server
ciscoasa(config-network-object)# host 172.16.1.100 【1】
ciscoasa(config-network-object)# nat (dmz,outside) static interface service tcp
80 80 【2】
跟nat一样,端口映射也是使用网络对象的方式进行配置,【1】定义了一个host也就是我
们dmzserver的ip地址。【2】使用静态的方式将80端口映射到outside区域接口上的80端
口。配置好端口映射之后还不能正常工作,因为此时的dmz与outside区域的安全级别均为
0,安全级别相同的区域是不能互相通信的,还需要配置区域安全级别和配置acl放行从out
side到dmz所需的服务。
ciscoasa(config)# access-list outside extended permit tcp any host 172.16.1.100
eq 80 【1】
ciscoasa(config)# access-group outside-dmz in interface outside 【2】
ciscoasa(config)# int g0/2
ciscoasa(config-if)# security-level 50 【3】
【1】在acl outside新增一条允许any到172.16.1.100的80端口,【2】应用到进入outside
的接口上。将dmz区域的g0/2接口设置为50【3】,为什么要更改呢?因为ASA默认不允许
同安全级别的区域之间互相通信,就算两边都放行了acl也无法通信,当然可以使用命令
same-security-traffic permit inter-interface 更改为允许相同安全级别区域互相通信,但是不建
议这样做。
测试从internet访问172.16.1.100,因为已经做了映射,所以我们访问ASA的1.1.1.1就可以访
问到172.16.1.100了。
结束
inside区域的pc通过nat可以访问到internet,outside区域的internet也可以访问到dmz的server了。
其实还可以做一些另外的配置,比如inside访问到dmz,这个任务就交给你去完成吧。