どうも社内ニートです。
今回は、FortiGateのfirewall policy(IPv4ポリシー)についてご紹介します。
環境
使用する機器:FortiGate60E
使用OS:FortiOS6.2.2
機器が異なる事によってインタフェース名が異なる場合があります。
OSが異なる事によってGUIの設定画面が異なる場合があります。
firewall policy(IPv4ポリシー)
FortiGateを設定する上で、一番重要となってくるのがfirewall policyです。
GUI上での表記はIPv4ポリシーとなっています。
このfirewall policyでは、
ホワイトリスト形式で設定を行いますので、許可したい通信を設定していきます。
設定しなければ通信は遮断されてしまいます。
イメージはCiscoルータのアクセスリストです。
firewall policyもアクセスリスト同様に上から順番に評価されていき、
最後に暗黙のdenyが設定されています。
FortiGateのfirewall policyの場合、
主な設定する項目としてはこちらになります。
- 送信元インタフェース
- 出力インタフェース
- 送信元アドレス
- 宛先アドレス
- 宛先ポート(プロトコル)
送信元アドレスや宛先アドレス、宛先ポートを細かく設定することもできますが、
細かく設定すればするほど、セキュリティは向上しますが、設定や管理・運用が大変になります。
一方で、送信元アドレスall(すべて)のようにすべてを許可すれば、
設定や管理・運用は楽になりますが、セキュリティ的に良くない場合もあります。
ステートフルインスペクション
firewall policyはステートフルインスペクションです。
例えばこのような構成で、firewall policyでLAN側からWAN側へICMPを許可という設定がされているとします。
PC(LAN側)からServer(WAN側)宛にpingを行なった場合、Severは届いたpingに応答します。
このServerのpingの応答は、WAN側からLAN側へICMPを許可という設定が無いのですが、
pingの応答はPCへ届きます。
ステートフルインスペクションでは、このような戻り通信は自動的に許可されるからです。
ただし、許可されるのは戻り通信のみです。
WAN側発のServerから行なったpingはFortiGateで遮断されてしまいます。
このような通信があるのであれば、WAN側からLAN側へICMPを許可という設定を別途する必要があります。
FotiGateを通過する通信に対して適用される
firewall policyはFortiGateを通過する通信に対して適用される設定です。
FortiGate宛のpingやHTTPS、SSHでのリモートアクセスといったFortiGate宛の通信や、
FortiGate発のSyslogサーバにログを投げる等の自発通信には適用されません。
設定方法
firewall policyはGUIでもCLIでも両方設定可能ですが、
圧倒的に見やすいのでGUIで設定する事をオススメします。
GUIでの設定方法
firewall policyはGUIではIPv4ポリシーと表示されます。
環境設定
firewall policyを設定していく前にまずは環境設定です。
日本語表記に変更
FortiGateのGUIはデフォルトの状態では英語表記です。
日本語に変更していきましょう。
日本語の他にもフランス語、スペイン語、ポルトガル語、中国語、韓国語に対応しています。
「Systems」→「Settings」
「Language」を【Japanese】に変更し、「Apply」を押下します
「Apply」を押下すると画面遷移が起こり、日本語表記に変更されます。
便利機能の有効化
FortiGateはデフォルトでは無効にされている機能があります。
- 複数インタフェースポリシー
- 名前なしポリシー
とても便利な機能なので、検証・練習で操作されている場合は有効化しましょう。
複数インタフェースポリシー
例えば、デフォルトではLAN1からwan1向け、LAN2からwan1向けというポリシーを別々に設定する必要があります。
【複数インターフェースポリシー】の機能を有効にする事で、
一括りにしてLAN1、LAN2からwan1と設定する事ができるようになります。
また、any(どこからでも)を選択できるようになります。
名前なしポリシー
【名前なしポリシー】を有効にする事で、
ポリシーに名前を設定する事が任意となり、いちいち名前を設定しなくてもよくなります。
この機能を有効にしてもポリシーに名前を設定する事もできます。
それでは、これらの機能を有効にしていきます。
「設定」→「表示機能設定」
「複数インターフェースポリシー」を有効
「名前なしポリシー」を有効
「Apply」を押下
firewall policyの設定
それでは、firewall policyの具体的な設定方法をご紹介します。
「ポリシー&オブジェクト」→「IPv4ポリシー」→「新規作成」
firewall policyの新規作成画面に遷移します。
名前
ポリシーに名前を設定する事ができます。
デフォルトの場合はポリシーに名前を必須で設定します。
「名前なしポリシー」を有効にしている場合は任意となります。
着信インターフェース
送信元インターフェースの事です。
黄色のボックスをクリックすると、このようにインタフェースの一覧が表示されます。
「複数インタフェースポリシー」を有効にしている場合は、
複数のインタフェースを設定する事ができますし、「any(すべてのインタフェース)」も設定する事ができます。
発信インターフェース
宛先インターフェースの事です。
こちらも同様に黄色のボックスをクリックすれば、インタフェースの一覧が表示されます。
「複数インタフェースポリシー」を有効にしている場合は、
複数のインタフェースを設定する事ができますし、「any(すべてのインタフェース)」も設定する事ができます。
送信元
送信元アドレスの事です。
黄色のボックスをクリックすれば、設定できるアドレスの一覧が表示されます。
デフォルトで複数選択する事ができます。
また、「all(すべてのアドレス)」を設定する事もできます。
話が脱線するので、詳細な解説は省略しますが、
アドレスオブジェクトを作成する事で、
「192.168.0.0/16」のような特定のアドレスを登録する事もできます。
AD連携をしていれば、ユーザ名を登録する事もできます。
また、インターネットサービスでは、
インターネットサービスデータベースというデータベースに登録されたものを登録する事もできます。
宛先
宛先アドレスの事です。
こちらも同様に黄色のボックスをクリックすれば、設定できるアドレスの一覧が表示されます。
デフォルトで複数選択する事ができます。
また、「all(すべてのアドレス)」を設定する事もできます。
サービス
プロトコルの事です。
黄色のボックスをクリックすれば、設定できるプロトコルの一覧が表示されます。
デフォルトで複数選択する事ができます。
また、「ALL(すべてのプロトコル)」を設定する事もできます。
メジャーなプロトコルは事前に定義されています。
特定のアプリケーションでしか使用されないプロトコルは別途に設定する必要があります。
アクション
ACCEPTは許可、DENYは拒否です。
インスペクションモード
インスペクションモードはUTM機能の検査の方法の事です。
FortiOS6.2系からでポリシー毎に設定するようになりました。
- フローモード
- プロキシモード
の2種類があります。
簡単に言えば、フローモードは簡易検査、プロキシモードは詳細検査です。
また、プロキシモードでないと有効にできないUTM機能もあります。
単純に考えれば詳細に検査してくるプロキシモードの方がいいのですが、
詳細に検査する分、機器の負荷が高まり少なからずスループットが低下しますので、注意が必要です。
特に今回使用しているFotiGate60Eのような下位機種の場合は、
スループット低下の影響を受けやすいので、
導入する際はスループットを計測する等の事前確認が必要です。
フローモード
簡易的な検査
スループットの低下の影響は少ない
プロキシモード
詳細な検査
スループットの低下の影響は大きい
NAT
NATと記載されていますが、ここを有効にしただけではNAPTの動作となります。
1対1NATを行う場合は別途設定が必要となります。
NAT・NAPTが必要ない場合は無効にしてください。
IPプール設定
NAT変換後のIPアドレスの事です。
基本的には「発信インタフェースのアドレスを使用」で問題ないのですが、
「ダイナミックIPプールを使う」はユーザ数が多い環境で、NAPTで1IPの1024-65535のポートが枯渇するような場合は
グローバルIP8個タイプのインターネット回線のIPをプールとして設定する事ができます。
セキュリティプロファイル
UTM機能の事です。
有効にしたい機能だけを選択して有効にします。
- アンチウイルス
- Webフィルタ
- DNSフィルタ
- アプリケーションコントロール
- SSLインスペクション
各機能の詳細な説明は省略しますが、
こちらも有効にする事で機器の負荷が高まりスループットの低下の原因となります。
使用しない昨日は無効にすることと、有効にする場合は事前のスループット確認をオススメします。
許可トラフィックをログ
トラフィックのログを取得する設定です。
取得する場合は
- セキュリティイベント
- すべてのトラフィック
の2種類から選択します。
ログの量は「すべてのトラフィック」の方が多いです。
ストレージを搭載しているFortiGateやSyslog連携している場合は、
保存できるログの量に注意してロギング方法を選択してください。
セキュリティイベント
例えば、Webフィルタを有効にしている場合、
Webフィルタで許可された、拒否されたトラフィックをロギングします。
逆に言えば、pingやFTPといったHTTP・HTTPS通信に関しては一切ロギングされません。
「すべてのトラフィック」と比較して、ログ量は少ないです。
すべてのトラフィック
こちらの設定であればHTTP・HTTPSもpingやFTPすべてがロギングされます。
「セキュリティイベント」を比較して、ログ量は多いです。
ポリシーの有効化
設定したポリシーを有効にできます。
無効にする事でポリシーが機能しなくなります。
ポリシーを削除しなくても無効にする事で、ポリシーが機能しなくなるので、
トラブルシューティングの切り分けの際に役立ちます。
firewall policyの順番変更
FortiGateのfirewall policyは上から順に評価されていきます。
新しく作成されたポリシーは既存のポリシーの一番下に追加されていきます。
新しく作成したポリシーを一番目に移動させたい場合等の、
ポリシーの順番変更にはドラッグ&ドロップが便利です。
さいごに
今回はFortiGateのfirewall policyについてご紹介しました。
FortiGateを導入される場合は、設定しないことがないくらい重要な機能なので正しく理解しましょう。