この記事では、Cisco 適応型セキュリティ アプライアンス(ASA)と Cisco IOS® でのグループ ロック(group-lock)機能について説明しています。また、認証、認可、およびアカウンティング(AAA)の各種属性の動作も示しています。Cisco IOS については、group-lock と user-vpn-group の違いについて、両方の相互に補完する機能を同時に使用する例とともに説明しています。また、認証ドメインを使用した Cisco IOS WebVPN の例も示しています。
次の項目に関して基本的な知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
この属性は、ユーザまたは group-policy で定義できます。次に、ローカル ユーザの属性の例を示します。
username cisco password 3USUcOPFUiMCO4Jk encrypted
username cisco attributes
group-lock value RA
username cisco2 password BAtr3u1T7j1eEcYr encrypted
username cisco2 attributes
group-lock value RA2
tunnel-group RA type remote-access
tunnel-group RA general-attributes
default-group-policy MY
tunnel-group RA webvpn-attributes
group-alias RA enable
tunnel-group RA2 type remote-access
tunnel-group RA2 general-attributes
default-group-policy MY
tunnel-group RA2 webvpn-attributes
group-alias RA2 enable
group-policy MY attributes
address-pools value POOL
webvpn
enable inside
anyconnect enable
tunnel-group-list enable
ユーザの cisco は RA tunnel-group だけを使用でき、ユーザの cisco2 は RA2 tunnel-group だけを使用できます。
ユーザの cisco2 が RA tunnel-group を選択すると、次に示すように接続が拒否されます。
May 17 2013 17:24:54: %ASA-4-113040: Group <MY> User <cisco2> IP <192.168.1.88>
Terminating the VPN connection attempt from <RA>. Reason: This connection is
group locked to.
AAA サーバから返される属性の 3076/85(Tunnel-Group-Lock)では、まったく同じ動作を行います。この属性はユーザまたは policy-group(または Internet Engineering Task Force(IETF)の属性 25)認証とともに渡すことができ、そのユーザを特定の tunnel-group にロックします。
次に Cisco Access Control Server(ACS)の許可プロファイルの例を示します。
属性が AAA から返されると、RADIUS デバッグによってその属性が次のように表示されます。
tunnel-group RA2 general-attributes
authentication-server-group ACS54
Parsed packet data.....
Radius: Code = 2 (0x02)
Radius: Identifier = 2 (0x02)
Radius: Length = 61 (0x003D)
Radius: Vector: E55D5EBF1558CA455DA46F5BF3B67354
Radius: Type = 1 (0x01) User-Name
Radius: Length = 7 (0x07)
Radius: Value (String) =
63 69 73 63 6f | cisco
Radius: Type = 25 (0x19) Class
Radius: Length = 24 (0x18)
Radius: Value (String) =
43 41 43 53 3a 61 63 73 35 34 2f 31 35 38 33 33 | CACS:acs54/15833
34 34 38 34 2f 33 | 4484/3
Radius: Type = 26 (0x1A) Vendor-Specific
Radius: Length = 10 (0x0A)
Radius: Vendor ID = 3076 (0x00000C04)
Radius: Type = 85 (0x55) The tunnel group that tunnel must be associated with
Radius: Length = 4 (0x04)
Radius: Value (String) =
52 41 | RA
rad_procpkt: ACCEPT
RADIUS_ACCESS_ACCEPT: normal termination
結果は、RA2 tunnel-group にアクセスを試みるとともに、RA tunnel-group 内で group-lock される場合と同じです。
May 17 2013 17:41:33: %ASA-4-113040: Group <MY> User <cisco> IP <192.168.1.88>
Terminating the VPN connection attempt from <RA2>. Reason: This connection is
group locked to
この属性も、ASA によって継承された VPN3000 ディレクトリから取得されます。この属性は、8.4 の構成ガイドにまだ存在し(ただし、新しいバージョンの構成ガイドでは削除されました)、次のように説明されています。
IPsec-User-Group-Lock
0 = Disabled
1 = Enabled
Tunnel-Group-Lock 属性が存在している場合でも、この属性はグループ ロックを無効にするために使用できるように見えます。Tunnel-Group-Lock とともに 0 に設定したこの属性を返そうとする(これは、まだ単なるユーザ認証です)とどうなるかを下に示します。これは、グループ ロックの無効化を試みるとともに、特定の tunnel-group 名を返す場合に奇妙に思われることでしょう。
デバッグでは、次のように表示されます。
Parsed packet data.....
Radius: Code = 2 (0x02)
Radius: Identifier = 3 (0x03)
Radius: Length = 73 (0x0049)
Radius: Vector: 7C6260DDFC3E523CCC34AD8B828DD014
Radius: Type = 1 (0x01) User-Name
Radius: Length = 7 (0x07)
Radius: Value (String) =
63 69 73 63 6f | cisco
Radius: Type = 25 (0x19) Class
Radius: Length = 24 (0x18)
Radius: Value (String) =
43 41 43 53 3a 61 63 73 35 34 2f 31 35 38 33 33 | CACS:acs54/15833
34 34 38 34 2f 34 | 4484/4
Radius: Type = 26 (0x1A) Vendor-Specific
Radius: Length = 12 (0x0C)
Radius: Vendor ID = 3076 (0x00000C04)
Radius: Type = 33 (0x21) Group-Lock
Radius: Length = 6 (0x06)
Radius: Value (Integer) = 0 (0x0000)
Radius: Type = 26 (0x1A) Vendor-Specific
Radius: Length = 10 (0x0A)
Radius: Vendor ID = 3076 (0x00000C04)
Radius: Type = 85 (0x55) The tunnel group that tunnel must be associated with
Radius: Length = 4 (0x04)
Radius: Value (String) =
52 41 | RA
rad_procpkt: ACCEPT
これによって、同じ結果(グループ ロックが適用されたままですが、IPSec-User-Group-Lock は考慮されなくなりました)が得られます。
May 17 2013 17:42:34: %ASA-4-113040: Group <MY> User <cisco> IP <192.168.1.88>
Terminating the VPN connection attempt from <RA2>. Reason: This connection is
group locked to
外部の group-policy では IPSec-User-Group-Lock=0 を返し、ユーザ認証用に Tunnel-Group-Lock=RA も受け取りました。ただし、そのユーザは引き続きロックされたままで、グループ ロックが実行されたままであることを意味します。
反対側の設定では、外部の group-policy が特定の tunnel-group の名前(Tunnel-Group-Lock)を返すとともに、特定のユーザの group-lock の無効化(IPSec-User-Group-Lock=0)を試みますが、そのユーザに対してはグループ ロックが引き続き適用されたままです。
これにより、この属性がこれ以上使用されないことが確認されます。この属性は、古い VPN3000 シリーズで使用されていました。Cisco Bug ID の CSCui34066 が開かれています。
Cisco IOS のグループ設定でのローカル group-lock のオプションは、ASA 上とは動作が異なります。ASA では、ユーザがロックされている tunnel-group の名前を指定します。Cisco IOS の group-lock オプション(引数なし)では、追加の検証が可能になり、username(形式:user@group)で提供されたグループが IKEID(グループ名)と比較されます。
詳細については、「Easy VPN 構成ガイド、Cisco IOS リリース 15M&T」を参照してください。
以下が一例です。
aaa new-model
aaa authentication login LOGIN local
aaa authorization network LOGIN local
username cisco1@GROUP1 password 0 cisco1
username cisco2@GROUP2 password 0 cisco2
crypto isakmp client configuration group GROUP1
key cisco
pool POOL
group-lock
save-password
!
crypto isakmp client configuration group GROUP2
key cisco
pool POOL
save-password
crypto isakmp profile prof1
match identity group GROUP1
client authentication list LOGIN
isakmp authorization list LOGIN
client configuration address respond
client configuration group GROUP1
virtual-template 1
crypto isakmp profile prof2
match identity group GROUP2
client authentication list LOGIN
isakmp authorization list LOGIN
client configuration address respond
client configuration group GROUP2
virtual-template 2
crypto ipsec transform-set aes esp-aes 256 esp-sha-hmac
mode tunnel
crypto ipsec profile prof1
set transform-set aes
set isakmp-profile prof1
crypto ipsec profile prof2
set transform-set aes
set isakmp-profile prof2
interface Virtual-Template1 type tunnel
ip unnumbered Ethernet0/0
tunnel mode ipsec ipv4
tunnel protection ipsec profile prof1
interface Virtual-Template2 type tunnel
ip unnumbered Ethernet0/0
tunnel mode ipsec ipv4
tunnel protection ipsec profile prof2
ip local pool POOL 10.10.10.10 10.10.10.15
これは、GROUP1に対してグループロック検証が有効になっていることを示しています。GROUP1に対して許可されている唯一のユーザはcisco1@GROUP1です。GROUP2(グループロックなし)に対しては、両方のユーザがログインできます。
次に示すように、認証に成功するには、GROUP1 とともに cisco1@GROUP1 を使用します。
*May 19 18:21:37.983: ISAKMP:(0): Profile prof1 assigned peer the group named GROUP1
*May 19 18:21:40.595: ISAKMP/author: Author request for group GROUP1successfully
sent to AAA
次に示すように、認証のためには、GROUP1 とともに cisco2@GROUP2 を使用します。
*May 19 18:24:10.210: ISAKMP:(1011):User Authentication in this group failed
ipsec:user-vpn-groupは、AAAサーバから返されるRADIUS属性で、ユーザ認証にのみ適用できます(group-lockがグループに使用されました)。 両方の機能は相互に補完的なもので、さまざまな局面で適用されます。
詳細については、「Easy VPN 構成ガイド、Cisco IOS リリース 15M&T」を参照してください。
この属性は group-lock とは動作が異なりますが、同じ結果が得られます。違いは、この属性には特定の値が必要であること(ASA の場合と同様)、および特定の値が Internet Security Association and Key Management Protocol(ISAKMP)のグループ名(IKEID)と比較されることです。それらが一致しない場合、接続は失敗します。クライアントに AAA 認証を受けさせ、group-lock を現時点では無効にするために前の例を変更した場合、どうなるかを次に示します。
username cisco password 0 cisco #for testing
aaa authentication login AAA group radius
crypto isakmp client configuration group GROUP1
no group-lock
crypto isakmp client configuration group GROUP2
no group-lock
crypto isakmp profile prof1
client authentication list AAA
crypto isakmp profile prof2
client authentication list AAA
ユーザにipsec:user-vpn-group属性が定義され、グループにgroup-lockが定義されていることに注意してください。
ACSには、cisco1とcisco2の2つのユーザがあります。cisco1ユーザの場合、次の属性が返されます。ipsec:user-vpn-group=GROUP1。cisco2ユーザの場合、ipsec:user-vpn-group=GROUP2という属性が返されます。
ユーザの cisco2 が GROUP1 でログインしようとすると、次のエラーが報告されます。
debug radius verbose
debug crypto isakmp
debug crypto isakmp aaa
*May 19 19:44:10.153: RADIUS: Cisco AVpair [1] 29
"ipsec:user-vpn-group=GROUP2"
*May 19 19:44:10.153: RADIUS(00000055): Received from id 1645/23
AAA/AUTHOR/IKE: Processing AV user-vpn-group
*May 19 19:44:10.154:
AAA/AUTHOR/IKE: User group GROUP2 does not match VPN group GROUP1 - access denied
これは、ユーザの cisco2 の ACS が、Cisco IOS で GROUP1 と比較する ipsec:user-vpn-group=GROUP2 を返すためです。
このようにして、group-lock の場合と同様に、同じ目標が達成されました。エンド ユーザがユーザ名として user@group を入力する必要はありませんが、user(@group なしで)を使用できることがここで分かるはずです。
group-lock の場合は、cisco1@GROUP1 を使用する必要があります。これは、Cisco IOS で最後の部分(@ 以降)が除去されて、残りの部分が IKEID(グループ名)と比較されるためです。
ipsec:user-vpn-groupでは、Cisco VPN Clientでcisco1だけを使用すれば十分です。そのユーザはACSで定義され、特定のipsec:user-vpn-groupが返され(この場合は=GROUP1)、その属性はIKEIDと比較されます。
両方の機能を同時に使用すべきではない理由を以下に示します。
次のように、group-lock は再度追加できます。
crypto isakmp client configuration group GROUP1
group-lock
crypto isakmp client configuration group GROUP2
group-lock
ここで、フローを示します。
*May 19 20:14:31.678: ISAKMP/xauth: reply attribute XAUTH_USER_NAME_V2
*May 19 20:14:31.678: ISAKMP/xauth: reply attribute XAUTH_USER_PASSWORD_V2
*May 19 20:14:31.678: ISAKMP:(1041):User Authentication in this group failed
AAA/AUTHOR/IKE: User group GROUP2 does not match VPN group GROUP1 - access denied
ASA 上では、Tunnel-Group-Lock をすべてのリモート アクセス VPN サービス(IPsec、SSL、WebVPN)に対して使用できます。 Cisco IOSグループロックおよびipsec:user-vpn-groupの場合、IPSec(easy VPNサーバ)でのみ動作します。 特定の WebVPN コンテキスト(および付加された group-policy)内の特定のユーザに対して group-lock を行うには、認証ドメインを使用する必要があります。
以下が一例です。
aaa new-model
aaa authentication login LIST local
username cisco password 0 cisco
username cisco1@C1 password 0 cisco
username cisco2@C2 password 0 cisco
webvpn gateway GW
ip address 10.48.67.137 port 443
http-redirect port 80
logging enable
inservice
!
webvpn install svc flash:/webvpn/anyconnect-win-3.1.02040-k9.pkg sequence 1
!
webvpn context C1
ssl authenticate verify all
!
policy group C1
functions file-access
functions file-browse
functions file-entry
functions svc-enabled
svc address-pool "POOL"
svc default-domain "cisco.com"
svc keep-client-installed
default-group-policy C1
aaa authentication list LIST
aaa authentication domain @C1
gateway GW domain C1 #accessed via https://IP/C1
logging enable
inservice
!
!
webvpn context C2
ssl authenticate verify all
url-list "L2"
heading "Link2"
url-text "Display2" url-value "http://2.2.2.2"
policy group C2
url-list "L2"
default-group-policy C2
aaa authentication list LIST
aaa authentication domain @C2
gateway GW domain C2 #accessed via https://IP/C2
logging enable
inservice
ip local pool POOL 7.7.7.10 7.7.7.20
この例には、2 つのコンテキストC1とC2。各コンテキストには、固有の設定を持つ独自のグループポリシーがあります。C1 では AnyConnect アクセスが許可されています。両方のコンテキストC1 と C2 があります。
次に示すように、ユーザの cisco1 が https://10.48.67.137/C1 を使用して C1 のコンテキストにアクセスすると、認証ドメインでは C1 が追加されて、ローカルで定義された(list LIST)cisco1@C1 ユーザ名と照合して認証されます。
debug webvpn aaa
debug webvpn
*May 20 16:30:07.518: WV: validated_tp : cert_username : matched_ctx :
*May 20 16:30:07.518: WV-AAA: AAA authentication request sent for user: "cisco1"
*May 20 16:30:07.518: WV: ASYNC req sent
*May 20 16:30:07.518: WV-AAA: AAA Authentication Passed!
*May 20 16:30:07.518: %SSLVPN-5-LOGIN_AUTH_PASSED: vw_ctx: C1 vw_gw: GW remote_ip:
10.61.218.146 user_name: cisco1, Authentication successful, user logged in
*May 20 16:30:07.518: WV-AAA: User "cisco1" has logged in from "10.61.218.146" to gateway "GW"
context "C1"
C1 コンテキスト(https://10.48.67.137/C1)にアクセス中に、ユーザ名として cisco2 でログインしようとすると、次の障害が報告されます。
*May 20 16:33:56.930: WV: validated_tp : cert_username : matched_ctx :
*May 20 16:33:56.930: WV-AAA: AAA authentication request sent for user: "cisco2"
*May 20 16:33:56.930: WV: ASYNC req sent
*May 20 16:33:58.930: WV-AAA: AAA Authentication Failed!
*May 20 16:33:58.930: %SSLVPN-5-LOGIN_AUTH_REJECTED: vw_ctx: C1 vw_gw: GW
remote_ip: 10.61.218.146 user_name: cisco2, Failed to authenticate user credentials
これは、ユーザの cisco2@C1 が定義されていないためです。ユーザの cisco は、どのコンテキストにもログインできません。
現在、この設定に使用できる確認手順はありません。
現在、この設定に関する特定のトラブルシューティング情報はありません。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
25-Apr-2014 |
初版 |