• 用户需求:

    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。

    拓扑图如下:


使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第1张图片


基本配置如下:

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)。具体可以实现的功能请查阅相关文档。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第2张图片


使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第3张图片

在安装好NPS服务器,将ASA的与NPS通讯的接口IP地址添加进来,其实就是添加一个radius客户端。如图所示:

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第4张图片

在AD中注册该服务器,使NPS可以使用AD中和账号进行认证。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第5张图片


使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第6张图片

建立一个“连接请求策略”,相当于是一个认证策略,但需要结合网络策略使用。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第7张图片

必须选择一个条件,那就选择所有时间都允许认证吧,也可以选择一个时间来让这个策略生效。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第8张图片

选择身份认证数据库所在的位置,NPS和AD服务器是可以分开部署的。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第9张图片

此处比较关键,一定选择CHAP和PAP。这里主要是跟NAS设备和终端用的协议有关。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第10张图片


使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第11张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第12张图片

在策略中添加一个“网络策略”新建名称为“ASA-Group1”的网络策略,然后点击下一步;

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第13张图片

添加网络策略,在选择“条件”的地方,选择用户组,然后将“Group1”做为一个条件添加进来。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第14张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第15张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第16张图片


使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第17张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第18张图片



使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第19张图片


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上测试成功。

 

查看相关日志信息,可以看到成功进行了认证。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第20张图片


配置默认的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进行测试

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第21张图片

使用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进行测试

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第22张图片

基于组用户下发group-policy

属性:

Class Group-policy

filter-id Download ACL

Group1的用户获得名称为“ssl***-goup-policy1”的策略

Group2的用户获得名称为“ssl***-goup-policy2”的策略

NPS服务器配置:

在“网络策略”中新建一条网络策略

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第23张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第24张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第25张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第26张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第27张图片

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第28张图片

修改Group1的设置选项。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第29张图片

分别进行测试

使用Group1的用户user1进行测试

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第30张图片

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

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第31张图片

使用Group2的user2进行测试

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第32张图片

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地址。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第33张图片

基于组用户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测试(与需求一致)

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第34张图片

远程桌面测试(与需求一致)

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第35张图片

使用User2用户进行测试:

进行Ping测试:(与需求一致)

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第36张图片

远程桌面测试(与需求一致)

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第37张图片

设备登录配置:

ciscoasa(config)# aaa authentication telnet console nps

ciscoasa(config)# telnet 0 0 inside

在2008服务器进行测试:

首先安装telnet client

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第38张图片

ASA上进行授权配置:

aaa authorization exec authentication-server

NPS配置:

Group1的策略不进行修改,Group2的策略添加一个radius attribute

service-type = administrative

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第39张图片

在2008上分别使用user1和user2进行登录测试

对User1进行测试:

发现user1无法登录ASA进行管理。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第40张图片

对User2进行测试:

发现user2用户可以对ASA进行管理。

使用Windows2008 NPS做为Radius服务器实现ASA的***用户拨入_第41张图片

本文简单地对×××拨入用户实现了集中认证和授权,起到一个抛砖引玉的作用,其他还需要大家再进行研究。