本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate における、「ゾーン」を使用したファイアウォールポリシーの設定方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
想定するシナリオ
以下の図のように、FortiGate の internal1 の先にネットワークセグメント①が、internal2 の先にネットワークセグメント②が存在し、それぞれのセグメントから FortiGate の wan1 の先にある外部ネットワークに対して通信を行います。
このとき、セグメント①とセグメント②それぞれの外部ネットワークへの通信要件は全く同じだとします。
FortiGate でどのようなファイアウォールポリシーを設定する必要があるかを考えます。
単純に考えると、以下の2種類のポリシーが必要となります。
- セグメント①から外部ネットワークへの通信を許可するポリシー(着信インターフェースが internal1)
- セグメント②から外部ネットワークへの通信を許可するポリシー(着信インターフェースが internal2)
しかしこのような設計にした場合、通信要件の変更がある度に上記①②の2種類のポリシーを設定する必要があり、管理工数が大きくなります。
「ゾーン」を使用してインターフェースをグループ化する
ここで FortiGate の「ゾーン」機能を使用することを考えます。
ゾーンは複数のインターフェースをまとめてグループ化する機能です。
ファイアウォールポリシー設定の「着信インターフェース」にてゾーンを指定できるため、複数のインターフェースに対するポリシー設定を一つのポリシー設定のみで実現することができます。
ここでは internal1 と internal2 をゾーンでグループ化することとします。
ゾーンを使用する場合の注意点
ゾーンを使用する場合以下の点に注意してください。
- インターフェースをゾーンに所属させると、ファイアウォールポリシー設定やアドレスオブジェクト設定等のインターフェース指定項目にてそのインターフェースを指定できなくなります。インターフェースの代わりにゾーンを指定することになります
- 同じゾーンに所属するインターフェース間の通信の制御方法について考慮する必要があります
- 後述する「ゾーン内トラフィックをブロック」設定をどうするか、など
- インターフェース間で通信要件の共通点が少ない場合はゾーンを設定しない方が良いということもあり得ます
ゾーンの作成方法
GUI でゾーンを作成する方法
GUI にログインし左側のメニューから「ネットワーク > インタフェース」をクリックします。
インターフェース画面にて左上の「新規作成 > ゾーン」をクリックします。
ゾーン設定画面で各項目を設定します。
- 「名前」には任意のゾーン名を入力します
- 「ゾーン内トラフィックをブロック」を有効にするとゾーン内のインターフェース間での通信が原則ブロックされ、必要な場合はファイアウォールポリシーを設定することになります。無効にするとゾーン内のインターフェース間での通信がファイアウォールポリシー無しで許可されます
- 「インターフェースメンバー」ではゾーンに所属させるインターフェースを指定します
- 必要な場合は「コメント」を入力します
以上の設定ができたら「OK」をクリックして設定を確定します。
インターフェース画面にて「ゾーン」項目が表示され、設定したゾーンが追加されていることを確認します。
以上でゾーンの作成は完了です。
CLI でゾーンを作成する方法
CLI でゾーンの設定をする場合はconfig system zone
にて行います。
ゾーンのコンフィグは以下のようにedit
項目で表され、一つのedit
項目が一つのゾーンに対応します。
config system zone
edit "internal"
set description ''
set intrazone deny
set interface "internal1" "internal2"
next
end
設定項目については以下の通りです。
GUI 設定項目 | CLI 設定項目 | デフォルト値 (CLI) |
---|---|---|
名前 | edit の ID 値 | ー |
ゾーン内トラフィックをブロック | intrazone | deny |
インターフェースメンバー | interface | |
コメント | description | ー |
注意点として、GUI での「ゾーン内トラフィックをブロック」は CLI での「intrazone」に対応しますが、以下のように意味合いが逆になっています。
- GUI ではゾーン内トラフィックを「ブロックするかどうか」
- CLI ではゾーン内トラフィックを「許可するかどうか」
GUI での設定 | CLI での設定 |
---|---|
ゾーン内トラフィックをブロックが有効 | set intrazone deny |
ゾーン内トラフィックをブロックが無効 | set intrazone allow |
インターフェースメンバーについては、値として複数のインターフェースを半角スペース区切りで指定します。
config system zone
edit "internal"
set interface "internal1" "internal2"
next
end
ゾーンを使用したファイアウォールポリシー設定例
以下の想定構成について、ネットワークセグメント①②から外部ネットワークへの通信を許可するポリシーを設定します。
アドレスオブジェクトの作成
まずファイアウォールポリシー設定で使用するアドレスオブジェクトを作成します。
ポイントは以下のようにインターフェースとして作成したゾーンを指定することです。
「インターフェース」の選択肢にゾーンに所属しているインターフェースは表示されません。ゾーンに所属しているインターフェースは「インターフェース」項目で設定できないことがわかります。
ネットワークセグメント②のアドレスオブジェクトも同様に作成します。
必要な場合は2つのアドレスオブジェクトをアドレスグループとしてグループ化することもできます。
サービスオブジェクトの作成
サービスオブジェクトは通信要件に合わせて必要なサービスを作成してください。
ここではデフォルトで存在する適当なサービスを使用することとします。
ファイアウォールポリシーの設定
ネットワークセグメント①②から外部ネットワークへの通信を許可するポリシーを設定します。
ポイントは「着信インターフェース」で作成したゾーンを指定することです。また「送信元」ではネットワークセグメント①とネットワークセグメント②の両方のアドレスオブジェクトを指定します。例では2つのアドレスオブジェクトをまとめたアドレスグループで指定しています。宛先・サービスには通信要件に合わせた宛先・サービスを指定してください。
FortiGate 60F の OS バージョン 7.4.3 では「着信インターフェース」の選択肢にゾーンに所属しているインターフェースが表示されましたが、このインターフェースを選択するとエラーとなりポリシーが設定できません。表示上のバグと推測されます。
個別のインターフェースを指定して設定しようとすると以下のエラーメッセージが表示されます。
入力した値が正しくありません。
FortiGate GUI 画面より
Node_check_object fail! for name internal1.
Value parse error before ‘internal1’.
以上のようにファイアウォールポリシーを設定することで、ネットワークセグメント①(internal1 側)とネットワークセグメント②(internal2)側の両方から外部ネットワークへの通信を許可することができます。
ゾーン内トラフィックを許可するポリシーの設定方法
ゾーンの設定で「ゾーン内トラフィックをブロック」を有効にしている場合で、特定のゾーン内トラフィックを許可したい場合はファイアウォールポリシーを設定する必要があります。
例として以下の構成でネットワークセグメント②からネットワークセグメント①への通信を許可することを考えます。
設定するファイアウォールポリシーの内容は以下のようになります。
- 「着信インターフェース」と「発信インターフェース」ではいずれも対象のゾーンを指定します
- 「送信元」では送信元であるネットワークセグメント②のアドレスオブジェクトを指定します
- 「宛先」では宛先であるネットワークセグメント①のアドレスオブジェクトを指定します
- 「サービス」では通信要件に合わせたサービスを指定します
ファイアウォールポリシー設定後、ファイアウォールポリシー画面では以下のように「internal → internal」のポリシーとして表示されます。
このようにファイアウォールポリシーを設定することにより「ゾーン内トラフィックをブロック」を有効にしている場合でもゾーン内のインターフェース間で通信をすることができるようになります。
以上です。
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- Tips
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント