はじめに
このドキュメントでは、Datagram Transport Layer Security(DTLS)プロトコルを介したRADIUSの設定とトラブルシューティングについて説明します。DTLSは、RADIUSの暗号化サービスを提供します。このサービスは、安全なトンネル経由で伝送されます。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Identity Services Engine(ISE)
- RADIUS プロトコル
- Cisco IOS
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco Identity Services Engine(ISE)2.2
- IOS 16.6.1が稼働するCatalyst 3650
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
設定
コンフィギュレーション
1. ISEにネットワークデバイスを追加し、DTLSプロトコルを有効にします。
[管理(Administration)] > [ネットワーク リソース(Network Resources)] > [ネットワーク デバイス(Network Devices)] に移動します。Addをクリックし、少なくとも必須フィールドを指定します。
- Name:デバイスのフレンドリ名が追加されます。
- IP Address:オーセンティケータがISEへの接続に使用するIPアドレス。デバイスの範囲を設定できます。これを行うには、適切なマスク(32未満)を指定します。
- デバイスプロファイル:デバイスの全般設定。これにより、処理するプロトコル、認可変更(CoA)の詳細設定、およびRADIUS属性の設定を指定できます。詳細については、Administration > Network Resources > Network Device Profilesの順に選択してください。
- ネットワークデバイスグループ:デバイスタイプ、IPSec、機能、およびデバイスの場所を設定します。この設定は必須ではありません。カスタム値を選択しない場合は、デフォルト設定が使用されます。
チェックボックスRADIUS Authentication Settingsを選択し、RADIUS DTLS SettingsでチェックボックスDTLS Requiredを選択します。これにより、DTLSセキュアトンネルを介してのみ、オーセンティケータとのRADIUS通信が可能になります。Shared Secretテキストボックスがグレー表示されていることに注意してください。RADIUS DTLSの場合、この値は固定され、同じ文字列がオーセンティケータ側で設定されます。
2. DTLSポートとアイドルタイムアウトを設定します。
Administration > System > Settings > Protocols > RADIUS > RADIUS DTLSで、DTLS通信とアイドルタイムアウトに使用されるポートを設定できます。
DTLSポートはRADIUSポートとは異なることに注意してください。デフォルトでは、RADIUSはペア1645、1646、および1812、1813を使用します。認証、許可、アカウンティング(AAA)用のデフォルトのDTLSは、ポート2083を使用します。アイドルタイムアウト:ISEとオーセンティケータがトンネルを実際に通過せずにトンネルを維持する時間の長さを指定します。このタイムアウトは秒単位で測定され、60 ~ 600秒の範囲です。
3. ISE信頼ストアからDTLS RADIUS証明書の発行者をエクスポートします。
ISEとオーセンティケータ間のトンネルを確立するには、両方のエンティティで証明書を交換して確認する必要があります。オーセンティケータはISE RADIUS DTLS証明書を信頼する必要があります。つまり、オーセンティケータの発行者がオーセンティケータの信頼ストアに存在する必要があります。ISE証明書の署名者をエクスポートするには、図に示すように、Administration > System > Certificatesの順に移動します。
RADIUS DTLSロールが割り当てられている証明書を探し、この証明書のIssued Byフィールドにチェックマークを付けます。これは、ISE信頼ストアからエクスポートする必要がある証明書の共通名です。これを行うには、Administration > System > CertificatesTrusted Certificatesの順に移動します。該当する証明書の横にあるチェックボックスを選択し、[エクスポート]をクリックします。
4. トラストポイントを設定し、証明書をオーセンティケータにインポートします。
トラストポイントを設定するには、スイッチにログインして次のコマンドを実行します。
configure terminal
crypto pki trustpoint isetp
enrollment terminal
revocation-check none
exit
crypto pki authenticate isetpコマンドを使用して証明書をインポートします。証明書を受け入れるように求められたら、yesと入力します。
Switch3650(config)#crypto pki authenticate isetp
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIDWTCCAkGgAwIBAgIQL9s4RrhtWLpJjBYB5v0dtTANBgkqhkiG9w0BAQUFADA/
MRMwEQYKCZImiZPyLGQBGRYDY29tMRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTEP
MA0GA1UEAxMGTEFCIENBMB4XDTE1MDIxMjA3MzgxM1oXDTI1MDIxMjA3NDgxMlow
PzETMBEGCgmSJomT8ixkARkWA2NvbTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUx
DzANBgNVBAMTBkxBQiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMDSfJwvbJLHHJf4vDTalGjKrDI73c/y269IMZV48xpCruNhglcU8CW/T9Ysj6xk
Oogtx2vpG4XJt7KebDZ/ac1Ymjg7sPBPcnyDZCd2a1b39XakD2puE8lVi4RVkjBH
pss2fTWeuor9dzgb/kWb0YqIsgw1sRKQ2Veh1IXmuhX+wDqELHPIzgXn/DOBF0qN
vWlevrAlmBTxC04t1aPwyRk6b6ptjMeaIv2nqy8tOrldMVYKsPDj8aOrFEQ2d/wg
HDvd6C6LKRBpmAvtrqyDtinEl/CRaEFH7dZpvUSJBNuh7st3JIG8gVFstweoMmTE
zxUONQw8QrZmXDGTKgqvisECAwEAAaNRME8wCwYDVR0PBAQDAgGGMA8GA1UdEwEB
/wQFMAMBAf8wHQYDVR0OBBYEFO0TzYQ4kQ3fN6x6JzCit3/l0qoHMBAGCSsGAQQB
gjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAWbWGBeqE2u6IGdKEPhv+t/rVi
xhn7KrEyWxLkWaLsbU2ixsfTeJDCM8pxQItsj6B0Ey6A05c3YNcvW1iNpupGgc7v
9lMt4/TB6aRLVLijBPB9/p2/3SJadCe/YBaOn/vpmfBPPhxUQVPiBM9fy/Al+zsh
t66bcO3WcD8ZaKaER0oT8Pt/4GHZA0Unx+UxpcNuRRz4COArINXE0ULRfBxpIkkF
pWNjH0rlV55edOga0/r60Cg1/J9VAHh3qK2/3zXJE53N+A0h9whpG4LYgIFLB9ep
ZDim7KGsf+P3zk7SsKioGB4kqidHnm34XjlkWFnrCMQH4HC1oEymakV3Kq24
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: B33EAD49 87F18924 590616B9 C8880D9D
Fingerprint SHA1: FD729A3B B533726F F8450358 A2F7EB27 EC8A1178
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
5. スイッチの証明書をエクスポートします。
スイッチのDTLSに使用するトラストポイントと証明書を選択し、エクスポートします。
Switch3650(config)#crypto pki export TP-self-signed-721943660 pem terminal
% Self-signed CA certificate:
-----BEGIN CERTIFICATE-----
MIICKTCCAZKgAwIBAgIBATANBgkqhkiG9w0BAQUFADAwMS4wLAYDVQQDEyVJT1Mt
U2VsZi1TaWduZWQtQ2VydGlmaWNhdGUtNzIxOTQzNjYwMB4XDTE2MDQyNzExNDYw
NloXDTIwMDEwMTAwMDAwMFowMDEuMCwGA1UEAxMlSU9TLVNlbGYtU2lnbmVkLUNl
cnRpZmljYXRlLTcyMTk0MzY2MDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
xRybTGD526rPYuD2puMJu8ANcDqQnwunIERgvIWoLwBovuAu7WcRmzw1IDTDryOH
PXt1n5GcQSAOgn+9QdvKl1Z43ZkRWK5E7EGmjM/aL1287mg4/NlrWr4KMSwDQBJI
noJ52CABXUoApuiiJ8Ya4gOYeP0TmsZtxP1N+s+wqjMCAwEAAaNTMFEwDwYDVR0T
AQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSEOKlAPAHBPedwichXL+qUM+1riTAdBgNV
HQ4EFgQUhDipQDwBwT3ncInIVy/qlDPta4kwDQYJKoZIhvcNAQEFBQADgYEAlBNN
wKSS8yBuOH0/jUV7sy3Y9/oV7Z9bW8WFV9QiTQ1lZelvWMTbewozwX2LJvxobGcj
Pi+n99RIH8dBhWwoYl9GTN2LVI22GIPX12jNLqps+Mq/u2qxVm0964Sajs5OlKjQ
69XFfCVot1NA6z2eEP/69oL9x0uaJDZa+6ileh0=
-----END CERTIFICATE-----
設定されているすべてのトラストポイントを一覧表示するには、show crypto pki trustpointsコマンドを実行します。証明書がコンソールに出力されたら、証明書をファイルにコピーし、PCに保存します。
6. ISE信頼ストアにスイッチ証明書をインポートします。
ISEで、Administration > Certificates > Trusted Certificatesの順に移動し、Importをクリックします。
Browseをクリックして、スイッチの証明書を選択します。フレンドリ名(オプション)を入力し、チェックボックスをオンにします。ISE内での認証は「信頼」、クライアント認証とSyslogは「信頼」に設定します。次の図に示すように、Submitをクリックします。
7. スイッチにRADIUSを設定します。
スイッチにRADIUS設定を追加します。DTLS経由でISEと通信するようにスイッチを設定するには、次のコマンドを使用します。
radius server ISE22
address ipv4 10.48.23.86
key radius/dtls
dtls port 2083
dtls trustpoint client TP-self-signed-721943660
dtls trustpoint server isetp
その他のAAA固有の設定は、要件と設計によって異なります。次の設定を例として扱います。
aaa group server radius ISE
server name ISE22
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute 25 access-request include
aaa authentication dot1x default group ISE
aaa authorization network default group ISE
8. ISEでポリシーを設定します。
ISEで認証および認可ポリシーを設定します。この手順は、設計と要件によっても異なります。
確認
ユーザが認証できることを確認するには、スイッチでtest aaaコマンドを使用します。
Switch3650#test aaa group ISE alice Krakow123 new-code
User successfully authenticated
USER ATTRIBUTES
username 0 "alice"
Switch3650#
User successfully authenticatedというメッセージが表示されます。ISE Operations > RADIUS > LiveLogの順に移動し、該当するログの詳細を選択します(虫眼鏡のアイコンをクリック)。
レポートの右側に、ステップのリストがあります。リストの最初のステップが「RADIUSパケットが暗号化されている」であることを確認します。
また、ISEでパケットキャプチャを開始し、test aaaコマンドをもう一度実行することもできます。キャプチャを開始するには、Operations > Troubleshoot > Diagnostic Tools > General Tools > TCP Dumpの順に移動します。認証に使用するPolicy Service Nodeを選択し、Startをクリックします。
認証が終了したら、StopとDownloadをクリックします。パケットキャプチャを開くと、DTLSで暗号化されたトラフィックを確認できます。
パケット#813 - #822はDTLSハンドシェイクの一部です。ハンドシェイクが正常にネゴシエートされると、アプリケーションデータが転送されます。パケットの数は、使用される認証方式(PAP、EAP-PEAP、EAP-TLSなど)によって異なる場合があることに注意してください。各パケットの内容は暗号化されます。
すべてのデータが送信されても、トンネルはすぐには解除されません。 ISEで設定されるIdleTimeoutによって、通信が通過せずにトンネルを確立できる時間が決まります。タイマーが期限切れになり、新しいアクセス要求をISEに送信する必要がある場合、DTLSハンドシェイクが実行され、トンネルが再構築されます。
トラブルシュート
1. ISEは要求を受信しません。
デフォルトのDTLSポートは2083であることに注意してください。デフォルトのRADIUSポートは1645、1646および1812、1813です。ファイアウォールがUDP/2083トラフィックをブロックしていないことを確認します。
2. DTLSハンドシェイクが失敗する。
ISEに関する詳細レポートで、DTLSハンドシェイクが失敗したことが確認できる場合があります。
原因として、スイッチまたはISEがハンドシェイク中に送信された証明書を信頼していないことが考えられます。証明書の設定を確認します。適切な証明書がISEのRADIUS DTLSロールとスイッチのトラストポイントに割り当てられていることを確認します。