概要
このドキュメントでは、LinuxおよびIdentity Services Engine(ISE)のファイルポスチャポリシーを設定および実装する手順について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- AnyConnect
- Identity Services Engine(ISE)
- Linux
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Anyconnect 4.10.05085
- ISEバージョン3.1 P1
- Linux Ubuntu 20.04
- CiscoスイッチCatalyst 3650。バージョン03.07.05.E(15.12(3)E5)
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
ISEでの設定
ステップ1:ポスチャサービスを更新します。
[Work Centers] > [Posture] > [Settings] > [Software Updates] > [Posture Updates]に移動します。[今すぐ更新(Update now)]を選択し、プロセスが終了するまで待ちます。
シスコが提供するパッケージは、Cisco.comサイトからダウンロードするソフトウェアパッケージ(AnyConnectソフトウェアパッケージなど)です。customer-created packageは、ISEユーザインターフェイスの外部で作成し、ポスチャアセスメントで使用するためにISEにアップロードするプロファイルまたは設定です。この演習では、AnyConnect webdeployパッケージ「anyconnect-linux64-4.10.05085-webdeploy-k9.pkg」をダウンロードできます。
注:アップデートやパッチにより、推奨バージョンが変更される可能性があります。cisco.comサイトにある最新の推奨バージョンを使用します。
ステップ2:AnyConnectパッケージをアップロードします。
ポスチャワークセンターから、[Client Provisioning] > [Resources] に移動します。
ステップ3:[Add] > [Agent Resources from Local Disk]を選択します。
ステップ4:[Category]ドロップダウンから[Cisco Provided Packages] を選択します。
ステップ 5:[Browse] をクリックします。
ステップ6:前のステップでダウンロードしたAnyConnectパッケージのいずれかを選択します。AnyConnectイメージが処理され、パッケージに関する情報が表示されます
ステップ 7:[Submit] をクリックします。AnyConnectがISEにアップロードされたので、ISEに連絡してCisco.comから他のクライアントリソースを取得できます。
注:エージェントリソースには、アンチウイルス、アンチスパイウェア、アンチマルウェア、ファイアウォール、ディスク暗号化、ファイルなどのさまざまな条件チェックについてエンドポイントのコンプライアンスを評価する機能を提供するAnyConnectクライアントで使用されるモジュールが含まれます。
ステップ8:[Add] > [Agent Resources from Cisco Site] をクリックします。ISEがCisco.comに到達し、クライアントプロビジョニング用に公開されたすべてのリソースのマニフェストを取得するため、ウィンドウにデータが入力されるまで1分かかります。
ステップ9:Linux用の最新のAnyConnectコンプライアンスモジュールを選択します。また、WindowsとMacのコンプライアンスモジュールを選択することもできます。
ステップ10:WindowsおよびMac用の最新のテンポラルエージェントを選択します。
ステップ11:[Save] をクリックします。
注:MACおよびWindowsポスチャの設定は、この設定ガイドの範囲外です。
この時点で、必要な部品をすべてアップロードして更新しています。次に、これらのコンポーネントを使用するために必要な設定とプロファイルを作成します。
ステップ12:[Add] > [NAC Agent]または[AnyConnect Posture Profile]をクリックします。
変更する必要があるパラメータは次のとおりです。
- VLAN検出間隔:この設定では、VLANの変更をプローブする間にモジュールが待機する秒数を設定できます。推奨値は5秒です。
- PingまたはARP:これは実際のVLAN変更検出方法です。エージェントは、デフォルトゲートウェイにpingを実行するか、デフォルトゲートウェイのエントリのARPキャッシュを監視してタイムアウトまたは両方にすることができます。推奨される設定はARPです。
- 修復タイマー:エンドポイントのポスチャが不明な場合、エンドポイントはポスチャアセスメントフローを通過します。失敗したポスチャチェックの修復には時間がかかります。デフォルトでは、エンドポイントが非準拠としてマークされるまでの時間は4分ですが、値の範囲は1 ~ 300分(5時間)です。 推奨は15分です。ただし、修復に時間がかかる場合は、調整が必要になることがあります。
注:Linuxファイルポスチャは自動修復をサポートしていません。
すべてのパラメータの包括的な説明については、ISEまたはAnyConnectポスチャドキュメントを参照してください。
ステップ13:[Agent Behavior] [Posture probes] [Backup List]を選択し、[Choose] を選択して[PSN/Standalone FQDN]を選択し、[Save] を選択します
ステップ14:[Posture Protocols] > [Discovery Host]で、PSN/スタンドアロンノードのIPアドレスを定義します。
ステップ15:[Discovery backup server] リストから[Select] を選択し、PSNまたはスタンドアロンFQDNを選択して[Select] を選択します。
ステップ16:[Server name rules] で*と入力してすべてのサーバに接続し、call homeリストでPSN/スタンドアロンIPアドレスを定義します。または、ネットワーク内のすべての潜在的なPSNを照合するためにワイルドカードを使用できます(*.acme.com)。
ステップ17:[Add] > [AnyConnect Configuration] をクリックします。
下にスクロールして[Submit]を選択します
ステップ18:選択を終了したら、[Submit] をクリックします。
ステップ19:[Work Centers] > [Posture] > [Client Provisioning] > [Client Provisioning Portals] を選択します。
ステップ20:[Portal Settings] セクションで、インターフェイスとポートを選択し、ページ[Select Employee]、[SISE_Users]、および[Domain Users]に対して権限のあるグループを選択します。
ステップ21:[Log in Page Settings] で、[Enable auto Log In]オプションが有効になっていることを確認します
ステップ22:右上隅の[Save]を選択します
ステップ23:[Work Centers] > [Posture] > [Client Provisioning] > [Client Provisioning Policy] を選択します。
ステップ24:[CPP] のIOSルールの横にある下向き矢印をクリックし、[Duplicate Above] を選択します。
ステップ25:ルールにLinuxPostureという名前を付けます
ステップ26:[Results] で、エージェントとして[AnyConnect Configuration] を選択します。
注:この場合、AnyConnect設定の一部として設定されているため、コンプライアンスモジュールのドロップダウンは表示されません。
ステップ27:[Done] をクリックします。
ステップ28:[Save] をクリックします。
ポスチャ ポリシー要素
ステップ29:[Work Centers] > [Posture] > [Policy Elements] > [Conditions] > [File] を選択します。[Add] を選択します。
ステップ30:ファイル条件名としてTESTFileを定義し、次の値を定義します
注:パスはファイルの場所に基づきます。
ステップ31:[Save] を選択します。
FileExistence。このファイルタイプの条件は、想定されるシステムにファイルが存在するかどうかを確認します。これだけです。このオプションを選択すると、ファイルの日付やハッシュなどを検証する必要がなくなります
ステップ32:[Requirements] を選択し、次のように新しいポリシーを作成します。
注:Linuxでは、修復アクションとしてメッセージテキストのみをサポートしていません
要件コンポーネント
- オペレーティング システム:Linuxすべて
- コンプライアンス モジュール:4.(x)
- ポスチャタイプ:AnyConnect
- 条件:コンプライアンスモジュールとエージェント(OSを選択すると使用可能)
- 修復アクション:他のすべての条件を選択した後に選択可能になる是正。
ステップ33:[Work Centers] > [Posture] > [Posture Policy] を選択します。
ステップ34:任意のポリシーで[Edit] を選択し、[Insert New policy]を選択します。名前としてLinuxPosturePolicy Policyを定義し、ステップ32で作成した要件を追加します。
ステップ35:[Done] を選択し、[Save] を選択します。
その他の重要なポスチャ設定([ポスチャ一般設定(Posture General Settings)]セクション)
[Posture General Settings]セクションの重要な設定は次のとおりです。
- 修復タイマー:この設定は、クライアントが失敗したポスチャ状態を修正する必要がある時間を定義します。AnyConnect設定には修復タイマーもあります。このタイマーはAnyConnectではなくISE用です。
- デフォルトのポスチャステータス:この設定は、ポスチャエージェントがないデバイス、またはLinuxベースのオペレーティングシステムなどのテンポラルエージェントを実行できないオペレーティングシステムのポスチャステータスを提供します。
- 継続的な監視の間隔:この設定は、エンドポイントのインベントリを取得するアプリケーションとハードウェアの条件に適用されます。この設定は、AnyConnectがモニタリングデータを送信する頻度を指定します。
- ステルスモードでのアクセプタブルユースポリシー:この設定の選択肢は、ブロックまたは続行の2つだけです。ブロックは、AUPが確認応答されない場合に、ステルスモードのAnyConnectクライアントが処理を続行するのを防ぎます。Continueを使用すると、AUPの確認応答がなくてもステルスモードクライアントを続行できます(これは、AnyConnectのステルスモード設定を使用する場合に意図されていることがよくあります)。
再評価の設定
ポスチャ再評価は、ポスチャワークフローの重要なコンポーネントです。「ポスチャプロトコル」セクションで、ポスチャ再評価のためのAnyConnectエージェントの設定方法を説明しました。エージェントは、その設定のタイマーに基づいて定義されたPSNで定期的にチェックインします。
要求がPSNに到達すると、PSNはそのエンドポイントのロールのISE設定に基づいて、ポスチャ再評価が必要かどうかを判断します。クライアントが再評価に合格すると、PSNはエンドポイントのポスチャ準拠状態を維持し、ポスチャリースがリセットされます。エンドポイントが再評価に失敗すると、ポスチャステータスは非準拠に変わり、存在していたポスチャリースが削除されます。
ステップ36:[Policy] > [Policy Elements] > [Results] > [Authorization] > [Authorization Profile] を選択します。[Add] を選択します
ステップ37:認可プロファイルとしてWired_Redirectを定義し、次のパラメータを設定します
ステップ38:[Save]を選択します
ステップ 39:認証ポリシーの設定
ポスチャには、事前設定された3つの認可ルールがあります。
- 1つ目は、認証が成功したときに一致するように設定され、デバイスのコンプライアンスは不明です。
- 2番目のルールは、非準拠のエンドポイントとの正常な認証に一致します。
注:最初の2つのルールは両方とも同じ結果になります。つまり、エンドポイントをクライアントプロビジョニングポータルにリダイレクトする事前設定された認可プロファイルを使用します。
- 最後のルールは、正常な認証とポスチャ準拠のエンドポイントに一致し、事前に作成されたPermitAccess認可プロファイルを使用します。
Policy > Policy Setの順に選択し、前のラボで作成したWired 802.1x - MABの右矢印を選択します。
ステップ40:[Authorization Policy] を選択し、次のルールを作成します
スイッチの設定
注:次の設定はIBNS 1.0を示しています。IBNS 2.0対応スイッチには違いがある場合があります。これには、影響の少ないモードの導入が含まれます。
username <admin> privilege 15 secret <password>
aaa new-model
!
aaa group server radius RAD_ISE_GRP
server name <isepsnnode_1>
server name
!
aaa authentication dot1x default group RAD_ISE_GRP
aaa authorization network default group RAD_ISE_GRP
aaa accounting update periodic 5
aaa accounting dot1x default start-stop group RAD_ISE_GRP
aaa accounting dot1x default start-stop group RAD_ISE_GRP
!
aaa server radius dynamic-author
client server-key
client server-key
!
aaa session-id common
!
authentication critical recovery delay 1000
access-session template monitor
epm logging
!
dot1x system-auth-control
dot1x critical eapol
!
# For Access Interfaces:
interface range GigabitEthernetx/y/z - zz
description VOICE-and-Data
switchport access vlan
switchport mode access
switchport voice vlan
ip access-group ACL_DEFAULT in
authentication control-direction in # If supported
authentication event fail action next-method
authentication host-mode multi-auth
authentication open
authentication order dot1x mab
authentication priority dot1x mab
authentication port-control auto
# Enables preiodic re-auth, default = 3,600secs
authentication periodic
# Configures re-auth and inactive timers to be sent by the server
authentication timer reauthenticate server
authentication timer inactivity server
authentication violation restrict
mab
snmp trap mac-notification change added
snmp trap mac-notification change removed
dot1x pae authenticator
dot1x timeout tx-period 10
dot1x timeout server-timeout 10
dot1x max-req 3
dot1x max-reauth-req 3
auto qos trust
# BEGIN - Dead Server Actions -
authentication event server dead action authorize vlan
authentication event server dead action authorize voice
authentication event server alive action reinitialize
# END - Dead Server Actions -
spanning-tree portfast
!
# ACL_DEFAULT #
! This ACL can be customized to your needs, this is the very basic access allowed prior
! to authentication/authorization. Normally ICMP, Domain Controller, DHCP and ISE
! http/https/8443 is included. Can be tailored to your needs.
!
ip access-list extended ACL_DEFAULT
permit udp any eq bootpc any eq bootps
permit udp any any eq domain
permit icmp any any
permit udp any any eq tftp
permit ip any host
permit ip any host
permit tcp any host eq www
permit tcp any host eq 443
permit tcp any host eq 8443
permit tcp any host eq www
permit tcp any host eq 443
permit tcp any host eq 8443
!
# END-OF ACL_DEFAULT #
!
# ACL_REDIRECT #
! This ACL can be customized to your needs, this ACL defines what is not redirected
! (with deny statement) to the ISE. This ACL is used for captive web portal,
! client provisioning, posture remediation, and so on.
!
ip access-list extended ACL_REDIRECT_AV
remark Configure deny ip any host to allow access to
deny udp any any eq domain
deny tcp any any eq domain
deny udp any eq bootps any
deny udp any any eq bootpc
deny udp any eq bootpc any
remark deny redirection for ISE CPP/Agent Discovery
deny tcp any host eq 8443
deny tcp any host eq 8905
deny udp any host eq 8905
deny tcp any host eq 8909
deny udp any host eq 8909
deny tcp any host eq 8443
deny tcp any host eq 8905
deny udp any host eq 8905
deny tcp any host eq 8909
deny udp any host eq 8909
remark deny redirection for remediation AV servers
deny ip any host
deny ip any host
remark deny redireciton for remediation Patching servers
deny ip any host
remark redirect any http/https
permit tcp any any eq www
permit tcp any any eq 443
!
# END-OF ACL-REDIRECT #
!
ip radius source-interface
!
radius-server attribute 6 on-for-login-auth
radius-server attribute 6 support-multiple
radius-server attribute 8 include-in-access-req
radius-server attribute 55 include-in-acct-req
radius-server attribute 55 access-request include
radius-server attribute 25 access-request include
radius-server attribute 31 mac format ietf upper-case
radius-server attribute 31 send nas-port-detail
radius-server vsa send accounting
radius-server vsa send authentication
radius-server dead-criteria time 30 tries 3
!
ip http server
ip http secure-server
ip http active-session-modules none
ip http secure-active-session-modules none
!
radius server
address ipv4 auth-port 1812 acct-port 1813
timeout 10
retransmit 3
key
!
radius server
address ipv4 auth-port 1812 acct-port 1813
timeout 10
retransmit 3
key
!
aaa group server radius RAD_ISE_GRP
server name
server name
!
mac address-table notification change
mac address-table notification mac-move
確認
ISEの検証:
このセクションでは、ISEポスチャモジュールを使用するAnyConnectがLinuxシステムにすでにインストールされていることを前提としています。
dot1xを使用したPCの認証
ステップ1:[Network Settings]に移動します。
ステップ2:[Security]タブを選択し、802.1x設定とユーザクレデンシャルを入力します
ステップ3:[Apply]をクリックします。
ステップ4:Linuxシステムを802.1x有線ネットワークに接続し、ISEライブログで検証します。
ISEでは、水平スクロールバーを使用して、フローを処理したPSNやポスチャステータスなどの追加情報を表示します。
ステップ5:Linuxクライアントでリダイレクションを実行する必要があり、ポスチャチェックが発生したことを示すクライアントプロビジョニングポータルが表示され、[Start]をクリックします。
コネクタがAnyConnectの検出を試行する間、数秒待ちます。
既知の警告により、AnyConnectがインストールされていても検出されません。AnyConnectクライアントに切り替えるには、Alt-Tabキーまたは[Activities] メニューを使用します。
AnyConnectは、ポスチャポリシーのためにPSNに到達し、それに対してエンドポイントを評価しようとします。
AnyConnectは、ポスチャポリシーの決定をISEに報告します。この場合、準拠
一方、ファイルが存在しない場合、AnyConnectポスチャモジュールは決定をISEに報告します
注:ISE FQDNは、LinuxシステムでDNSまたはローカルホストファイルを介して解決できる必要があります。
トラブルシュート
show authentication sessions int fa1/0/35
リダイレクトする場所:
Authorization succeeded:
非準拠、隔離VLANおよびACLに移動: