Microsoft NPSのDIY MABライブラリ

最近、ますます多くの企業がネットワークセキュリティを真剣に考え始めています。 組織内のローカルネットワークへのアクセス制御など、特に注意が払われます。 セキュリティポリシーで、有線および無線ネットワークに接続されているすべてのデバイスが認証に合格する必要があることは珍しくありません(サーバールームで物理的に隔離されている機器は考慮しません)。



ネットワークエンジニアとして、私はこのすべてを実現する任務を負っていました。 会社にはさまざまな規模の10を超えるオフィスがあり、そのネットワークの数は1〜30のCisco Catalystアクセスレベルスイッチであるとすぐに言わなければなりません。 これまで、ほぼすべてのオフィスで、Microsoftネットワークポリシーサーバー(NPS)は、ワイヤレスクライアントを認証するためのRADIUSサーバーとして既に提起されてきました。



WANチャネルの信頼性が低いためにCisco ISE / ACSなどの集中型RADIUSサーバーのオプションがなくなり、他の製品を購入する手段がなかったため、タスクを実行するために使用する必要があるのはこれらのNPSのすべてでした。



問題をより詳細に検討してください。



1)認証する必要があります:



2)一部のデバイスは異なるフロア(たとえば、ビデオ会議デバイス)を「移動」できるため、認証された各デバイスに動的にvlanを割り当てる必要があります。 この場合、電話はタグ付けされた音声VLAN、およびデータVLAN内の残りのデバイスに分類されます。



802.1xを使用して、インストールされた証明書を使用してワークステーションを認証することが決定されました。 NPSで簡単に実装できます。 ネットワークポリシーを作成し、条件として認証タイプ= EAP(実際には、証明書を使用してサプリカントと認証サーバー間のセキュアチャネルが作成されるEAP-TLS)、NASポートタイプ=イーサネット(有線接続用)またはワイヤレス(ワイヤレス用)を選択します)



忠実にするために、コンピューターをドメイングループに追加できます。 標準RADIUS属性はVLANの割り当てに使用されますが、ベンダー固有の属性も使用できます。これについては後で説明します。



他のデバイスについては、802.1xのサポートが不足しているため、MAB(MACアドレス認証バイパス)を適用する必要があります。 MABでは、スイッチはサプリカントとして機能し、接続されたデバイスのMACアドレスに関する情報をRADIUSサーバーに送信します。 Cisco Catalystスイッチは、802.1xのフォールバック方法としてMABをサポートします(スイッチがクライアントからEAPoL応答を受信しなかった場合)。



NPSでは、ActiveDirectoryへのバインドのみでMABを実装できます。 つまり デバイスごとに、ADにオブジェクトを設定する必要がありますが、これはカテゴリに当てはまりませんでした。 NPSをMABの通常のサポートに「仕上げる」ことが決定されました。 幸いなことに、Microsoftは拡張ライブラリをNPSに接続する機能を提供しており、これを利用しました。



たくさんのケチなMicrosoftテクニカルドキュメント、RADIUSのRFC標準の説明、およびインターネットで見つかったいくつかの例を収集し、それらに私の限られたプログラミング知識を追加して、2か月後に肯定的な結果を得ました。



ライブラリはNPSで起動され、新しいリクエストごとに呼び出されるRadiusExtensionProcess2メソッドを実装します。 私のアルゴリズムは、RADIUSサーバーへの要求をチェックし、MABと一致するため、Calling-Station-ID(クライアントMACアドレス)属性とユーザー名属性を比較します。 もちろん、他の属性によってMABを識別することもできましたが、この方法を選択しました。



このリクエストがMABであることを確認したら、クライアントアドレスをMACアドレスのベースで確認する必要があります。 すべてのアドレスはさまざまなプロファイル(データ、音声、プリンターなど)に添付され、それぞれに異なる形式のRADIUS応答が設定されます。



私はシスコの機器を扱っていたため、ベンダー固有の属性(VSA)-AV-PairをRADIUS応答に追加することにしました。 これを使用すると、スイッチにクライアントをデータ/音声VLANに配置させることができます(正直なところ、プログラムを正しく動作させることができなかったため、ここでは標準のRADIUS属性も使用しませんでした)。



例1:クライアントをVLAN 2に配置します:



トンネルタイプ= VLAN

トンネル媒体タイプ= ALL_802

tunnel-private-group-id = 2



例2:このポートで構成された音声VLANにクライアントを配置します。



デバイストラフィッククラス=音声



スイッチポートで設定されたデータVLANにクライアントを配置する必要がある場合、VSAを追加する必要はありません。 ResponseCode = AccessAcceptを送信するだけです。



ライブラリは、NPSがその条件をクライアント設定と一致させるためにすべてのネットワークポリシーをチェックした後にアクセスされるため、ワイヤレスの既存の古いポリシーはMABの実装後でも正常に機能します。



NPSには、接続要求ポリシーとネットワークポリシーという2つのポリシーグループが含まれていることを完全に忘れていました。 先ほど、2番目だけに言及しました。 最初のルールでは、RADIUSサーバーへのすべての要求が該当するルールを1つ作成するだけで十分です。 たとえば、条件として、00:00から24:00までの時間を設定します。 まあ、またはこれがあなたに合わない場合、正規表現構文を使用して、NAS IPv4アドレスパラメータでネットワークデバイスのすべての可能なアドレスを指定できます。



ライブラリに戻ります。 ポピーアドレスのデータベースを管理するために、さまざまなタイプのデバイスのプロファイルを作成し、それらをデータベースのポピーアドレスに関連付けることができるグラフィカルインターフェイスを備えた簡単なプログラムを作成しました。 次のようになります。



画像



802.1xおよびMAB用のスイッチの構成について多くのことが書かれていますが、とにかく例を挙げます。



AAAニューモデル

AAA認証dot1xデフォルトグループ半径

AAA認証ネットワークのデフォルトグループ半径

dot1xシステム認証制御

radius-server host <server address> key <key>(または新しいIOSのサーバーグループ経由で同じ)



インターフェイス範囲<アクセスポート>

スイッチポートモードアクセス

スイッチポート音声VLAN(必要な場合)

認証ポート制御自動

認証ホストモードマルチドメイン

dot1x paeオーセンティケーター

マブ



ライブラリと管理プログラムのテストバージョンは、 ここからダウンロードできます



今、私はそれを積極的にテストし、並行して、異なるオフィスからの複数のRADIUSサーバーを組み合わせ、それらの間でデータを同期し、メインDBMSと友達になり、デバイスのMACアドレスを自動的にインポートするWebインターフェースを介した中央制御を備えた新しいより深刻なバージョンを開発しています企業在庫ツールから。 次の投稿で新しいプロジェクトについてお伝えしたいと思います。



All Articles