用户需求:
1. 用户需要对ASA上的用户进行radius认证,基于组用户授权不同的group-policy和download ACL。但用户预算有限,又不想再买一台ACS服务器,希望利用现在的Windows 2008(AD服务器)通过设置实现通过域账号来登录×××。
实现功能:
1. 在AD上基于Group对用户进行分类,分为Group1和Group2;
2. Group1和Group2的用户都能拨×××;
3. Group1的用户获得Group-policy1的策略,Group2的用户获得Group-policy2的策略;
4. Group1的用户只能远程桌面服务器,Group2的用户只能ping通服务器(通过Download ACL实现该功能)
5. Group1的用户不能telnet远程管理ASA,Group2的用户可以远程管理ASA。
拓扑图如下:
基本配置如下:
ASA:
ASA(config)# int g0
ASA(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ASA(config-if)# ip add 12.1.1.2 255.255.255.0
ASA(config-if)# no shut
ASA(config-if)# int g2
ASA(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ASA(config-if)# ip add 172.18.1.1 255.255.255.0
ASA(config-if)# no shut
PC1设置IP地址 12.1.1.10/24,网关为12.1.1.2.
1. 安装AD
首先安装AD域,来做为用户数据库。安装AD的过程在此不再赘述。
在安装后AD后建立一个OU,名称为“IT”,在该OU建立Group1和Group2两个组,同时建立User1和User2两个用户。User1属于Group1,User2属于Group2。
2.安装NPS
NPS介绍:
NPS(Network Policy Server) 是基于IETF标准的Radius服务器,支持IETF标准的Radius属性。可以使用AD中的账号对用户进行认证,并基于radius进行授权操作。支持802.1X,可以对路由器、交换机等网络设备做统一的AAA认证,可以结合交换机或WLC做标准的802.1X认证,可以结合思科ASA防火墙做统一的×××用户认证,下发不同的Group-policy(Class attribute)或Download ACL(Filter-ID attribute)。具体可以实现的功能请查阅相关文档。
在安装好NPS服务器,将ASA的与NPS通讯的接口IP地址添加进来,其实就是添加一个radius客户端。如图所示:
在AD中注册该服务器,使NPS可以使用AD中和账号进行认证。
建立一个“连接请求策略”,相当于是一个认证策略,但需要结合网络策略使用。
必须选择一个条件,那就选择所有时间都允许认证吧,也可以选择一个时间来让这个策略生效。
选择身份认证数据库所在的位置,NPS和AD服务器是可以分开部署的。
此处比较关键,一定选择CHAP和PAP。这里主要是跟NAS设备和终端用的协议有关。
在策略中添加一个“网络策略”新建名称为“ASA-Group1”的网络策略,然后点击下一步;
添加网络策略,在选择“条件”的地方,选择用户组,然后将“Group1”做为一个条件添加进来。
2. ASA相关配置
配置基本的web***配置:
ciscoasa(config)# web***
ciscoasa(config-web***)# enable outside
ciscoasa(config-web***)# anyconnect p_w_picpath disk0:/anyconnect-win-3.0.0629-k9.pkg
ciscoasa(config-web***)# anyconnect enable
配置radius服务器
ciscoasa(config)# aaa-server nps protocol radius
ciscoasa(config)# aaa-server nps (inside) host 172.18.1.20
ciscoasa(config-aaa-server-host)# key cisco
如果没有网络策略或者网络策略不正确或授权为拒绝的话,在ASA的用户刚无法认证通过。现象如下:
ciscoasa# test aaa authentication nps host 172.18.1.20 username user1 password$
INFO: Attempting Authentication test to IP address <172.18.1.20> (timeout: 12 seconds)
ERROR: Authentication Rejected: AAA failure
在域中建立名为“IT”的OU,在OU中建立Group1和Group2。另外在OU“IT”中建立user1和user2,user1属于Group1,user2属于Group2。
在ASA上进行测试
ciscoasa# test aaa authentication nps host 172.18.1.20 username user1 password$
INFO: Attempting Authentication test to IP address <172.18.1.20> (timeout: 12 seconds)
INFO: Authentication Successful
在ASA上测试成功。
查看相关日志信息,可以看到成功进行了认证。
配置默认的tunnel-group的认证策略,默认的认证是LOCAL.
tunnel-group DefaultWEB×××Group general-attributes
authentication-server-group nps
分别建立2个Group-Policy,分别为Group1和Group2提供不同的策略。
ip local pool group1-pool 172.20.1.1-172.20.1.10 mask 255.255.255.0
ip local pool group2-pool 172.20.2.1-172.20.2.20 mask 255.255.255.0
ciscoasa(config)# group-policy ssl***-group-policy1 internal
ciscoasa(config)# group-policy ssl***-group-policy1 attributes
ciscoasa(config-group-policy)# address-pools value group1-pool
ciscoasa(config-group-policy)# ***-tunnel-protocol ssl-client ssl-clientless
ciscoasa(config-group-policy)# banner value Welcome to Group1
ciscoasa(config)# group-policy ssl***-group-policy2 internal
ciscoasa(config)# group-policy ssl***-group-policy2 attributes
ciscoasa(config-group-policy)# address-pools value group2-pool
ciscoasa(config-group-policy)# ***-tunnel-protocol ssl-client ssl-clientless
ciscoasa(config-group-policy)# banner value Welcome to Group2
为default Group-policy进行设置,如果没有指定Group-policy,就使用这个Group-Policy。
ip local pool default-pool 172.20.100.1-172.20.100.20 mask 255.255.255.0
ciscoasa(config)# group-policy DfltGrpPolicy attributes
ciscoasa(config-group-policy)# ***-tunnel-protocol ssl-client
ciscoasa(config-group-policy)# address-pools value default-pool
进行测试
在PC1使用AD上的账号user1进行测试
使用AD账号成功拨入×××。
在ASA上show ***-sessiondb看到相应的用户
ciscoasa# show ***-sessiondb anyconnect
Session Type: AnyConnect
Username : user1 Index : 5
Assigned IP : 172.20.100.1 Public IP : 12.1.1.10
Protocol : AnyConnect-Parent SSL-Tunnel
License : AnyConnect Premium
Encryption : RC4 Hashing : none SHA1
Bytes Tx : 9084 Bytes Rx : 8945
Group Policy : DfltGrpPolicy Tunnel Group : DefaultWEB×××Group
Login Time : 19:18:24 UTC Wed Jun 18 2014
Duration : 0h:03m:28s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
在PC1上ping内网172.18.1.20进行测试
基于组用户下发group-policy
属性:
Class Group-policy
filter-id Download ACL
Group1的用户获得名称为“ssl***-goup-policy1”的策略
Group2的用户获得名称为“ssl***-goup-policy2”的策略
NPS服务器配置:
在“网络策略”中新建一条网络策略
修改Group1的设置选项。
分别进行测试
使用Group1的用户user1进行测试
ciscoasa# show ***-sessiondb anyconnect
Session Type: AnyConnect
Username : user1 Index : 6
Assigned IP : 172.20.1.1 Public IP : 12.1.1.10
Protocol : AnyConnect-Parent SSL-Tunnel
License : AnyConnect Premium
Encryption : RC4 Hashing : none SHA1
Bytes Tx : 9242 Bytes Rx : 577
Group Policy : ssl***-group-policy1 Tunnel Group : DefaultWEB×××Group
Login Time : 19:41:48 UTC Wed Jun 18 2014
Duration : 0h:01m:49s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
使用Group2的user2进行测试
ciscoasa# show ***-sessiondb anyconnect
Session Type: AnyConnect
Username : user2 Index : 7
Assigned IP : 172.20.2.1 Public IP : 12.1.1.10
Protocol : AnyConnect-Parent SSL-Tunnel
License : AnyConnect Premium
Encryption : RC4 Hashing : none SHA1
Bytes Tx : 9242 Bytes Rx : 577
Group Policy : ssl***-group-policy2 Tunnel Group : DefaultWEB×××Group
Login Time : 19:44:46 UTC Wed Jun 18 2014
Duration : 0h:01m:20s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
可以看到Group1和Group2分别显示了不同的Banner信息,获得了不同网段的IP地址。
基于组用户Donwload ACL
实现Group1的用户只能使用远程桌面访问服务器,不能ping或其他通讯;
Group2的用户只能ping通服务器,不能进行其他通讯。
ASA的配置如下:
access-list ssl***-acl1 extended permit tcp any host 172.18.1.20 eq 3389
access-list ssl***-acl2 extended permit icmp any host 172.18.1.20
NPS无法实现在服务器端写ACL,需要事先在ASA防火墙上写好相应的ACL,在NPS上基于组进行调用。
以下是NPS的配置
Group1的设置:
Group2的设置
在PC1上进行测试
使用User1用户进行测试:
ping测试(与需求一致)
远程桌面测试(与需求一致)
使用User2用户进行测试:
进行Ping测试:(与需求一致)
远程桌面测试(与需求一致)
设备登录配置:
ciscoasa(config)# aaa authentication telnet console nps
ciscoasa(config)# telnet 0 0 inside
在2008服务器进行测试:
首先安装telnet client
ASA上进行授权配置:
aaa authorization exec authentication-server
NPS配置:
Group1的策略不进行修改,Group2的策略添加一个radius attribute
service-type = administrative
在2008上分别使用user1和user2进行登录测试
对User1进行测试:
发现user1无法登录ASA进行管理。
对User2进行测试:
发现user2用户可以对ASA进行管理。
本文简单地对×××拨入用户实现了集中认证和授权,起到一个抛砖引玉的作用,其他还需要大家再进行研究。