シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

IOSルータでAnyConnect(SSL接続)を利用する

1. 目的

Cisco VPN Clientのサポート終了(2014/7/29)で、IOSルータへのRemote access VPNの接続手段変更を検討されている方も多くいらっしゃると思います。

また、IOS 15.3(3)MからSSLライセンスが廃止され、SecurityライセンスのみでAnyConnectが利用可能となりました。AnyConnectを使ってみたかったけれども、SSLライセンスが必要だったために利用されていなかった方も、ぜひお試しいただければと思います。

 

2. 検証環境

Router: CISCO892J

IOS:15.3(3)M

以下のネットワークを前提としています。

3. 設定

■サーバ証明書の設定

AnyConnectの接続には、IOSルータをSSLサーバとして検証するためのサーバ証明書が必要となります。
デフォルトでは自己署名証明書が自動的に設定されますが、この証明書はEKUの属性を持たない証明書であるため、現在のAnyConnectの要求事項(EKUにServer Authを含む)に合致しないためにエラーが発生します。

このため、以下の資料を参照の上、サーバ証明書を設定します。

IOSルータでサーバ証明書を作成する

自前でCA局を運用されていたり、公的なCA局から証明書を入手されるという場合には、その証明書をインポートしてTrustpointを作成してください。

 

■ユーザー認証関連の設定

今回の例では、AnyConnectのクライアント認証に、ローカル認証を利用します。

Router(config)#aaa new-model
Router(config)#aaa authentication login AL_ANYCON local
Router(config)#username actest1 password cisco123

 

■IP address poolの設定

接続したAnyConnectに対して割り当てるアドレスプールを設定します。

Router(config)#ip local pool AP_ANYCON 192.168.0.200 192.168.0.210

 

■AnyConnectパッケージファイルの設定

FlashにAnyConnectのイメージを予め転送しておきます。

Router(config)#crypto vpn anyconnect flash:/anyconnect-win-3.1.06073-k9.pkg sequence 1
SSLVPN Package SSL-VPN-Client (seq:1): installed successfully


■webvpn gatewayの設定

サーバ証明書のTrustpointは前述の資料中の例で作成されたものです(ssl trustpointコマンドの箇所)。
別途サーバ証明書をお持ちの場合には、その証明書をインポートしたTrustpointを指定します。

Router(config)#webvpn gateway WG_ANYCON
% Generating 1024 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 0 seconds)

Router(config-webvpn-gateway)#ip address 1.178.100.128 port 443
Router(config-webvpn-gateway)#ssl trustpoint TP_SERVER_CERT
Router(config-webvpn-gateway)#inservice

 

■webvpn contextの設定

Router(config-webvpn-gateway)#webvpn context WC_ANYCON
Router(config-webvpn-context)# aaa authentication list AL_ANYCON
Router(config-webvpn-context)# gateway WG_ANYCON
Router(config-webvpn-context)# ssl authenticate verify all
Router(config-webvpn-context)# inservice
Router(config-webvpn-context)# policy group PG_ANYCON
Router(config-webvpn-group)#   functions svc-enabled
Router(config-webvpn-group)#   svc keep-client-installed
Router(config-webvpn-group)#   svc dpd-interval gateway 30
Router(config-webvpn-group)#   svc keepalive 300

 

この例では、前述したIPアドレスプールの設定で指定した、192.168.0.200-210のアドレスがAnyConnectに割り当てられます。また、Split-tunnelの設定として、AnyConnectからみて192.168.0.0/24に対する通信のみがVPN通信の対象となります。

Router(config-webvpn-group)#   svc address-pool "AP_ANYCON" netmask 255.255.255.0
Router(config-webvpn-group)#   svc split include 192.168.0.0 255.255.255.0

 

AnyConnectの仮想アダプタに割り当てられるパラメータを指定します。環境に合わせて変更してください。

Router(config-webvpn-group)#   svc default-domain "company.com"
Router(config-webvpn-group)#   svc dns-server primary 192.168.0.10
Router(config-webvpn-group)#   svc dns-server secondary 192.168.0.11
Router(config-webvpn-group)#   svc wins-server primary 192.168.0.10
Router(config-webvpn-group)#   svc wins-server secondary 192.168.0.11

 

DefaultのGroup-policyを指定します。

Router(config-webvpn-group)# default-group-policy PG_ANYCON

 

4. WebLaunch

AnyConnectはWebLaunchという機能があり、AnyConnectがインストールされていない端末から接続を行いたい場合に、ブラウザ経由でインストールを行い接続を完了させることができます。

HTTPSで対象のルータへアクセスします。

 

Application AccessのStartボタンをクリック

 

IEでProtected ModeがOffであれば、以下のようにインストールが始まります。

 

インストールが完了すると、自動的にVPNの接続が開始されます。

初回接続時には、以下のダイアログが表示され、信頼していない証明書が提示されてきているという警告が表示されます。
”Always trust this VPN server and import the certificate"というチェックボックスをチェックして接続すると、自動的にサーバ証明書がPCの証明書ストアに保存されます。
この操作の後は証明書を信頼した事になり、このダイアログは出力されなくなります。

 

ユーザ名とパスワードを入力すると、接続が完了します。

このあと、接続を終了してもAnyConnectのアプリケーションはそのまま残りますので、アプリケーションから直接接続を行うことが可能です。

 

コメント
New Member

はじめまして。

ほぼ同一の環境でSSLVPNを利用しておりましたが、クライアント証明書の導入に伴いルータ側を調整したところ、クライアントPC(Windows7)にインストールされたクライアント証明書が1つだけのものは正常に接続でき、2つ以上あるものは接続できなくなりました。

ログを調べると、複数ある証明書の中で正しくない別のクライアント証明書を見ているようです。

これに対する対処方法をいろいろ調べておりますが、ASAによる手順は多く見受けられますが892等のルーターによる事例が少なく困っていました。

まずはASDMが使えない為AnyConnect Profile Editorを使ってみましたが、XMLファイルをクライアントPCに保存しても、接続の度に書き換わってしまい、自動選択を無効にする設定等の検証も上手く行きません。

このあたりの情報を何かお持ちでしたらご教授いただけないでしょうか。

環境は以下の通りです。

ルーター Cisco 892J IOS 15.1

接続するリモートPC:Windows7Pro

SSLクライアント:AnyConnect Secure Mobility Client  3.1.05187

 

何かヒントになるような情報だけでも結構です。

 

よろしくお願いいたします。

Cisco Employee

こんにちは。

AnyConnectのクライアントプロファイルは、Secure gateway (今回の場合にはIOSルータ) からPushされる仕様になります。

このため、PC毎に異なるプロファイルを持つというようなことができません。

作成されたプロファイルを、"svc profile"コマンドでグループポリシーに適用することで、そのプロファイルが利用可能になりますので、こちらをお試しください。

以下の資料が参考になるかと思います。

Support for AnyConnect Client to Implement Certificate Matching Based on Client Profile Attributes

 

New Member

返信いただきありがとうございます。

ご紹介いただいた手順にて試してみたところ、複数の証明書を持つクライアントがアクセスするとその時点でAnyConnect側がVPN:Connection attempt has failed. となり、事前に証明書を選択する画面になりません。

一方、正しい証明書のみのクライアントはそのまま認証が通ります。

それぞれのAnyConnect でStatisticsの値を見ると、認証が通った方は作成したプロファイルが適用されているようなのですが、認証が通らない方はStatisticsを見てもプロファイルが適用されていないように見受けられます。

プロファイルの作成で何か足りない点があるのかもしれませんが、お気づきになる点はございますでしょうか。

また、この現象から想定すると、一旦は証明書なしで、ルーター側にセットしたプロファイルを読ませる必要があるようにも思うのですが、プロファイルが適用されるタイミングというのはAnyConnectがルーターにSSL-VPNでアクセスした際、証明書やユーザー認証以前に行われるものなのでしょうか。

ご質問ばかりで恐縮ですが、コメントいただければ幸いです。

何卒よろしくお願いいたします。

New Member

昨日ご質問した件ですが、改めてSSL VPN Configuration Guide, Cisco IOS Release 15M&Tを参照したところ

Certificate Authentication
Client certificate authentication is not supported. Only username and password authentication is supported.

との記載がございました。

現状では正しいクライアント証明書のみがインストールされていれば動作しているのでサポートされているものと思いましたが、複数の証明書に対応していないなど、検証結果からみても機能的に不足していると判断いたしました。

もし、サポートされていないけど動作するといった有益な情報がございましたらご案内いただけると助かります。

何卒よろしくお願いいたします。

Cisco Employee

ご参照いただいているページは、内容から致しますとClientless-SSLVPNに関する内容のようです。
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_conn_sslvpn/configuration/15-mt/sec-conn-sslvpn-15-mt-book/sec-conn-sslvpn-remote.html#GUID-E246FA21-8BDB-4DAF-B43F-3657E32B72F8

Certificate matchingを利用して、VPNの認証対象の証明書の特徴 (Distinguished nameでIssuerやOUなどを利用する) を指定し、その証明書を選択させるようなProfileとすると目的の証明書を自動的に選択してくれる様になると思います。

http://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect31/administration/guide/anyconnectadmin31/apxAvpnxmlref.html#pgfId-1182201

 

New Member

ご連絡ありがとうございます。

ご指摘の通りClientless-SSLVPNの流れの中で説明されているものになりますね。

Certificate matchingの指定に問題があるように思いますので確認してみたいと思います。

ありがとうございました。

New Member

AnyConnectパッケージファイルの設定は、何のために実施するのでしょうか。

こちらを参考に設定してますが、pkgファイルが無く、手順を飛ばしているのですが、iOSから接続できるのですが、Windwosからは接続できません。

やはり、pkgファイルの設定が必要なのでしょうか?

Cisco Employee

pkgファイルには接続に必要な情報が含まれており、Windows, Mac, Linuxから接続する際はpkgファイルを指定しないと接続できません。

AnyConnect4.xを利用する場合には、ライセンスを購入頂く必要がありますのでその旨ご留意ください。(Apple iOSやAndroidなどのモバイル版はライセンスが必須となります)

https://supportforums.cisco.com/ja/document/12391866

AnyConnect 3.1を利用する場合にはライセンスは不要ですので、PCで利用する場合にはこちらを利用することもご検討ください。(ただし、AnyConnect 3.xはソフトウェアメンテナンスは終了しており、サポートも2018年3月31日で終了となります)

New Member

返答ありがとうございます。

12月に、ライセンスと一緒に892Jを購入しておりますが、販社がよく理解していないみたいで、AnyConnetctのファイルを送ってくれたのですが、pkgファイルは存在しませんでした。

そこで、pkgファイルが無くても問題ないのかなと思い、試行錯誤しておりましたが、こちらで原因がわかり、pkgファイルを入手するしかないという事がわかりました。

そもそも、Ciscoのサイトでのダウンロードができるはずなのですが、どうも必要情報が不足しているようで、できず困っておりました。

再度、販社に問い合わせてみます。

8566
閲覧回数
5
いいね!
9
コメント