概要
このドキュメントでは、Identity Services Engine(ISE)管理アクセスの外部2要素認証を設定するために必要な手順について説明します。この例では、ISE管理者がRADIUSトークンサーバに対して認証を行い、プッシュ通知の形式の追加認証がDuo Authentication Proxyサーバによって管理者のモバイルデバイスに送信されます。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- RADIUS プロトコル
- ISE RADIUSトークンサーバとIDの設定
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Identity Services Engine(ISE)
- Active Directory(AD)
- Duo認証プロキシサーバ
- Duo Cloud Service
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ネットワーク図
コンフィギュレーション
Duo設定
ステップ1:WindowsまたはLinuxマシンでのDuo認証プロキシサーバのダウンロードとインストール:https://duo.com/docs/ciscoise-radius#install-the-duo-authentication-proxy
注:このマシンは、ISEおよびDuoクラウド(インターネット)にアクセスできる必要があります
ステップ2:authproxy.cfgファイルを設定します。
このファイルをメモ帳++やワードパッドなどのテキストエディタで開きます。
注:デフォルトの場所はC:\Program Files (x86)\Duo Security Authentication Proxy\conf\authproxy.cfg
ステップ 3 Duo Admin Panelで「Cisco ISE RADIUS」アプリケーションを作成します。https://duo.com/docs/ciscoise-radius#first-steps
ステップ4:authproxy.cfgファイルを編集し、この設定を追加します。
ikey= xxxxxxxxxxxxxxxxxxxxxxxxxx
skey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
api_host=api-xxxxxxxx.duosecurity.com
radius_ip_1=10.127.196.189 Sample IP address of the ISE server
radius_secret_1=******
failmode=secure
client=ad_client
port=1812
ステップ5:ad_clientをActive Directoryの詳細で設定します。Duo認証プロキシは、プライマリ認証に対してADに対して認証するために次の情報を使用します。
[ad_client]
host=10.127.196.230 Sample IP address of the Active Directory
service_account_username=< AD-username >
service_account_password=< AD-password >
search_dn=CN=Users,DC=gce,DC=iselab,DC=local
注:ネットワークでインターネットアクセスにHTTPプロキシ接続が必要な場合は、authproxy.cfgにhttp_proxyの詳細を追加します。
ステップ6: Duo Security Authentication Proxy Serviceを再起動します。ファイルを保存し、Windowsマシン上でDuoサービスを再起動します。Windowsサービスコンソール(services.msc)を開き、サービスのリストでDuo Security Authentication Proxy Serviceを見つけ、図に示すようにRestartをクリックします。
ステップ7:ユーザ名を作成し、エンドデバイスでDuo Mobileをアクティブにします。https://duo.com/docs/administration-users#creating-users-manually
Duo Admin Panelでユーザを追加します。図に示すように、[Users] > [add users]に移動します。
エンドユーザにDuoアプリが電話機にインストールされていることを確認します。
図に示すように[Activate Duo Mobile]を選択します。
図に示すように、[Generate Duo Mobile Activation Code]を選択します。
図に示すように、[Send Instructions by SMS]を選択します。
SMS内のリンクをクリックすると、Duoアプリは次の図に示すように、[Device Info]セクションのユーザアカウントにリンクされます。
ISE の設定
ステップ1:ISEとDuo認証プロキシを統合します。
[Administration] > [Identity Management] > [External Identity Sources] > [RADIUS Token]に移動し、[Add]をクリックして新しいRADIUSトークンサーバを追加します。図に示すように、[general]タブでサーバ名、[IP address]タブで共有キーを定義します。
注:ユーザがプッシュで動作するのに十分な時間を確保できるように、[Server Timeout]を60秒に設定します
ステップ2:図に示すように、[Administration] > [System] > [Admin Access] > [Authentication] > [Authentication Method]に移動し、以前に設定したRADIUSトークンサーバを[Identity Source]として選択します。
ステップ3:図に示すように、[Administration] > [System] > [Admin Access] > [Administrators] > [Admin Users]に移動し、管理ユーザを[External]として作成し、スーパー管理者権限を付与します。
確認
ここでは、設定が正常に機能しているかどうかを確認します。
ISE GUIを開き、[ID Source]として[RADIUS Token Server]を選択し、adminユーザでログインします。
トラブルシュート
ここでは、設定のトラブルシューティングに使用できる情報を示します。
クラウドまたはActive DirectoryとのDuoプロキシ接続に関連する問題をトラブルシューティングするには、authproxy.cfgのメインセクションに「debug=true」を追加して、Duo認証プロキシのデバッグを有効にします。
ログは次の場所にあります。
C:\Program Files (x86)\Duo Security Authentication Proxy\log
メモ帳++やWordPadなど、テキストエディタでauthproxy.logファイルを開きます。
ISEから要求を受信してDuo Cloudに送信するDuo Auth Proxyのログスニペット。
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Sending request from 10.127.196.189 to radius_server_auto
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Received new request id 2 from ('10.127.196.189', 62001)
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] (('10.127.196.189', 62001), duoadmin, 2): login attempt for username u'duoadmin'
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Sending AD authentication request for 'duoadmin' to '10.127.196.230'
2019-08-19T04:59:27-0700 [duoauthproxy.modules.ad_client._ADAuthClientFactory#info] Starting factory
Duo Auth ProxyのログスニペットがDuo Cloudに到達できません。
2019-08-19T04:59:27-0700 [duoauthproxy.modules.ad_client._ADAuthClientFactory#info] Stopping factory
2019-08-19T04:59:37-0700 [-] Duo preauth call failed
Traceback (most recent call last):
File "twisted\internet\defer.pyc", line 654, in _runCallbacks
File "twisted\internet\defer.pyc", line 1475, in gotResult
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\radius\duo_server.pyc", line 111, in preauth
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\duo_async.pyc", line 246, in preauth
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\duo_async.pyc", line 202, in call
File "twisted\internet\defer.pyc", line 654, in _runCallbacks
File "duoauthproxy\lib\duo_async.pyc", line 186, in err_func
duoauthproxy.lib.duo_async.DuoAPIFailOpenError: API Request Failed: DNSLookupError('api-xxxxxxxx.duosecurity.com',)
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Failmode Secure - Denied Duo login on preauth failure
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Returning response code 3: AccessReject
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Sending response
関連情報