详解CiscoACSAAA认证2009-09-1023:53AAA代表Authentication、Authorization、Accounting,意为认证、授权、记帐,其主要目的是管理哪些用户可以访问服务器,具有访问权的用户可以得到哪些服务,如何对正在使用网络资源的用户进行记帐。1、认证:验证用户是否可以获得访问权限——“你是谁?”2、授权:授权用户可以使用哪些资源——“你能干什么?”3、记帐:记录用户使用网络资源的情况——“你干了些什么?”好的,简单的了解理论知识后,接下来我们还是以实验的方式来进行讲解:为网络提供AAA服务的,主要有TACACS+和RADIUS协议,我们主要介绍是TACACS+协议,因为它运行在TCP协议基础之上,更适合大型网络,特别是融合型网络一、实验拓扑介绍该实验主要完成R1路由通过ACS服务器实现AAA认证,包括验证、授权和记帐,同时还包括PPP验证和计时通过ciscoACS实验二、安装ciscoACS1、硬软件要求硬件:PentiumIV处理器,1.8GHz或者更高操作系统:Windows2000ServerWindows2000AdvancedServer(ServicePack4)WindowsServer2003,EnterpriseEditionorStandardEdition(ServicePack1)内存:最小1GB虚拟内存:最小1GB硬盘空间:最小1GB可用空间,实际大小根据日志文件的增长,复制和备份的需求而定。浏览器:MicrosoftInternetExplorer6或者更高版本JAVA运行环境:SunJRE1.4.2_04或更高版本网络要求:在CISCOIOS设备上为了全面的支持TACACS+和RADIUS,AAA客户端必须运行CiscoIOS11.1或者更高的版本。非CISCOIOS设备上必须用TACACS+,RADIUS或者两者一起配置。运行ACS的主机必须能ping通所有的AAA客户端。2、安装方法(我们用的版本是4.0版本)打开ACS安装程序文件夹,选中setup双击。进入安装向导,根据提示进行安装,基本为默认设置3、安装完成后的访问在运行ACS的主机上,通过桌面上的ACSAdmin网页图标,可以访问ACS的web格式的管理台。也可以通过网页浏览器输入地址:来访问ACS。注:WindowsXp不支持ciscoACS,在此笔者是在虚机中的windows2003sever下安装的ACS安装完成后,1、一定要安装JAVA平台,否则该ACS将不能正常使用,笔者在此安装的是jre-6u12-windows-i586-p-s.exe,版本为JRE版本1.6.0_12JavaHotSpot(TM)2、IE的浏览器一定把安全级别设置为低或者中低,否者打的开界面将是空的。三、ACS的配置1、设置ACS管理员帐号Step1点击ACS界面左边的Administrationcontrol按钮,然后点击Administratorcontrol界面中的AddAdministratorStep2点击Addadministrator后出现此账户的诸多选项,逐一填写后点击SubmitStep3设置了管理员后就可以通过web界面登录到ACS服务器对ACS进行配置如:、ACS网络设置(添加Tacacs+客户端Step1点击ACS界面的NetworkConfiguration按钮,出现网络配置界面,然后点击AddEntry,Step2添加Tacacs+客户端(ACS中必须指定Tacacs+客户端的名字、IP地址、key)3、Tacacs+设置Step1点击ACS界面左边Interfaceconfiguration按钮,选择TACACS+(CiscoIOS)Step2根据个人具体应用,在Tacacs+相关项目中打勾(如果没有将tacacs+相关项目选中,则在用户组/用户属性中将不会出现tacacs+相关项目)4、设备端tacacs+服务器的指定在cisco设备端用以下命令指定ACStacacs+服务器R1(config)#tacacs-serverhost10.10.10.110R1(config)#tacacs-serverdirected-requestR1(config)#tacacs-serverkeyxinhua5、添加用户组Step1在ACS界面左边点击GroupSetupStep2在下拉列表中选取某个组,给这个组重命名,接着选择Editsetting进入组的属性配置Step3在组的enableoption中的MaxprivilegeforanyAAAClient设置组的级别6、添加用户Step1在ACS界面的左边点击usersetup按钮Step2在user方框中填写用户名,然后点击ADD/EditStep3在出现的用户属性中逐一填写Step4选择用户属于哪个用户组Step5选择用户属于的级别(可以定义单个用户级别,也可以和所属的用户组级别一样)Step6设置用户的enable密码好的,到这里基本配置就算是配完了,接下来我们来演示一下AAA功能的实现四、ACS功能设置1、ACS认证a)在设备端定义tacacs+服务器地址以及keyR1(config)#tacacs-serverhost10.10.10.110R1(config)#tacacs-serverdirected-requestR1(config)#tacacs-serverkeyxinhuab)在ACS端定义设备的IP地址(参考ACS基本配置)c)在ACS上面建立用户名和用户组d)在设备端配置AAA认证R1(config)#enablesecret123‘定义enable密码R1(config)#usernameabcpassword456‘定义本地数据库R1(config)#aaanew-model‘启用AAA认证R1(config)#aaaauthenticationlogindefaultgrouptacacs+local‘设置登陆验证默认为采用先ACS服务器再本地验证(当ACS服务器不可达才用本地数据库验证)R1(config)#aaaauthenticationenabledefaultgrouptacacs+enable‘设置enable进入特权模式默认为采用先ACS服务器再本地enable设置的密码R1(config)#linevty04R1(config)#loginauthenticationdefault‘设置telnet登陆采用前面定义的defaulte)验证telnet登陆:telnet10.10.10.100,输入ACS服务器的用户名和密码,登陆成功,用本地数据库用户名和密码登陆失败(因为根据前面设置,R1首先会去ACS服务器进行验证,当ACS服务器不可达时,才会用本地数据库验证)我们可以试着断开ACS与路由的连接,然后再进行登陆,这时则必须用本地数据库验证,也就是用户名为abc密码为456enable进入特权测试此时输入特权模式密码为ACS服务器上的密码,而非本地路由的enable密码2、ACS授权ACS中可以通过设置用户组/用户的级别privilege来实现不同用户登录设备后可用的命令的不同,也可以通过使用ACS的命令授权来实现不同用户登录设备的可用命令条目,以下介绍ACS的命令授权Step1在ACS的界面左边的shareprofilecomponents按钮Step2点击shellcommandauthorizationsetsStep3点击Add添加命令集页面下方有两个方框,左边填写命令的前缀,右边填写命令的后缀,命令后缀填写的语法格式是:permit/deny***,如本例当中只允许使用showversion命令Step4将命令集运用到用户组或者用户,在用户组属性当中进行设置,如下图,然后点击submit+restartStep6设备端配置R1(config)#aaanew-modelR1(config)#aaaauthorizationcommands1defaultgrouptacacs+local‘指定级别1能够使用的EXEC命令R1(config)#aaaauthorizationcommands15defaultgrouptacacs+local‘指定级别15能够使用的EXEC命令R1(config)#linevty04R1(config)#authorizationcommands1default‘应用到telnet登陆进程R1(config)#authorizationcommands15defaultStep7测试由于根据前面授权设置,在特权15级别下只能使用showversion命令,故其它命令均不能使用另外,我们也可以在用户组属性中设置该组能够使用特权的最高级别,如下图:3、ACS审计Step1设备端配置R1(config)#aaanew-modelR1(config)#aaaaccountingexecdefaultstart-stopgrouptacacs+R1(config)#linvty04R1(config)#accountingexecdefaultStep2点击ACS界面左边的reportsandactivity按钮,然后选择TACACS+Accounting可以具体浏览某一天的记录Step3如果要记录用户所用的命令,设备端配置为:R1(config)#aaanew-modelR1(config)#aaaaccountingcommands0defaultstart-stopgrouptacacs+R1(config)#aaaaccountingcommands1defaultstart-stopgrouptacacs+R1(config)#aaaaccountingcommands15defaultstart-stopgrouptacacs+R1(config)#linevty04R1(config)#accountingcommands0defaultR1(config)#accountingcommands1defaultR1(config)#accountingcommands15defaultStep4然后点击reportandactivity中的TACACS+Administration,可以浏览某天某用户的所有命令4、ppp验证与计时Step1验证设备端配置R1:R1(config)#aaaauthenticationpppjxxhgrouptacacs+R1(config)#ints0/0R1(config-if)#encapsulationpppR1(config-if)#pppauthenticationpapjxxhR1(config-if)#ppppapsent-usernamer1password123R2:R2(config)#usernamer1password123R2(config)#ints1R2(config-if)#encapsulationpppR2(config-if)#pppauthenticationpapR2(config-if)#ppppapsent-usernametestpasswordtest在本例PPP验证中,R1采用的是ACS服务器验证,R2依然采用的是本地数据库验证Step2计时设备端配置R1(config)#aaaaccountingnetworkjxpppstart-stopgrouptacacs+R1(config)#ints0/0R1(config-if)#pppaccountingjxppp配完后,点击ACS界面左边的reportsandactivity按钮,然后选择TACACS+Accounting可以查看ppp连接时