FortiGateの設計/設定ガイド

FortiGateの設計・設定方法を詳しく書いたサイトです。 FortiGateの基本機能であるFW(ファイアウォール)、IPsec、SSL‐VPN(リモートアクセス)だけでなく、次世代FWとしての機能、セキュリティ機能(アンチウイルス、Webフィルタリング、SPAM対策)、さらにはHA,可視化、レポート設定までも記載します。初期化方法やバージョンアップなどの管理面も書いています。標的型攻撃を守るためのゲートウェイとしても導入されることが多いので、セキュリティ機能に関しては充実した記載を心がけます。

FortiGateでゼロトラスト

ゼロトラストという概念が広まっているが、FortiGateでもゼロトラストに対応している。
https://www.fortinet.com/jp/blog/business-and-technology/new-zero-trust-network-access-in-fortios-7-0-supports-the-evolution-of-vpn

ZTNA(ゼットティーエヌエー:ゼロトラストネットワークアクセス)で、ボトルネックになりがちなVPNの代わりとして動作し、また、認証及び認可を強化している。
ちなみに、ZTNAは基本的にはFortiGateに接続するので、SASEとは別。(SASEはZTNAも包含したより幅広い概念ともいえる)。
FortiSASE SIA(FortiSASE Secure Internet Access)に関しては、2021年にスタート予定とのこと。

1.ZTNA

(1)FortiGateでのZTNA

FortiGateでのZTNAだが、FortiGateでのをZTNAのブローカーとして機能させる。これは、FortiOS7.0でZTNAをサポートしている。クライアントエージェントはFortiClientであり、これは従来と同じ。
SSL-VPNでトンネルを張るのではなく、リバースプロキシとして、アプリケーションごとにアクセスを受け付ける。ユーザ認証としてはIDaasを利用したSAML認証にも対応可能。FortiClientで検疫として、OSのバージョンなどをチェックすることもできる。

動作を少しまとめると、
・SSL-VPN →VPNクライアントソフトを起動。→トンネルを構築する。接続してしまえば、別のアプリでもそのまま使える
・ZTNA → ブラウザを起動→ログイン。→アプリケーションのセッションごとにログインが必要。つまり、認証およびアプリケーションの制御が細かくできる。

コロナ禍でリモートアクセスが増え、企業へのリモートアクセスが限界になった。FortiGateでのZTNAはSASEなどの拠点に接続するわけでもなく、SWG(SecureWebGateway)に接続するわけでもないので、どれだけVPN接続に比べてパフォーマンスがいいのかは要確認だと思っている。

ZTNAで実現する機能としては、FortiGate NGFWとしてのアクセス管理や、フォーティネットの IAM(アイデンティティとアクセスの管理)による端末の認証強化などである。※あまりたいしたことはない。
https://www.fortinet.com/content/dam/fortinet/assets/solution-guides/ja_jp/sb-improve-application-access-and-security-with-ztna.pdf

FortiGateでZTNAをやるには、FortiClient EMSが必要である。FortiClientのライセンスを購入し、それを管理するのがFortiClient EMS。
https://licensecounter.jp/engineer-voice/blog/articles/20211116_fortigate_ztna.html

(2)SSL-VPNとZTNAの違い

FortiGateのSSL-VPNとFortiGateのZTNAの違いは何か。
一般的には、以下が強化されていると言われるが、SSL-VPNでもできることが多い。

❶認証
 多要素認証であったり、SSOの仕組みなど
❷端末の状態管理
 デバイスのポスチャ管理と言われたりもする。OSやパッチの状態を検査。場合によっては接続を拒否する。
❸認可
 SSL-VPNで許可すると、基本はIPアドレスやポート単位でのフィルタリングになるが、アプリケーションレベルおよび細かな権限でのアクセス制御が行える。少なくとも、何もしなければ組織内全てにアクセスできるというのがSSL-VPNだが、ZTNAでアクセスした場合、そんなことはできない。

最大の違いは、外部からの攻撃であろう。
従来は、社内にSSL-VPN装置を配置し、その装置を経由してリモートアクセスを実現しました。しかし、SSL-VPN装置の脆弱性が何度も見つかり、その脆弱性を突いて、社内に侵入されたりランサムウェアに感染するなどの被害が多数発生しました。ZTNAは、この問題を解決する有効な解決策になります。理由は2つあります。
【理由1】常にセキュリティが高い状態が保たれる
ZTNAのセキュリティ対策は、クラウドサービス側で提供されます。ですから、クラウドサービス側のシステムに脆弱性が出た場合、その対処はクラウド側で行われます。担当者が多忙でバージョンアップを忘れたなどのリスクが大幅に減ります。
【理由2】外部から直接アクセスができない
以下の図を見てください。ZTNAの場合、ファイアウォールにて、外部からリモートアクセス用のポートを開ける必要がありません。通信は、FWの中のZTNAのコネクタから行われるからです。よって、攻撃者がファイアウォールの外部から企業に直接的にアクセスすることができません。仮にシステムに脆弱性があったとしても、それを突くことができないのです。加えて、DDoS攻撃を受けることもありません。

(3)FortiGateEMS

・ユーザ情報の一元管理
・PCの情報の一元管理(端末のOSやバージョン、アプリケーション(ソフト)のインストール状況など)
・セキュリティ情報の管理
 AVの状態、パッチの適用状況などのセキュリティ状態を一括管理する

(4)FortiToken

FortiTokenは、ソフトウェアベースでの認証トークンを発行。iOS/Android向けアプリ
https://www.fortinet.com/jp/solutions/enterprise-midsize-business/network-access

2.FortinetでSASE

(1)SASEについて

セキュリティのモデルは、2020年はゼロトラストというキーワードがブームになったが、今後はSASE(Secure Access Service Edge)に変わっていくかもしれない。
SASEはクラウド上でセキュリティを一元的に行います。FortiGateでは、FortiSASEとして、クラウド上にエッジを提供。ここで、従来のFortiGateで実現していたようなAVやURLフィルタ、IPS、アプリケーションコントロールなどを提供します。
加えて、クラウドでサービス提供ができるので、SDPであったり、CASBなどの機能も持ちます。
また、クラウドサービス(MS-365など)との連携も充実している。なので、低遅延で接続できるのもメリットです。

メリットは以下でしょう。
・構成がシンプルになる
 クラウドにあるので、オンプレで機器を構成しなくてもいい
・一元管理が簡単 多くの拠点がある場合はなおさら。機器の設定やポリシーをSASE上で一元管理
・高速化
 クラウドに直接接続するので、高速化。クラウドサービスとも接続されている。VPN接続機器がボトルネックになるようなことはない。

(2)接続方法

①拠点
FortiGateをUpdateして、かつ、ライセンス(サブスクリプション)を購入する。ForiSASEは、Mobile専用で始まった。なので、FGTが設定されている拠点の中のPCであっても、クライアントソフトが必要だと思われる。
または、ThinEdgeというシンプルなエッジ機器を使うこともできる(2021年の後半に発売?)。

②リモートPC(スマホもOK)
PCにエージェント(FortiClient)を入れる

3.FortinetでSD-WAN

(1)簡易なSD-WANの設定

OSによって設定画面が違うので注意であるが、技術評論社のForitGate本にある通りでできるはずである。
または、以下にFortiOS7.2 セキュアSD-WAN設定ガイドがある。
https://www.fortinet.com/content/dam/fortinet/assets/deployment-guides/ja_jp/fos72_sdwan_deploy_guide.pdf

テスト的に実施するとして、インターネット回線が1本しかなくても、そのルータから2本の線が出ていれば、SD-WANの簡易な試験はできる
インターネット → ルータ →(2本) → FGT  という構成である

FGTのWAN側は、書籍と違ってDHCPで割り振られているとする。
【手順(書籍と同じで)】
①インターフェースの設定
 2本ともDHCPで割り当てられているとして、IPが取得できて、ゲートウェイなども設定されているのを確認
②既存のwan1のポリシーを削除
③ネットワーク>SD-WAN の設定で SD-WANを有効化、 インターフェースを追加する。
このとき、(本はPPPoEだったから不要だったが、)ゲートウェイを正しく入れる
・ネットワーク > SD-WAN > SD-WANゾーンタブ
・新規作成 > SD-WANメンバー

・SD-WANメンバー作成画面で、SD-WANゾーンはデフォルトの「virtual-wan-link」を使う。このとき、IFがUPしていて、ポリシーが割り当てられないなどの条件が整っていないと、IFを選択できない。

④SD-WANルール
・ここでルールと追加していきます。このとき、ルールにないものは、一番下の「暗黙」のルールが適用されます。

・暗黙のルールをダブルクリックすると、暗黙のルールにおけるトラフィック制御が選択できる。送信元IPで負荷分散がデフォルトで選ばれている。

④ポリシーの設定
 本の通りだが、出力インターフェースをSD-WANにする
⑤スタティックルートを書く
デフォルトルート 0.0.0.0のインターフェースをSD-WANにする
https://nwengblog.com/fortigate-sdwan/
実際に通信してみると、webに関しては、回線を順番に落としてもしばらくすると見える。
★SD-WANルールは、送信元IPは変えない方がおすすめ。これを変えると、セッション管理がうまくいかず、通信が不安定になる。
pingに関しては、一度切断して再度送信するとつながったりして、動作が不明である。が、なんとか切り替わっている気がする。

(2)SD-WANの無効化

GUIからだとうまくいかないように思うかもしれないが、単に設定が残っているだけだと思う。
ポリシーやルーティングなどをチェックしよう。
CLIで実施すると、なぜ無効化できないのか教えてくれるのでわかりやすい。

FGT# config system virtual-wan-link
FGT (virtual-wan-link) # set status disable
FGT (virtual-wan-link) # exit

4.Breakout

インターネットブレイクアウトをやってみる。

SD-WANを使わなくても、ISDBを用いたインターネットブレイクアウトは可能である。
設定は以下にも記載があるが、それほど難しくない。
https://nwengblog.com/fortigate-breakout/
※ポリシーを、ブレイクアウトのものを上にするとあるが、本当に必要かは不明。ルーティングを先に見るはずなので、関係ない気がする。

ルーティングで、向けたいISDBを指定すればいい。

構成として、WAN1とWAN2の2つからインターネットに接続されているとする。
たとえば、FacebookのみをWAN2から抜けるとする。

❶ポリシーの設定
ポリシーとして、LAN-->WAN1をANYの通信、LAN-->WAN2にISDBでFacebook系を入れる
ログを確認したいので、ログは全てのトラフィックを取得するようにする。

❷ルーティング
ネットワーク>スタティックルートで、
インターネットサービスのFacebook-Webを、インターフェースをWAN2にする。
それと、優先度を高めるため、ディスタンスを3などにする。
デフォルトルートは入れなくてもいいはず。

❸通信テストとログの確認
インターネット閲覧と、Facebookの閲覧をする。
ログがわかりにくいが、たとえば、以下のように、Syslogサーバをみると、以下のようにWAN2への通信が、宛先IPが157.240.31.40とある。

dstip=157.240.31.40 dstport=443 dstintf="wan2" dstintfrole="wan" poluuid="65858d

nslookupで調べてみよう。
C:\>nslookup
> 157.240.31.40

名前:    edge-z-m-mini-shv-02-nrt1.facebook.com
Address:  157.240.31.40

facebookの通信だ!
 
その他、ZOOM等でのファイルアップロードの禁止などは以下に記載あり。
https://www.fortinet.com/content/dam/fortinet/assets/deployment-guides/ja_jp/sdwan_deploy_guide_lbo_local_gov.pdf

Q.HTTPS通信が多いけど、SSLインスペクションは不要?

A.ISDBはIPアドレスベースなので、SSLインスペクションは不要だが、ころころ変わるであろうIPベースなので、ISDBは100%ではないらしい。実際にやってみたが、振り分けはうまくいかないときがある。