FortiGateでアドレスオブジェクトを設定する目的・方法をご紹介します。
画像がぼやけてしまっていて見づらい場合は、画像をクリックすると拡大表示されます。
必要に応じてご利用ください。
アドレスオブジェクトとは
アドレスオブジェクトはその名の通り、IPアドレスを定義することができます。
定義したアドレスオブジェクトを用いて、アクセスコントロールリスト(ACL)のように、
送信先IPアドレス・宛先IPアドレスで制限(許可・拒否)することができます。
例としては、
人事部のサーバには人事部からしかアクセスできないように設定することができます。
アドレスオブジェクトは奥が深い
アドレスオブジェクトを設定すること自体は簡単なのですが、
簡単だからこそ奥が深い設定となっています。
奥が深いと考える理由は2点あります。
- 通信できる・できないに直結する設定
- 運用・管理の問題
アドレスオブジェクトの設定、適用自体は非常に簡単なのですが、
アクセスできるアクセスできないに直結する非常に重要な設定でもあります。
人為的なミスを招きやすい設定なので、
Diffツールを使用したり、ダブルチェックをするなど、
重点的に確認を実施することをおすすめします。
また、アドレスオブジェクトの数が増えてくることで、
運用や管理することが難しく(めんどうに)なってきます。
大規模ネットワークやお客様のセキュリティポリシーなどで、
アドレスオブジェクトを多数設定する必要がある場合は、
命名規則を決めることやパラメータシートで管理するなど、
設定前に運用管理方法・方針を決めておくことが重要になります。
アドレスオブジェクトの設定方法
アドレスオブジェクトはGUIとCLIの両方で設定することができます。
双方メリット・デメリットがありますので、よくご理解頂いた上で、
自分が行おうとする設定に合う方法で実施いただければと思います。
アドレスオブジェクトをGUIで設定する方法
アドレスオブジェクトをGUIで設定する方法をご紹介します。
人事部サーバ(172.16.0.1)へは、
人事部AさんのPC(192.168.0.1)からしかアクセスできないようにする、
という例に沿って設定を行っていきます。
おおまかな設定の流れとしては下記の通りに進んで行きます。
アドレスオブジェクトはどちらを先に作成頂いても構いません。
- アドレスオブジェクト『人事部AさんPC(192.168.0.1)』を作成
- アドレスオブジェクト『人事部サーバ(172.16.0.1)』を作成
- IPv4ポリシーにアドレスオブジェクトを適用
アドレスオブジェクトは、
『ポリシー&オブジェクト』→『アドレス』
『新規作成』→『アドレスオブジェクト』を選択します。
今回必要となる設定を入力しました。
それでは設定を詳しく見ていきます。
【必須】名前
アドレスオブジェクトの名前を設定します。
ここでは『Jinji-bu_PC-A』という名称で設定をしています。
名前はお好きな名前で構いませんが、半角アルファベットで入力してください。
『人事部』のように日本語や全角アルファベットでも入力・設定可能なのですが、
2byte文字はログ表示の際などに文字化けやエラーを招きやすいので、
半角アルファベットで入力することが望ましいです。
【任意】カラー
GUIで表示される際に色をつけることができます。
視認性をよくしたり、管理しやすければご使用ください。
あまり使用しているのは見たことがないです。
【必須】タイプ
アドレスオブジェクトは下記の6種類のタイプから選択することができます。
- サブネット
- IP範囲
- FQDN
- ジオグラフィ
- ダイナミック
- MACアドレス
利用頻度が高いのはサブネット、IP範囲、FQDNの、
3種類を使用することが多いかと思います。
今回は最も利用頻度の高いであろう『サブネット』で設定をしていきます。
【必須】IP/ネットマスク
IPアドレスとネットマスクを入力します。
『192.168.0.1/24』と設定を行っています。
ネットマスクは『/24』のように10進数で記入することもできますし、
『255.255.255.0』のように2進数で記入することも可能です。
【必須】インタフェース
Port1配下にいる端末(PC)の場合はPort1と明確に設定しますが、
基本的にはany(ポート指定なし)の設定で問題ないかと思います。
【必須】show in address list
『show in address list』は設定を有効にしていください。
この設定を有効にしないと、
後述するIPv4ポリシーで選択ができないので有効にしてください。
【任意】Static route configuration
『Static route configuration』は無効に設定しています。
この設定を有効にすることで、
Staticルートで宛先アドレスとして設定してルーティングを切ることができます。
FQDNルーティングの場合などは有効にする必要がありますが、
サブネットで指定する場合は無効でよいかと思います。
【任意】コメント
今回は設定していませんが、必要があればコメントを入力してください。
こちらも名前と同様の理由で、
半角アルファベットで記入することをオススメします。
最後に『OK』を押下する
各設定を入力し終わったら『OK』を押下してください。
一覧画面に戻りますので、
作成したアドレスオブジェクトがあることを確認してください。
『人事部AさんPC(192.168.0.1/32)』の設定は以上となります。
名前やIPアドレスが異なるだけななので省略させて頂きますが、
別途『人事部サーバ(172.16.0.1)』の設定も必要となります。
アドレスオブジェクトをIPv4ポリシーに適用をする
ここまででご紹介したアドレスオブジェクトを設定をしただけでは、
アドレスが定義されているだけの状態で何も制御は行っていません。
設定したアドレスオブジェクトを、
IPv4ポリシーに設定することで制限を行えるようになります。
IPv4ポリシーの送信元に許可したい人事部AさんPC(192.168.0.1/32)を設定します。
宛先に人事部サーバ(172.16.0.1)を設定します。
こちらで設定完了です。
その他、基本的なIPv4ポリシーの設定はこちらを参照ください。
人事部AさんPCと営業部BさんPCからから人事部サーバへPingを実施してみました。
ログから設定どおりに人事部AさんPC(192.168.0.1)からは許可、
営業部BさんPC(192.168.0.2)からは拒否されていることが確認できます。
今回は人事部AさんのPCから人事部サーバ宛の通信を許可する、
IPv4ポリシーのみが設定されている状態です。
人事部AさんPCからの通信はこのポリシーに当てはまり、
営業部BさんPCからの通信は暗黙のDenyのポリシーに当てはまり、
通信が落と(拒否)されています。
複数の送信元・宛先を指定することが可能
送信元、宛先に複数のアドレスオブジェクトを適用することも可能です。
人事部Aさんと人事部Cさんから、
人事部サーバへのアクセスを許可したい場合を例にご紹介していきます。
IPv4ポリシーを2つ作成してもよいのですが、
このように送信元に複数設定をすることができます。
戻り通信の設定は基本的に不要
ステートフルインスペクションですので、
人事部サーバからの戻りの通信は自動的に許可されますので、
別途IPv4ポリシーを作成する必要はありません。
戻り通信ではなく、人事部サーバ発人事部のPC宛の通信がある場合は、
別途IPv4ポリシーの設定が必要となります。
この場合は、送信元に人事部サーバを指定して、
宛先に人事部PCを設定する必要があります。
GUIで設定することのメリット・デメリット
GUIで設定するメリットとして視認性が高いことです。
IPv4ポリシーにアドレスオブジェクトを、
設定する際も設定を確認する際も確認しやすくあります。
一方で、デメリットは1つ1つ設定する必要があることです。
アドレスオブジェクトを2つ作成するときは、1つ作成してOK、
新規作成でもう1つ作成してOKというように1つ1つ作成する必要があります。
数が少なければGUIで設定を行ってもよいとは思いますが、
数が多い場合はかなり時間がかかります。
また、Diffツールなどでの比較ができず目視の確認となってしまうので、
人為的な設定ミスを誘発しかねません。
メリット:視認性が高く設定しやすく確認しやすい
デメリット:設定が多い場合に不向き、Diffツールが使用できない
CLIでの設定方法
CLIでも設定することが可能です。
設定項目やアドレスオブジェクト作成後にIPv4ポリシーに適用する流れは一緒です。
まずはアドレスオブジェクトを作成します。
名称とサブネットだけの非常にシンプルな設定となっています。
サブネットマスクは2進数で記載してもよいですし、
『/32』のように10進数で記載することもできます。
10進数で設定してもConfig上は2進数で表記されますので、
Diffツールで余計な差分を出したくないのであれば2進数で記載するのがよいかと思います。
config firewall address edit "Jinji-bu_PC-A" set subnet 192.168.0.1 255.255.255.255 next edit "Jinji-bu_Server" set subnet 172.16.0.1 255.255.255.255 next end
次にIPv4ポリシーの『srcaddr』と『dstaddr』に、
アドレスオブジェクトを適用していきます。
config firewall policy edit 1 set srcintf "port1" set dstintf "port2" set srcaddr "Jinji-bu_PC-A" set dstaddr "Jinji-bu_Server" set action accept set schedule "always" set service "ALL" next end
設定は以上となります。
CLIでの設定確認コマンド
アドレスオブジェクトの設定を確認したい場合は、
『show firewall address』コマンドを使用します。
デフォルトで設定されているアドレスオブジェクトも表示されます。
表示結果はアドレスオブジェクトがすべて表示され、
非常に長くなってしまうため途中で省略させていただきますし、
UUIDをマスキングさせていただいています。
UUIDは設定に影響はなく、
設定すると自動的に付与される固有のIDになります。
FortiGate # show firewall address config firewall address edit "none" set uuid --- set subnet 0.0.0.0 255.255.255.255 next edit "login.microsoftonline.com" set uuid --- set type fqdn set fqdn "login.microsoftonline.com" next edit "login.microsoft.com" set uuid --- set type fqdn set fqdn "login.microsoft.com" next 省略
特定のアドレスオブジェクトの設定を確認したい場合は、
『show firewall address Jinji-bu_PC-A』にのように、
アドレスオブジェクト名を指定することで、
指定したアドレスオブジェクトのみの設定を確認することができます。
FortiGate # show firewall address Jinji-bu_PC-A config firewall address edit "Jinji-bu_PC-A" set uuid --- set subnet 192.168.0.1 255.255.255.255 next end
IPv4ポリシー適用時に注意
CLIの場合、既存のIPv4ポリシーに送信元・宛先を追加する際に注意が必要となります。
人事部Aさんに加えて人事部Cさんを追加する際に、
set srcaddr "Jinji-bu_PC-A"
となっている状態で、『Jinji-bu_PC-C』というアドレスオブジェクトを追加したい場合、
set srcaddr "Jinji-bu_PC-C"
と入力すると『Jinji-bu_PC-C』だけが適用されている状態になってしまいます。
『Jinji-bu_PC-A』がある状態で『Jinji-bu_PC-C』を追加したい場合は、
set src "Jinji-bu_PC-A" "Jinji-bu_PC-C"
と空白区切りで2つのアドレスオブジェクトを入力するか、
append srcaddr "Jinji-bu_PC-C"
『set』は上書き、『append』は追加するという設定になります。
既存のIPv4ポリシーにアドレスオブジェクトを追加する際は、
このどちらかで設定するようにしてください。
CLIで設定することのメリット・デメリット
GUIのメリット・デメリットを逆にしたのがCLIのメリット・デメリットです。
CLIで設定することのメリットは流し込みによる大量設定を行うことができることです。
もちろん流し込むコマンドを作成する必要はありますが、
フォーマットは決まっていますので、パラメータシートにマクロや関数を仕込んで、
自動出力できるようにするなどしておけばコマンド作成も楽になるかと思います。
Diffツールでの比較も容易ですので、大量設定してもミスを発見しやすくなるかと思います。
一方で、CLIで設定することのデメリットは視認性が悪いということです。
IPv4ポリシーをぱっと見て、
送信元に何が設定されているのか、
宛先に何が設定されているのかはGUIの方が分かりやすいです。
メリット:大量設定が可能、Diffツールを使用できる
デメリット:視認性が悪い
さいごに
アドレスオブジェクトの設定はGUI・CLIの両方で可能ですが、
それぞれのメリット・デメリットを理解して、
設定・確認方法に合った方法で実施いただければと思います。
アドレスオブジェクト以外の設定はこちら