【Fortigate】アドレスオブジェクト(サブネット・IP範囲・FQDN・ジオグラフィ)の設定と動作確認 FortiOS7.0.3

FortiGate でファイアウォールポリシーを設定するときは、制御したい送信元や宛先の IP アドレスなどを、アドレスオブジェクトとして登録しておきます。アドレスオブジェクトには、IP アドレス(サブネット、IP 範囲)だけでなく、FQDN や国・地域(ジオグラフィ)も指定できます。

この記事では、よく使うサブネット、IP 範囲、FQDN(ワイルドカード FQDN を含む)、ジオグラフィの4つのタイプを設定し、ポリシーで拒否して動作を確認します。検証時の FortiOS は 7.0.3 です。

この記事でわかること
  1. サブネットと IP 範囲のアドレスの設定と動作
  2. FQDN のアドレスと、FortiGate 自身の名前解決
  3. ワイルドカード FQDN が、通過する DNS 応答から IP アドレスを集めるしくみ
  4. ジオグラフィ(国・地域)のアドレスで、宛先の国ごとに制御する方法

アドレスオブジェクトの作り方

ポリシー&オブジェクト ›› アドレス を開き、新規作成 ›› アドレス をクリックすると、新しいアドレスオブジェクトを作れます。タイプ で、アドレスの指定のしかたを選びます。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
名前 
1タイプ✓ サブネットIP範囲
FQDN
ジオグラフィ
ダイナミック
デバイス(MACアドレス)
インターフェース 
スタティックルート設定OFF
図1 新規アドレスの画面と、選べるタイプ(実際の画面ではなく、表示のポイントを示したイメージです)

この記事では、このうちサブネット、IP 範囲、FQDN、ジオグラフィを確認します。どのタイプでも、作ったアドレスオブジェクトはファイアウォールポリシーの送信元や宛先に指定して使います。検証では、LAN 側の端末からインターネット(wan1 (port3))に向かう通信を、各アドレスを宛先にしたポリシーで拒否します。

サブネット

サブネットのアドレスを作る

タイプ を サブネット にし、IP アドレスとネットマスク(今回は 8.8.8.8/32)を設定します。名前は任意(今回は Subnet)で、インターフェースはインターネット側の wan1 (port3) にします。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
1名前Subnet
2タイプサブネット
3IP/ネットマスク8.8.8.8 255.255.255.255
4インターフェースwan1 (port3)
スタティックルート設定OFF
OKキャンセル
図2 サブネットのアドレス(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定する内容
1名前任意の名前です。今回は Subnet にします。
2タイプサブネット を選びます。
3IP/ネットマスク8.8.8.8 255.255.255.255 のようにネットマスクで書いても、8.8.8.8/32 のようにプレフィックス長で書いてもかまいません。
4インターフェースこのアドレスがある側のインターフェースです。今回はインターネット側の wan1 (port3) にします。

OK をクリックすると、一覧に登録されます。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› アドレス
名前詳細インターフェース
⊟ IP範囲/サブネット
FABRIC_DEVICE0.0.0.0/0
1Subnet8.8.8.8/32wan1 (port3)
all0.0.0.0/0
図3 サブネットのアドレスを登録したあとの一覧(実際の画面ではなく、表示のポイントを示したイメージです。一部の行は省いています)

ポリシーで拒否して確かめる

ポリシー&オブジェクト ›› ファイアウォールポリシー で、このアドレスを宛先にして ICMP を拒否するポリシーを作ります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー
名前FromTo送信元宛先サービスアクション
Deny_Subnetlan (port2)wan1 (port3)all1SubnetALL_ICMP⊘ 拒否
LAN_to_Internetlan (port2)wan1 (port3)allallALL✔ 許可
図4 Subnet 宛ての ICMPを拒否するポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

端末から 8.8.8.8 に ping を実行し、ログ&レポート ›› 転送トラフィック を確認すると、Deny_Subnet のポリシーで拒否されています。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果ポリシーID
(伏せています)8.8.8.8PING Deny: ポリシー違反Deny_Subnet (3)
(伏せています)8.8.8.8PING Deny: ポリシー違反Deny_Subnet (3)
(伏せています)8.8.8.8PING Deny: ポリシー違反Deny_Subnet (3)
(伏せています)8.8.8.8PING Deny: ポリシー違反Deny_Subnet (3)
図5 8.8.8.8 への ping が拒否されたログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元の IP アドレスは伏せています)

IP 範囲

IP 範囲のアドレスを作る

サブネットではなく、IP アドレスの範囲を指定します。タイプ を IP範囲 にし、範囲(今回は 8.0.0.0-8.255.255.255)を設定します。名前は任意(今回は IP_Range)で、インターフェースは wan1 (port3) にします。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
1名前IP_Range
2タイプIP範囲
3IP範囲8.0.0.0-8.255.255.255
4インターフェースwan1 (port3)
スタティックルート設定OFF
OKキャンセル
図6 IP 範囲のアドレス(実際の画面ではなく、設定する項目を示したイメージです)

IP 範囲は、開始アドレスと終了アドレスを - でつないで指定します。サブネットの境界にそろわない範囲(たとえば 10.0.0.10-10.0.0.20)も1つのオブジェクトで指定できます。OK をクリックすると、一覧に登録されます。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› アドレス
名前詳細インターフェース
⊟ IP範囲/サブネット
FABRIC_DEVICE0.0.0.0/0
1IP_Range8.0.0.0 – 8.255.255.255wan1 (port3)
Subnet8.8.8.8/32wan1 (port3)
図7 IP 範囲のアドレスを登録したあとの一覧(実際の画面ではなく、表示のポイントを示したイメージです。一部の行は省いています)

ポリシーで拒否して確かめる

このアドレスを宛先にして、ICMP を拒否するポリシーを作ります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー
名前FromTo送信元宛先サービスアクション
Deny_IP_Rangelan (port2)wan1 (port3)all1IP_RangeALL_ICMP⊘ 拒否
LAN_to_Internetlan (port2)wan1 (port3)allallALL✔ 許可
図8 IP_Range 宛ての ICMPを拒否するポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

端末から 8.0.0.1、8.0.0.2…と順番に ping を実行し、転送トラフィックを確認すると、範囲内の宛先への ping が Deny_IP_Range のポリシーで拒否されています。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果ポリシーID
(伏せています)8.0.0.8PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.7PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.6PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.5PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.4PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.3PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.2PING Deny: ポリシー違反Deny_IP_Range (3)
(伏せています)8.0.0.1PING Deny: ポリシー違反Deny_IP_Range (3)
図9 8.0.0.1〜8.0.0.8 への ping が拒否されたログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元の IP アドレスは伏せています)

FQDN

FortiGate の DNS 設定を確認する

FQDN のアドレスでは、FortiGate 自身が FQDN(今回は hirotanoblog.com)を名前解決し、解決した IP アドレスをアドレスオブジェクトに登録します。そのため、FortiGate 自身が名前解決できる必要があります。

FortiGateDNSサーバDNS クエリ(hirotanoblog.com)DNS レスポンス(183.181.81.57)FQDN アドレス hirotanoblog.comFortiGate 自身が名前解決し、解決した IP アドレスを登録
図10 FQDN のアドレスでは、FortiGate 自身が名前解決した IP アドレスが使われる

ネットワーク ›› DNS で、FortiGate に DNS サーバが設定されていることを確認します。初期設定では FortiGuard の DNS サーバを使います。

FortiGate 管理画面画面イメージ
ネットワーク ›› DNS
1DNSサーバ◉ FortiGuard サーバを利用○ 指定
プライマリDNSサーバ208.91.112.53 13,600 ms
セカンダリDNSサーバ208.91.112.52 110 ms
ローカルドメイン名 
図11 FortiGate の DNS 設定(実際の画面ではなく、表示のポイントを示したイメージです。右の数字は応答時間で、色は画面の表示どおりです)
補足

検証時の画面では、FortiGuard の DNS サーバとして 208.91.112.53/208.91.112.52 が表示されています。FortiOS 7.0 以降のドキュメントでは、FortiGuard の DNS サーバとして 96.45.45.45/96.45.46.46(DNS over TLS)が案内されています。お使いの環境の値は、ネットワーク ›› DNS で確認してください。

FQDN のアドレスを作る

タイプ を FQDN にし、hirotanoblog.com を設定します。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
名前hirotanoblog
1タイプFQDN
2FQDNhirotanoblog.com
インターフェースwan1 (port3)
スタティックルート設定OFF
OKキャンセル
図12 FQDN のアドレス(実際の画面ではなく、設定する項目を示したイメージです)

OK をクリックすると一覧に登録されますが、登録した直後は名前解決ができていないため、解決先に「未解決のFQDN」と表示されます。

FortiGate 管理画面(アドレスにカーソルを合わせたときの表示)画面イメージ
アドレスhirotanoblog
タイプFQDN
FQDNhirotanoblog.com
インターフェースwan1 (port3)
1解決先⚠ 未解決のFQDN: hirotanoblog.com
リファレンス0
図13 登録直後の FQDN アドレス(実際の画面ではなく、表示のポイントを示したイメージです)

しばらくして名前解決ができると、表示が消え、解決先に IP アドレスが表示されます。

FortiGate 管理画面(アドレスにカーソルを合わせたときの表示)画面イメージ
アドレスhirotanoblog
タイプFQDN
FQDNhirotanoblog.com
インターフェースwan1 (port3)
1解決先183.181.81.57
リファレンス0
図14 名前解決ができたあとの FQDN アドレス(実際の画面ではなく、表示のポイントを示したイメージです)

ポリシーで拒否して確かめる

このアドレスを宛先にして、すべてのサービスを拒否するポリシーを作ります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー
名前FromTo送信元宛先サービスアクション
Deny_FQDNlan (port2)wan1 (port3)all1hirotanoblogALL⊘ 拒否
LAN_to_Internetlan (port2)wan1 (port3)allallALL✔ 許可
図15 hirotanoblog 宛ての すべての通信を拒否するポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

端末から hirotanoblog.com に ping を実行すると、解決先の IP アドレスへの ping が Deny_FQDN のポリシーで拒否されています。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果ポリシーID
(伏せています)183.181.81.57PING Deny: ポリシー違反Deny_FQDN (3)
(伏せています)183.181.81.57PING Deny: ポリシー違反Deny_FQDN (3)
(伏せています)183.181.81.57PING Deny: ポリシー違反Deny_FQDN (3)
(伏せています)183.181.81.57PING Deny: ポリシー違反Deny_FQDN (3)
図16 hirotanoblog.com への ping が拒否されたログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元の IP アドレスは伏せています)

ワイルドカード FQDN

FQDN との違い

FortiGate は、*.google.com のようなワイルドカード FQDN もサポートしています(ファイアウォールポリシーでの利用は FortiOS 6.2.2 から)。

FQDN のアドレスでは、FortiGate 自身が名前解決していました。ワイルドカード FQDN では、FortiGate は自分で名前解決をせず、FortiGate を通過するクライアントの DNS 応答を見て、そこに含まれる IP アドレスをアドレスオブジェクトに登録します。

クライアントFortiGateDNSサーバ① DNS クエリ(mail.google.com)② DNS レスポンス(172.217.31.165)③ ワイルドカード FQDN(*.google.com)レスポンスの IP アドレスを収集して登録
図17 ワイルドカード FQDN では、FortiGate を通過する DNS 応答から IP アドレスを集める

そのため、クライアントと DNS サーバの間の通信が必ず FortiGate を通るように配置する必要があります。

補足
  • Fortinet のドキュメントでは、クライアントと FortiGate が同じ DNS サーバを使うことが推奨されています。同じ名前でも、DNS サーバによって返す IP アドレスが違うことがあるためです。
  • FortiGate が DNS の応答を読めないと IP アドレスを集められないので、DNS over HTTPS の通信では動作しません。
  • 集めた IP アドレスは、DNS レコードの TTL が切れるまで保持され、切れると次の問い合わせまで外されます。1つのワイルドカード FQDN に保持できる IP アドレスは最大 1000 個です。

ワイルドカード FQDN のアドレスを作る

タイプ を FQDN にし、FQDN に *.google.com を設定します。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
名前Wildcard-FQDN
1タイプFQDN
2FQDN*.google.com
インターフェースwan1 (port3)
スタティックルート設定OFF
OKキャンセル
図18 ワイルドカード FQDN のアドレス(実際の画面ではなく、設定する項目を示したイメージです)

OK をクリックすると一覧に登録されますが、この時点ではまだ DNS 応答を集めていないので、「未解決のFQDN」と表示されます。

FortiGate 管理画面(アドレスにカーソルを合わせたときの表示)画面イメージ
アドレスWildcard-FQDN
タイプFQDN
FQDN*.google.com
インターフェースwan1 (port3)
1収集された解決済みIP⚠ 未解決のFQDN: *.google.com
リファレンス0
図19 登録直後のワイルドカード FQDN アドレス(実際の画面ではなく、表示のポイントを示したイメージです)

DNS 応答から IP アドレスが集まることを確かめる

クライアントから FortiGate を経由して、*.google.com に当てはまる名前を解決します。まず、mail.google.com を名前解決します。

クライアント

>nslookup
>server 8.8.8.8
Default Server:  dns.google
Address:  8.8.8.8
> mail.google.com
Server:  dns.google
Address:  8.8.8.8

Non-authoritative answer:
Name:    googlemail.l.google.com
Addresses:  2404:6800:4004:821::2005
          172.217.31.165
Aliases:  mail.google.com

DNS の応答で 172.217.31.165 が返ってきました。FortiGate はこのアドレスを集め、アドレスオブジェクトに登録します。

FortiGate 管理画面(アドレスにカーソルを合わせたときの表示)画面イメージ
アドレスWildcard-FQDN
FQDN*.google.com
1収集された解決済みIP172.217.31.165
図20 mail.google.com の名前解決のあと(実際の画面ではなく、表示のポイントを示したイメージです)

続けて、クライアントから drive.google.com を名前解決します。

クライアント

>nslookup
>server 8.8.8.8
Default Server:  dns.google
Address:  8.8.8.8
> drive.google.com
Server:  dns.google
Address:  8.8.8.8

Non-authoritative answer:
Name:    drive.google.com
Addresses:  2404:6800:4004:813::200e
          142.250.196.142

あとから解決されたアドレスも、追加で登録されています。

FortiGate 管理画面(アドレスにカーソルを合わせたときの表示)画面イメージ
アドレスWildcard-FQDN
FQDN*.google.com
1収集された解決済みIP142.250.196.142 172.217.31.165
図21 drive.google.com の名前解決のあと(実際の画面ではなく、表示のポイントを示したイメージです)

このアドレスを宛先にして、ICMP を拒否するポリシーを作ります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー
名前FromTo送信元宛先サービスアクション
Deny_WildcardFQDNlan (port2)wan1 (port3)all1Wildcard-FQDNALL_ICMP⊘ 拒否
LAN_to_Internetlan (port2)wan1 (port3)allallALL✔ 許可
図22 Wildcard-FQDN 宛ての ICMPを拒否するポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

端末から mail.google.com に ping を実行すると、Deny_WildcardFQDN のポリシーで拒否されています。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果ポリシーID
(伏せています)172.217.31.165PING Deny: ポリシー違反Deny_WildcardFQDN (3)
(伏せています)172.217.31.165PING Deny: ポリシー違反Deny_WildcardFQDN (3)
(伏せています)172.217.31.165PING Deny: ポリシー違反Deny_WildcardFQDN (3)
(伏せています)172.217.31.165PING Deny: ポリシー違反Deny_WildcardFQDN (3)
(伏せています)172.217.31.165PING Deny: ポリシー違反Deny_WildcardFQDN (3)
図23 mail.google.com への ping が拒否されたログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元の IP アドレスは伏せています)

FQDN に対応する IP アドレスを CLI で確認する

FQDN に対応して保持している IP アドレスは、diagnose test application dnsproxy コマンドで確認できます。このコマンドの後ろにオプション番号を付けると、さまざまな情報を表示できます。番号の一覧は、diagnose test application dnsproxy だけを入力して Enter を押すと表示されます。

FortiGate

FG1 # diagnose test application dnsproxy 
worker idx: 0
1. Clear DNS cache
2. Show stats
3. Dump DNS setting
4. Reload FQDN
5. Requery FQDN
6. Dump FQDN
7. Dump DNS cache
8. Dump DNS DB
9. Reload DNS DB
10. Dump secure DNS policy/profile
11. Dump Botnet domain
12. Reload Secure DNS setting
13. Show Hostname cache
14. Clear Hostname cache
15. Show SDNS rating cache
16. Clear SDNS rating cache
17. DNS debug bit mask
18. DNS debug obj mem
99. Restart dnsproxy worker

FQDN と対応する IP アドレスを確認するには、6. Dump FQDN を使います。

FortiGate

FG1 # diagnose test application dnsproxy 6
worker idx: 0
vfid=0 name=hirotanoblog.com ver=IPv4 timer running,  min_ttl=3600:3441, cache_ttl=0 , slot=-1, num=1, wildcard=0
         183.181.81.57 (ttl=3600:3447:3447)
vfid=0 name=*.google.com ver=IPv4  min_ttl=100:0, cache_ttl=0 , slot=-1, num=2, wildcard=1
         172.217.31.165 (ttl=298:127:127) 142.250.196.142 (ttl=100:31:31)
表示意味
name=hirotanoblog.comFQDN のアドレスです。wildcard=0 で、FortiGate 自身が名前解決した 183.181.81.57 を保持しています。
name=*.google.comワイルドカード FQDN のアドレスです。wildcard=1 で、DNS 応答から集めた 172.217.31.165 と 142.250.196.142 の2つ(num=2)を保持しています。
ttl=…IP アドレスごとの TTL の情報です。

このほか、内部の DNS キャッシュを確認するときは 7. Dump DNS cache、DNS キャッシュを消すときは 1. Clear DNS cache を使います。詳しくは、Fortinet の DNS troubleshooting – Administration Guide FortiOS 7.0.3 を参考にしてください。

ジオグラフィ(地域)

ジオグラフィのアドレスを作る

タイプ を ジオグラフィ にし、国/地域(今回は米国(United States))を選びます。名前は任意(今回は United States)で、インターフェースは wan1 (port3) にします。国/地域は、一覧の検索欄に国名の一部を入れると絞り込めます。

FortiGate 管理画面画面イメージ
アドレス ›› 新規アドレス
カテゴリ◉ アドレス○ プロキシアドレス
名前United States
1タイプジオグラフィ
2国/地域United States
インターフェースwan1 (port3)
OKキャンセル
図24 ジオグラフィのアドレス(実際の画面ではなく、設定する項目を示したイメージです)

ポリシーで拒否して確かめる

このアドレスを宛先にして、すべてのサービスを拒否するポリシーを作ります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー
名前FromTo送信元宛先サービスアクション
Deny_Geolan (port2)wan1 (port3)all1United StatesALL⊘ 拒否
LAN_to_Internetlan (port2)wan1 (port3)allallALL✔ 許可
図25 United States 宛ての すべての通信を拒否するポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

端末からいくつかの Web サイトにアクセスし、転送トラフィックを確認すると、宛先の IP アドレスが米国(United States)のものだけが Deny_Geo のポリシーで拒否され、ほかの国の宛先は LAN_to_Internet のポリシーで許可されています。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービス結果ポリシーID
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
(伏せています)シンガポール(伏せています)HTTPS✔ 4.47 kB / 22.06 kBLAN_to_Internet (4)
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
(伏せています)シンガポール(伏せています)HTTPS✔ 3.73 kB / 8.55 kBLAN_to_Internet (4)
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
(伏せています)日本(伏せています)HTTPS✔ 3.34 kB / 5.51 kBLAN_to_Internet (4)
(伏せています)シンガポール(伏せています)HTTPS✔ 2.37 kB / 19.09 kBLAN_to_Internet (4)
(伏せています)日本(伏せています)HTTPS✔ 5.05 kB / 15.34 kBLAN_to_Internet (4)
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
(伏せています)米国(伏せています)HTTPS Deny: ポリシー違反Deny_Geo (3)
図26 いくつかのサイトにアクセスしたときのログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元と宛先の IP アドレスは伏せ、宛先は国名で示しています。関係のない行は省いています)

ジオグラフィのアドレスは、サイトの名前ではなく、宛先の IP アドレスがどの国に割り当てられているかで判定されます。

まとめ

タイプ指定のしかたIP アドレスの決まり方
サブネット8.8.8.8/32(8.8.8.8 255.255.255.255)設定した値そのもの
IP 範囲8.0.0.0-8.255.255.255設定した値そのもの
FQDNhirotanoblog.comFortiGate 自身が名前解決する
ワイルドカード FQDN*.google.comFortiGate を通過する DNS 応答から集める
ジオグラフィUnited States宛先の IP アドレスがどの国のものかで判定する

FQDN やワイルドカード FQDN が「未解決」のままのときは、FortiGate の DNS 設定や、DNS の通信が FortiGate を通っているかを確認し、diagnose test application dnsproxy 6 で保持している IP アドレスを確かめてください。

コメント