FortiGate のポリシー設定の基礎的な内容について説明します。
ポリシー設定とは
FortiGate におけるポリシー設定とは、通信の許可/拒否を制御する設定のことです。
デフォルトですべての通信を拒否する設定(暗黙のdeny)がされており、基本的には許可したい通信についての通信許可設定を追加していくことになります。
ポリシー設定は、主に送信元、送信先、サービスポートを指定することで設定します。
ステートフル・インスペクションについて
Aという端末とBという端末との間で FortiGate を挟んで双方向通信を実現したい場合、[AからBへの通信] と [BからAへの通信] の双方向の通信が許可されている必要があります。
FortiGate の一つのポリシーで設定できるのは片方向の通信についてのみのため、双方向通信を実現するためには 2 つのポリシー設定が必要となります。
ここで、FortiGate などのファイアウォールにはステートフル・インスペクションと呼ばれる機能があります。ステートフル・インスペクションが有効な場合、ある通信を許可するポリシー設定に対して、そのポリシーに該当する通信に対応する戻りの通信は自動で許可されます。このため、1 つのポリシー設定で双方向通信を実現することができます。
※通信の起点は片方に限定される点がポイントになります
ステートフル・インスペクション機能があることにより、通信を許可するポリシー設定を必要最低限にできるためセキュリティの面でメリットがあります。
大体のケースでは、LAN 側からインターネット側への必要な通信のみ許可しておいて、インターネット側から LAN 側への通信は原則として拒否するという設定がされています。
これはつまり、原則として LAN 側を起点とする通信のみ許可されるということになります。
ゾーンについて
FortiGate などのファイアウォールでは、ゾーンという概念が存在します。
FortiGate の各インターフェースを役割別に分類した際の、各役割をゾーンと呼んでいます。
以下の 3 つのゾーンに分類することが多いです。
- Trust
→ 内部ネットワーク(LAN)を示します - DMZ
→ 外部に公開されているネットワークを示します(公開サーバなどを含む部分) - Untrust
→ 外部ネットワーク(インターネット側)を示します
ポリシーの構成要素
FortiGate の GUI におけるポリシー設定画面を以下に掲載します。
なお、本記事における作業環境は以下の通りです。
- 型番:FortiGate 60E
- ファームウェアバージョン: v6.0.6 build0272 (GA)
IP アドレスとサービスの指定について
アドレスについて
ポリシー設定の送信元、宛先の設定項目では、FortiGate であらかじめ作成されているアドレスのリストの中から指定します。
アドレスは、個別の IP アドレス、サブネット、IP 範囲として作成できます。
必要に応じてポリシーを設定する前に作成しておきます。
サービスについて
ポリシー設定のサービス設定項目についても、FortiGate であらかじめ作成されているサービスのリストの中から指定します。
サービスは送信元/宛先で使用する TCP/UDP ポート番号の組み合わせです。
必要に応じてポリシーを設定する前に作成しておきます。
ポリシー設定の例
想定環境
- FortiGateについて
- 型番:FortiGate 60E
- ファームウェアバージョン: v6.0.6 build0272 (GA)
- インターフェース
- クライアント側:internal1
- インターネット側:wan1
- 要件について
- 以下の通信を許可するポリシー設定を実施する
- ポリシー名:Trust_to_Untrust_Web
- 送信元:クライアントが属するサブネット
- 宛先:インターネットすべて
- サービス:http、https
- スケジュール:always
- 以下の機能は不要
- NAT
- セキュリティプロファイル
- ログ設定はデフォルトでOK
- 以下の通信を許可するポリシー設定を実施する
ポリシー設定手順
GUI で設定する場合について説明します。
ポリシー追加画面の表示
以下の画像の通り、[ポリシー&オブジェクト]→[IPv4ポリシー]→[新規作成]と選択します。
以下の新規ポリシー画面が表示されることを確認します。
ポリシーの各項目の設定
要件に合わせて、以下の画像の通り各項目を指定します。
なお、サービスの HTTP と HTTPS はデフォルトで作成されているサービスです。
ポリシー設定の確認
ポリシー一覧画面にてポリシー設定が追加されていることを確認します。
これでクライアントからインターネットへの Web アクセスが許可されるようになりました。
CLI でのポリシー設定について
ポリシー設定に対応するコンフィグ項目は config firewall policy
です。前項の設定例の通り設定した後のコンフィグは以下の通りです。
FW01 # show firewall policy
config firewall policy
edit 1
set name "Trust_to_Untrust_Web"
set uuid 03d4e04e-de1f-51ea-5df9-2ea83329eac7
set srcintf "internal1"
set dstintf "wan1"
set srcaddr "VLAN10"
set dstaddr "all"
set action accept
set schedule "always"
set service "HTTP" "HTTPS"
set fsso disable
next
end
- edit の後の番号は、他のポリシーで使用していない 1 以上の整数とする必要があります
- uuid についてはポリシー作成時に自動で設定されるため手動での設定は不要です
備考
VLAN インターフェースとポリシー設定について
VLAN インターフェースを通る通信を許可したい場合、入力インタフェースまたは出力インターフェースには物理インターフェースではなく VLAN インターフェースを指定する必要があります。
例えば、Untrust 側の物理インターフェース wan1 に VLAN インターフェースを関連付けていて、インターネット向けの通信で当該 VLAN インターフェースを出力先とするルーティングとなっている場合、インターネット向けの通信を許可するためにはポリシーを設定する際の出力インターフェースは wan1ではなく当該 VLAN インターフェースを指定する必要があります。
ポリシーの適用順序について
拒否ポリシーを作成する場合はポリシーの適用順序について意識する必要があります。詳しくは以下の記事を参照してください。
→ FortiGate でのポリシー適用順序の変更方法について
―――――――――――――
次のステップ → FortiGate でアドレスオブジェクトを作成する手順
―――――――――――――