防火墙的AAA认证[通俗易懂]

防火墙的AAA认证[通俗易懂]防火墙的AAA认证防火墙的AAA提供基于三种数据库认证:LOCAL,TACACS+,RADIUS.使用tacacs+,radius两种认证协议来进行专门的AAA服务器与NAS之间进行接入访问认证。基本认证原理:客户机发起验证请求到NAS,而NAS帮助收集用户的验证信息并使用pre-sharekey与AAA服务器进行交互,AAA会对NAS提交上来的…

大家好,又见面了,我是你们的朋友全栈君。


防火墙的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协议来进行认证。
在防火墙中,认证有字符模式认证,有包模式的认证,还有隧道模式 (vpn tunnel),cut-through的直通认证(目前只支持http,https,ftp,telnet这四种标准的流量做cut-through),如果其它非标准的认证流量,防火墙还是会对流量进行截取并执行认证动作,但不会像前面四种流量一样会弹出图形化提示认证,所以会影响认证通过)等。
今天我不铺陈这些理论了,还是看下实验:
Top:
 

防火墙的AAA认证[通俗易懂]

由于我的 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上
这样我们认证成功后就可以访问了。
 
 

本文转自 Bruce_F5 51CTO博客,原文链接:http://blog.51cto.com/zenfei/574647


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135443.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • xshell 在Oracle SQL Plus backspace键 变为 sele^H^H^H

    xshell 在Oracle SQL Plus backspace键 变为 sele^H^H^Hxshell在OracleSQLPlus backspace键变为sele^H^H^H问题描述:用Xshell登录进入linux后,在普通模式下或进入SQLPlus 模式下,对输入进行删除等操作没有问题.而在运行中,按delete,backspace键时会产生^H等乱码问题.这是因为编码不匹配的问题.解决方法:方法1:

    2025年5月28日
    2
  • NPN三极管导通数据总结

    NPN三极管导通数据总结由上图和数据可知,三极管相当于是用小电流(Ib)控制大电流(Ic),截止区就是Ube放大区:Ube>0.5开始,注意并不是要大于0.7V,0.7V是二极管的导通电压,在放大区里,Ube一般是大于0.5V,小于0.65V,此时Ic是Ib的线性放大倍数。饱和区:随着Ube大于0.65以上,Ic基本上不会再增大,此时Uce会很快降低,而且会迫使Ubc正偏,这些数学关系,可以通过简单的欧姆

    2022年6月16日
    39
  • WebApp开发实践

    WebApp开发实践网上购物网站(以出售软件为例)webApp开发由Java实现,运用了jdbc,jsp,servlet,jQueryFlot图表等技术,数据库为SqlServer2008,仅供参考学习,转载文章需注明:一、后台实现(1)用户的登入:(2)修改密码:(3)软件管理:(4)软件上新:(5)订单管理:(6)编辑公告:二、前台实现:(1)会员登录与注册模块:(2)搜索…

    2022年6月17日
    43
  • C++实现二叉树层序遍历

    C++实现二叉树层序遍历层序遍历图示实现二叉树的层次遍历,要利用到队列。基本思想:1.先将根节点放到队列中2.根节点弹出队列,然后将根节点的左、右儿子入队3.弹出左儿子,放入左儿子的左右儿子4.弹出右儿子,放入右儿子的左右儿子5.重复3、4步图示过程:所用的二叉树如下队列的操作:将根节点弹出,放入左右儿子:将B节点弹出,放入左右儿子(只有右儿子):把D节点弹出,放入左右儿子:C、E、F都没有儿子节点,所以直接弹出队列即可: C++代码实现1.利用前序遍历思想输入二叉树。(前序

    2022年5月21日
    28
  • java断言assertequals_junit 方法:assertEquals 和 assertTrue

    java断言assertequals_junit 方法:assertEquals 和 assertTrueassertEquals和assertTrue区别相同之处:都能判断两个值是否相等assertTrue如果为true,则运行success,反之FailureassertEquals如果预期值与真实值相等,则运行success,反之Failure不同之处:assertEquals运行Failure会有错误提示,提示预期值是xxx,而实际值是xxx。容易调式assertTrue没有错误…

    2022年7月13日
    11
  • MySQL 改动用户password及重置rootpassword「建议收藏」

    MySQL 改动用户password及重置rootpassword

    2022年1月18日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号