【Fortigate】SSLインスペクション(deep-inspection)設定と動作確認 FortiOS6.2.4

現在のWeb通信の大半がhttps:// で始まるURLであり、SSLで暗号化されています。通信自体のセキュリティは確保されますが、FW等でアプリケーション制御やUTM(アンチウイルスなど)を実行する場合、データが暗号化されていることより、制御に支障をきたします。

そのため、制御装置を経由するときに、一旦、通信データを復号化し、データを確認後、再暗号化する機能が実装されています。FortigateではSSLインスペクションdeep-inspection)と呼ばれます。

スポンサーリンク

SSLインスペクションを使用しない場合の動作

内部から外部へすべての通信をポリシー許可し、SSLインスペクションを無効化(デフォルト動作)にします。

GUIで【ポリシー&オブジェクト】-【ファイアウォールポリシー】-【新規作成】より以下の通り設定します。

端末からGoogleへアクセスし、トラフィックログを確認します。トラフィックログは、【ログ&レポート】-【転送トラフィック】で確認します。

IPアドレスの宛先はGoogleのグローバルアドレスであることが確認できます。サービスとしてHTTPS通信であることはわかりますが、アプリケーションなど、それ以上の情報はわかりません。

スポンサーリンク

SSLインスペクションを設定し、アプリケーションを可視化

内部→外部で設定したポリシーにて、SSLインスペクションを deep-inspection にして、アプリケーションコントロールを有効にします。

端末からGoogleへアクセスすると、ブラウザーで証明書のエラーが出力されます。

サーバ証明書を確認すると、発行者がFortigate(図はデフォルトで割り当てたホスト名)であり、 発行者のルート証明書がインストールされていないことがわかります。

このエラーは、端末に、Fortigateのルート証明書をインポートすることで解決します。

GUIで、【セキュリティプロファイル】-【SSL/SSHインスペクション】へ移動し、deep-inspection をダブルクリックします。

以下、CA証明書より、ルート証明書をダウンロードできます。ダウンロードをクリックします。

ダウンロードした証明書を「信頼されたルート証明機関」へインポート後、Googleへアクセスすると、証明書エラーが出力されなくなります。

ブラウザで証明書を確認すると、Fortigate自身が www.google.co.jp に対してのサーバ証明書を生成していることがわかります。また、サーバ証明書と先ほどインストールしたルート証明書がチェーンされていることも確認できます。

トラフィックログを確認すると、Googleへのアクセスに対して、アプリケーション名Google.Serviceが表示されています。これは、SSLインスペクションによりデータ通信を復号した後、UTMの一つであるアプリケーションコントロール機能によりアプリケーションを識別しています。

【ログ&レポート】-【アプリケーションコントロール】では、アプリケーションコントロールに特化したログが出力されます。

>> 参考記事 : 【初心者】公開鍵暗号、認証局、デジタル署名をイメージで解説

ルート証明書のイメージが難しい方は参照してください。

 

>> 参考記事 : SSLインスペクション除外の設定 FortiOS6.2.4

SSLインスペクションから除外する接続先を設定するには、この記事を参考にしてください。

>> 参考記事 : SSLインスペクション(certificate-inspection)設定と動作確認 FortiOS6.2.4

deep-inspectionでは、データを復号化しましたが、別の方式として、証明書インスペクションcertificate-inspection)という方式もあります。

>> 参考記事 : SSL復号化(SSL Forward Proxy)の設定と動作確認

PaloaltoでSSL復号化するには、この記事を参考にしてください。

コメント

  1. anonymous より:

    ビルトイン証明書は機器交換時にコンフィグでレストアできないとこは注意必要ですね