防火墙的AAA认证
防火墙的 AAA提供基于三种数据库认证:LOCAL,TACACS+,RADIUS.使用tacacs+,radius两种认证协议来进行专门的AAA服务器与NAS之间进行接入访问认证。基本认证原理:客户机发起验证请求到NAS,而NAS帮助收集用户的验证信息并使用pre-share key与AAA服务器进行交互,AAA会对NAS提交上来的帐户进行匹对,如果认证成功则允许接入网络,相应的还会有一些授权的动作。
防火墙的 AAA认证与路由器作为NAS/AAA client认证原理基本一样,针对不同的认证需求,我们可以选择tacacs+或者radius两种不同的认证协议。具体这两种协议有哪些区别呢:
Radius:默认使用 1645,1646两个port,1645做认证,1646做授权。使用UDP用户数据报协议,不适合那种可靠性要求高或拥堵的网络中。它把认证授权绑在了一起,很难分离认证与授权两个动作。仅仅只加密KEY。不支持多协议如:x.25,appletalk,netbios,novell等网络。它是公有的认证协议。
 
Tacacs+:是 tacacs的增强版,它把认证与授权进行了分享,使这两个动作的应用更加灵活,使用的是更加可靠的连接TCP传输层协议,不仅仅只加密KEY,还把用户数据整个加密提供给AAA,安全性更突出,支持x.25,novell,appletalk,ipx,netbios等网络协议。但tacacs+是由cisco私有的。
总的来说,一般使用 radius来认证用户,使用tacacs+来授权用户,而radius是个开放的标准,相对于tacacs+则只瞄准cisco设备,而且思科设备也多使用radius协议来进行认证。
在防火墙中,认证有字符模式认证,有包模式的认证,还有隧道模式 (*** tunnel),cut-through的直通认证(目前只支持http,https,ftp,telnet这四种标准的流量做cut-through),如果其它非标准的认证流量,防火墙还是会对流量进行截取并执行认证动作,但不会像前面四种流量一样会弹出图形化提示认证,所以会影响认证通过)等。
今天我不铺陈这些理论了,还是看下实验:
Top:
 

防火墙的AAA认证_第1张图片

由于我的 ACS时常会出现“罢工”的情况,无法对我的认证信息进行响应,所以没法使用radius与tacacs+去进行AAA了,甚是遗憾啊,只能用本地数据库做些畸形的实验了,不过大家晓得大致原理与命令就差不多了。
需求:
1,         user去往 server的流量需要经过ASA做认证才能通过
2,         对标准的直通流量做认证
3,         对非标准的直通流量做认证
实现:
R1配置 :
ip ftp source-interface FastEthernet0/0
ip ftp username cisco
ip ftp password cisco
interface FastEthernet0/0
 ip address 192.168.1.1 255.255.255.0
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 192.168.1.2
ip http server
ip http port 8888
ip http authentication local
R2配置:
interface FastEthernet0/0
 ip address 192.168.2.2 255.255.255.0
interface FastEthernet0/1
 ip address 192.168.4.1 255.255.255.0
ip route 0.0.0.0 0.0.0.0 192.168.2.1
ASA配置:
Interface e0
No sh
Nameif inside
Security-level 100
Ip add 192.168.1.2 255.255.255.0
Interface e1
No sh
Nameif outside
Security-level 0
Ip add 192.168.2.1 255.255.255.0
放过 icmp流量,
Access-list outacl permit icmp any any
Access-list outacl permit tcp any any eq www
Access-list outacl permit tcp any any eq 8888
Access-list outacl permit tcp any any eq 21
Access-list outacl permit tcp any host 192.168.2.3 eq 23
Access-group outacl in interface outside
Access-list http permit tcp any any eq www
Access-list http permit tcp any any eq 8888
Access-list http permit tcp any host 192.168.2.3 eq 23
Access-list ftp permit tcp any any eq 21
Access-list ftp permit tcp any host 192.168.2.3 eq 23
Access-list telnet permit tcp any any eq 23
Username cisco password zengfei
Auth-prompt prompt please authentication in there
Auth-prompt accept ok,you can do it everythink
Auth-prompt rejected oh,I’m so sorry
Aaa authentication match ftp outside LOCAL
Aaa authentication match http outside LOCAL
Aaa authentication match telnet outside LOCAL
我们可以看到当我们访问 http://192.168.1.1时,属于正常的标准流量,会弹出认证提示框,认证成功便可以访问。
用户信息会缓存在 ASA里面,可以采用show uauth看到:
ciscoasa# show uauth
                        Current    Most Seen
Authenticated Users        1          1
Authen In Progress         0          1
user 'zengfei' at 192.168.4.2, authenticated (idle for 0:00:00)
   absolute   timeout: 0:05:00
   inactivity timeout: 0:00:00
ciscoasa#
FTP连接:
ftp> open 192.168.1.1
Connected to 192.168.1.1.
220-FTP Server (user 'zengfei')
220
User (192.168.1.1:(none)): cisco
331-Password:
331
Password:
Connection closed by remote host.
ftp>
如果把 http的流量端口改为8888则变成了防火墙cut-through认证不支持的流量了,
由于对非标准的流量弹不出认证提示框,所以提示出错,必须先认证流量才能通过,所以我们可以通过 virtual telnet来先认证,然后再访问就可以过去了。
virtual telnet 192.168.2.3
那么在做认证的时候首先要放过 virtual telnet的流量。并对它的流量做AAA认证。
记得最重要的一点,由于此 TOP是由外向内发起的流量,那么默认virtual telnet是不能为其提供proxy arp的,所以需要static(inside,outside) 192.168.2.3 192.168.2.3 才能telnet上
这样我们认证成功后就可以访问了。