FortiGateの設計/設定ガイド

FortiGateの設計・設定方法を詳しく書いたサイトです。 FortiGateの基本機能であるFW(ファイアウォール)、IPsec、SSL‐VPN(リモートアクセス)だけでなく、次世代FWとしての機能、セキュリティ機能(アンチウイルス、Webフィルタリング、SPAM対策)、さらにはHA,可視化、レポート設定までも記載します。初期化方法やバージョンアップなどの管理面も書いています。標的型攻撃を守るためのゲートウェイとしても導入されることが多いので、セキュリティ機能に関しては充実した記載を心がけます。

ログ関連

1.ログの取得

1.1 ログについて

FortiGateは、セキュリティ製品ですので、セキュリティに関するログが重要になります。また、FortiGateそのもののログも出力されます。

❶セキュリティのポリシーのログ

「ポリシー&オブジェクト」のところで、ポリシーにおいて、「ロギングオプション」があります。デフォルトでは、「許可トラフィックをログ」の「セキュリティイベント」になっています。これは、許可ログもすべて取得しては、ログが莫大になるからです。

1
ここの設定で、「すべてのセッション」を選ぶことも可能です。これを選ぶと、上部にあるセキュリティプロファイルで選択した、AVやWebフィルタのログも取得します。
2

先ほどの画面で、「セッション開始時にログを生成」は、デフォルトはOFFです。SYNパケットが発生した時点でログを取得します。なので、3Wayハンドシェークに失敗したものも、ログとして取得できます。

❷筐体に関するログ

・セキュリティ設定やらポリシーに関するものではなく、筐体に関するイベントのログに関してです。
・ログレベルとしてemergency,alert,critical,error,warning,notification,information,debugがあります。それぞれのレベルを付与してログが出力されます。
・デフォルトでは、すべてのログレベルが出力されます。
・出力するログのレベルを変更する方法は、CLIのみです。set severityコマンドで変更できます。

1.2 ログをみてみよう

・ポリシーにて、ログを「すべて」にすると、pingやHTTP通信などもすべてログが取られます。そのログは転送トラフィックでみることができます。
・フィルタができます。たとえば、pingでフィルタをするには、アプリケーション名でpingにする。その他、送信元IPアドレスなど、各種条件でフィルタが可能。ただ、キーワード「ICMP」みたいなのはうまくいかなかった気がする。

・ログの表示項目を増やすには、項目あたりを右クリックすると編集が可能になる。

1.3 ログが表示されない場合

内部にログをためて、GUIで見ると、ログが正確に出ない場合がある。きちんとログを見たいのであれば、Syslogサーバなどに転送するほうがいいだろう。
・GUIだと、表示されるログの上限が決まっていた気がする
・単なる転送ログだと、通常トラフィックは表示されない場合があるだろう。 severityのレベルをnotificationに変更しよう。 ※この点は上にも書いています。
FortiGateを勉強する女性SE (10)


なんだかよくわからないです
順に整理しよう。
・ポリシーにおいて、「許可トラフィックをログ」を「すべてのセッション」にする。
・ログは「ログ&レポート」>「転送トラフィック」に表示される。

ただし、60クラスの小さいものは、メモリが小さいので、デフォルトではログが取得されない。なぜかというと、severity(厳格さ)の設定が原因である。初期設定を見てみよう

FGT60D # show full-configuration log memory filter ←showコマンドで確認
config log memory filter
    set severity warning ←結果表示:warinigになっている
    set forward-traffic enable
    ・・・・

そこで、設定変更をする
FGT60D # config log memory filter ←該当の階層に移動
FGT60D (filter) # set severity information ←severity(厳格さ)をinformationまたはnotificationに変更
FGT60D (filter) # end
FGT60D # 
 ※saveなどの明示的な保存は不要。自動で保存される。

・システムログには、トラフィックがあふれてこれ以上セキュリティチェックをしないなどのログも表示される。

1.4 ログの消し方(ログの消去)

コマンドラインでしかできないと思う。
execute log delete-all 

1.5 ログの設定(Syslogサーバへ転送)

・ログの設定は「ログ&レポート」の「ログ設定」から行います。
・ログの出力先は「ローカルログ」の「ディスク」がデフォルトです。
・Syslogに転送するには、ログ設定 > グローバル設定 > ログ設定 のSyslogロギングを「有効」にする。
 そして、SyslogサーバのIPアドレスを入れる。デフォルトではUDP514番でログを送る

1.6 FortiAnalyzerへ転送

以下を参照ください。
https://www.viva-fortigate.com/archives/analyzer

1.7 Splunkへ転送

FortiGateのログを分析するには、Splunkにて、Fortinet FortiGate Add-On for Splunkをインポートする。
https://splunkbase.splunk.com/app/2846#/overview
するとログインが求められる。

2.検知後のアクション

2.1 アラートの設定

アラートメールを送る方法には、「ログ > レポート」から設定する方法1と、「セキュリティファブリック > オートメーション」から設定する方法2の2種類があります。

【方法1】「ログ&レポート>Eメールアラート設定」からの設定

「ログ&レポート」より「Eメールアラート設定」を選択します。

【方法2】イベントメッセージからアラートメールを設定する場合

①「セキュリティファブリック>オートメーション」から「+新規作成」をクリックします。
②「新規オートメーションステッチ」の画面で、適宜名前を入力し、トリガーの中から「イベントログ」を選択します。
イベントログのアイコン下に表示されるイベント項目の「 + 」をクリックします。
③画面右に「エントリを選択」が表示され、複数のイベントメッセージから項目を選択できます。

FortiGateを勉強する女性SE (はてな) 

どう使い分けるのですか?
大きな違いの一つとして、前者は、機器単体、後者は複数機器にまたがったアラート設定ができることがあります。
ですから、FortiGateが複数ある場合はセキュリティファブリックからの設定になります。

また、前者の「E-メールアラート」は、機器単体が安定稼働しているかを判断する管理(Disk超過や設定変更、HAステータス等)、セキュリティ(AV、IPSの検知)が主です。
そして、通知内容は決められており、特定のイベントを追加することはできません。できるのは、セベリティレベルの変更だけです。

2.2 オートメーション

セキュリティファブリック > オートメーション にて、ログを検知して何らかのアクションができる。

項目 内容
ステッチ トリガーとアクションの組み合わせ
トリガー どういう条件か。たとえば、イベントログでIFがダウンした
アクション どういう行動をするのか、メールで通知をするのか、IPをブロックするのかなど

順番に設定していく。
アクションでは、FortiSwithやFortiApなどがあれば、アクセスレイヤ(ポートベース)でのブロックが可能。
IP禁止のアクションは、それらの機器がなくてもIPアドレス単位でブロックが可能。
また、アクションは複数の実施が可能
ただ、新OSの操作はもう少し調査が必要。
以下は6.02の場合の操作。こちらの方が操作はしやすかった。

SSLインスペクション

1. SSLインスペクションの概要

(1)HTTPSのサイトのURLフィルタリングは可能?

最近はほとんどのWebサイトはSSL/TLS通信です。
URL情報は、HTTPのデータ部分に入っています。なので、SSL通信では、IPアドレスなどのIPヘッダではフィルタができますが、URLでのフィルタができません。
このページも参照ください。
通信が暗号化されているので、URLフィルタリングに限らず、その通信経路上にあるUTMでは、セキュリティチェックができません。
たとえば、マルウェアのファイルが送られて来たり、攻撃コードが含まれていても、暗号化されて検知できないのです。
そこで、SSLインスペクションです。

(2)SSLインスペクションの動作概要

ここに詳しく記載しています。

(3)SSLインスペクションの方式

・インスペクションには、証明書インスペクション(Certificate Inspection)と、フルインスペクション(deep-inspection)があります。
・証明書インスペクションは、利用者のPCに証明書を入れなくていいので、導入のハードルが下がります。ただ、証明書(Certificate)ベースのインスペクションが機能するのは、WEBフィルタ、アプリケーションコントロールのみ。それ以外のAntiVirus、IPS、アンチスパムは、フルインスペクションが必要である。
・以下に違いを整理する。

項目 証明書インスペクション
(Certificate Inspection)
フルインスペクション
(deep-inspection)
検査箇所 FQDNだけ 暗号化されたパケットの
中身もチェック
検査できるURL FQDNまで URLも含む
PCへのルート証明書
インストール
不要 必要

2. SSLインスペクションの設定

今回は単純なやり方で、ポリシーにSSLインスペクションを設定します。

2.1 設定の有効化

設定は簡単で、「ポリシー&オブジェクト」>「IPv4ポリシー」で、該当するポリシーにて「certificate-inspection」または「deep-inspection」を有効にします。
①セキュリティプロファイルの部分の鉛筆のようなマークをクリック
forti
②「deep-inspection」を選択します。
ssl_inspection2
設定を有効にした画面です。
また、今回はwebサイトにアクセスしたい際のURLフィルタでフルインスペクションをします。よって、「Webフィルタプロファイル」も「defalut」でいいので有効にしておきます。
deep-inspection
③ポリシーにおけるモード
フローモードとプロキシモードがありますが、プロキシモードにしておきましょう。ブラウザに依存するようですが、Chromeの場合、フローモードではSSLインスペクションがうまく動作しません。

設定は以上です。

2.2 ルート証明書をPCにインストール

(1)実際に動作させてみましょう。
SSL/TSL(つまりHTTPS)を使っている銀行のオンラインバンキングのページや、Googleなどのサイトにアクセスしてみましょう。
ブラウザによってメッセージが異なりますが、IEの場合は以下のような警告メッセージが出ます。
eroor

(2)証明書を入れます。
FortiGateのルート証明書をまずは取得しましょう。
①FortiGateの画面から証明書を取得
a)SSLインスペクションを設定したポリシーのところで、マウスを合わせます。「確認」ボタンを押します。
deep
b)または、セキュリティプロファイル > SSL/SSHインスペクション どれかのプロファイルを選択し、「確認」を押す
c)証明書をダウンロードします。
ssl_cert
②証明書のインストール。
a)これをダブルクリックして証明書をインストール開始
b)中略
c)証明書の場所は、明示的に「信頼されたルート証明機関」を選択しておきましょう。

d)セキュリティ警告が出ますが、「はい」でインストール

③インストールされた証明書の確認
a)Windowsの場合、検索窓で「証明書」と入れ、「ユーザ証明書の管理」を起動。または、Windowsのコマンドプロンプトで、certmgr.mscを実行
b)certmgrが起動します。
c)「信頼されたルート証明機関」の「証明書」の中から、FGTで始まる証明書がインストールされていると思います。

これで、証明書エラーが出なくなります。

3.トラブル

・SSLインスペクションがうまくいかないことがよくある
ブラウザに依存したりもするけど、SSLのバージョンが古かったりすると機能しない場合もあるので、3や4にしたほうがいいかも。
https://t21help.nikkei.co.jp/oshirase/2021/09/20210929-1.html
・フローモードとプロキシモードがありますが、プロキシモードにしておきましょう。ブラウザに依存するようですが、Chromeの場合、フローモードではSSLインスペクションがうまく動作しません。
・備忘であるが、自宅でテストしただけなので詳しい調査はしていない。deepインスペクションを有効にしてから、メールの通信がエラーになった。メールはTLS通信をしているが、SSL証明書が検証できなかったとか、そんな理由だと思われる。