- 限定コンテンツへのアクセス
- 他ユーザーとのつながり
- あなたの体験を共有
- サポート情報の発見
セキュリティ的な視点では各種セキュリティログやトラフィックログの送信元はIPアドレスが基本です。しかし、WiFiなど含めDHCPが普及しているため、長期間に渡る「特定の端末」としてログの調査は困難です。また、感染している可能性のある端末をネットワークに接続されても気づく事も困難です。
ここではDHCP環境でもクライアントのMACアドレスをキーにトラフィックの可視化やログ分析ができる仕組みをご紹介します。技術的なポイントはDHCPサーバーのIPアドレスの払い出しをトリガーにしてPAN-OSのユーザIDと連携させることです。
まず、PAN-OSには以下のような機能があります。
これらの機能を利用することで、DHCP環境においても簡単にMACアドレスによる各種ログの可視化や制御が可能になります。もうお分かりになられたかもしれませんが、今回はUser-IDの機能を利用しますが、ユーザIDにMACアドレスを利用します。そうすることで例えばトラフィックログに下記のように「送信元ユーザ」のフィールドにクライアントのMACアドレス情報が表示されるようになります。
ここでご紹介している仕組みの具体的な動作は下記のようになります。
①クライアントがDHCP要求
②DHCPサーバーからIPアドレスが払い出される
③DHCPサーバーからSyslogがPAシリーズに送信される
④IPアドレスとユーザID(今回はMACアドレス)のマッピングエントリが生成される
⑤クライアントからの通信発生
⑥PAシリーズはトラフィックの送信元IPに該当するユーザIDのマッピングを参照(この動作をするためには送信元ゾーンにてUser-ID機能を有効化させておく必要があります)
⑦送信元IPアドレスに該当するユーザIDのマッピングエントリからユーザIDを確認し、FWルールを評価。(該当するマッピングエントリがない場合には送信元ユーザを"unknown"としてポリシー設定可能)
⑧該当する許可ルールがあれば、セッション確立
⑨セッションログの「送信元ユーザ」にユーザID(=MACアドレス)を書き込む
syslog連携などで生成されたユーザIDのマッピングテーブルはタイマー制御が可能ですので、指定した時間が経過すればエントリは自動的に削除されます。一般的にDHCPのリース時間よりも長くしておけば、端末が接続されていれば再リース時にマッピングテーブルのエントリタイマーもリフレッシュされますので、問題にはなりません。また、万が一他の端末がDHCPで同じIPアドレスを取得してしまった場合、マッピングエントリがあっても上書きされます。この方式の最大の懸念点は、悪意を持って、他の端末でDHCPで取得したIPアドレスを悪用して通信した場合、ログ的にはDHCPでIPアドレスを取得したユーザID(=MACアドレス)の通信としてログに記録されることです。それを防ぐためには、WiFiやLANスイッチなどで、DHCPで取得されたIPアドレス以外の端末からの通信を遮断する機能などを併用する必要があります。
では、この仕組みを利用するための、User-IDにマッピングさせる設定方法について説明します。
まず、必須ではないですが、PAのDHCPサーバー機能を利用する場合の設定です。
その後、PA自身の管理IPアドレスをSyslogサーバーとして登録します。
DHCPにてIPアドレスの払い出し時にシステムログをSyslog送出するように設定します。
Syslogの送出をデータ用のインターフェースに設定します。(デフォルト設定では、Syslog送出とSyslog Listenerの両方が管理インターフェースとなっており、PA自身にSyslog送出ができないため、Syslog送出を別インターフェースに変更が必要です)
※DHCPサーバーがLinuxでdhcpdを利用している場合には、dhcpd.confとrsyslog.confに、以下のような設定を追加することで、IPアドレスの払い出し時にsyslog送出可能です。(例ではfacilityとしてlocal7を使用しています。192.168.55.10がSyslog送出先のIPアドレスです)
以下が、Syslogメッセージを受信してユーザIDにマッピングするための設定となります。
1. User-IDのユーザマッピングの設定
Syslog解析プロファイルを設定。設定箇所が少し見つけづらいですが、「ユーザマッピング」タブの「Palo Alto Networks User-IDエージェントの設定」の歯車マークをクリックすると「Syslogのフィルター」タブが表示されます。PAN-OSのDHCPのデフォルトのSyslogメッセージは以下になります。
2020/03/31 22:20:14,015351000030002,SYSTEM,dhcp,0,2020/03/31 22:20:14,,lease-start,,0,0,general,informational,"DHCP lease started ip 192.168.45.110 --> mac 00:0c:29:13:55:3b - hostname Windows10, interface ethernet1/2",33719,0x0,0,0,0,0,,PA-VM-1
このSyslogメッセージから、以下のようなSyslog解析プロファイルを設定することで動作します。
イベントの正規表現:lease-start
ユーザ名の正規表現:mac ([0-9a-z:]+)
アドレスの正規表現:ip ([0-9.]+) -->
別のDHCPサーバーを利用する場合には、そのサーバーのSyslogメッセージ用の正規表現を設定してください。
2.サーバーモニタリングの設定
サーバーモニタリングに、Syslogを送出してくるサーバーを指定します。この説明ではPA自身がSyslog送出しますので、PAのSyslog送出するインターフェースのIPアドレスを指定し、先ほど登録したSyslog解析プロファイルを指定します。
3. User-ID機能の有効化
最後に、User-ID機能を利用するゾーンにて、User-ID機能を有効化する設定を行います。これを忘れると、ログの送信元ユーザにユーザIDが表示されず、あれ?となるケースがありますので、忘れずに設定してください。
以上で、設定は終わりです。トラフィックログなどの「送信元ユーザ」にMACアドレスが表示されればユーザIDのマッピング設定は成功です。その後、送信元ユーザにMACアドレスを指定したセキュリティルールを設定することでアクセス制御が可能となります。
今回ご紹介させていただいた制御方法により、従来「MACアドレス認証」や「MACアドレスフィルター」という技術は、クライアントが接続されているL2スイッチなどで使う技術で、通信を許可するか禁止するというのが主流でした。しかし、今回ご紹介したユーザIDにMACアドレスをマッピングする方法で、インターネットGWなどパロアルトネットワークスの次世代ファイアウォールを通過する箇所でポリシーベースでアクセス制御が可能となります。BYODや持ち込み端末を許容し、DHCP環境を利用しているネットワーク環境ではセキュリティ対策やユーザのネットワーク利用把握には有効な手法になります。一度試してみてはいかがでしょうか?
さらに、MACアドレスベースでアクセス制御する場合、MACアドレス情報がLDAPサーバーでグループ属性があれば、LDAPサーバーとのグループマッピングを利用することで、グループベースでのアクセス制御も可能です。