FortiGateの設計/設定ガイド

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

FortiGateのSSL-VPN

1.FortiGateのSSL-VPNの特長

FortiGateならではの特徴があります
① ユーザーライセンスの課金がない
② 同時ユーザー接続数が10,000ユーザー以上もサポート可能。
  ※HAも可
FortiGateを勉強する女性SE (20) 


ということは、HA構成の場合、2倍の料金を払う必要がないのですか?
はい。機械の代金のみで、SSL用の追加ライセンスは不要です。
ユーザーライセンスの課金はないので、コストパフォーマンスに優れています。

③クライントソフトも無償提供。
  ※FortiClientを利用(IPsec、SSL-VPNのみの利用や、AntiVirusなど包括した ClientSoftとして利用することもできます)

2.SSL-VPNの接続方式

FortiGateでは、多くの他の製品と同様に次の3つの接続形式があります。
①ウェブアプリケーションモード
②ポートフォワードモード
③トンネルモード

①はベーシックな使い方で、httpまたはhttpsを中心としたシステムでのリモートアクセスを可能にします。
http/https以外に FTP、SMB/CIFS、TELNET、SSH、VNC、RDP をサポートします。

②専用アプリケーションで使えるようにしたもので、ポートフォワードと言われるものです。
これは Javaアプレット経由をサポートし、TCPベースの任意のアプリケーションの通信を HTTPSのポート番号に変換し Firewallを通過させ SSL-VPNを実現します。
 
③は、最も多く使われる形式です。レイヤ4で使われるhttpsの通信を、あたかもレイヤ3でで動作させる仕組みです。
PC側に仮想NICと仮想IPアドレスが割り当てられ、あたかも同じネットワークにいるかのような通信ができます。

FortiGateの SSL-VPNの特長は、ユーザーライセンスの課金がなく、且つ UTMを利用できる点にあります。
※クライントソフトも FortiClientを利用できます。(もちろん無償で、IPsec、SSL、AntiVirusなど機能が提供されています。) 

3.ウィザードを使ってSSL-VPNの設定

 操作、設定の順番は、以下です。(設定の概要を示しています)
① SSL VPN用のユーザー、ユーザーグループ情報の作成
② SSLポータル情報の作成
③ SSL VPNの設定
 どのインターフェースで SSL VPNを受けて、どのユーザーと SSLポータルを関連付けるか設定します
④ ③の情報を基に、Firewall Policyを作成します

① SSL VPN用のユーザー、ユーザーグループ情報の作成
User-1User-2User-3User-4User-5

User-6

② SSLポータル情報の作成
SSL-Potal1SSL-Potal2SSL-Potal3SSL-Potal4
③ SSL VPNの設定 
どのインターフェースで SSL VPNを受けて、どのユーザーと SSLポータルを関連付けるか設定します

SSL-Conf1SSL-Conf4SSL-Conf5SSL-Conf6SSL-Conf7
④ ③の情報を基に、Firewall Policyを作成します
SSL-Policy1SSL-Policy3

4.SSL VPNの設定

SSL VPNを設定するには、

① ユーザー情報の登録、又は外部サーバーの設定
② SSL VPN ポータルサイトの設定 (Webモード、トンネルモードの利用など)
③ SSL VPNの設定
④ Firewall Policyへ追加

の 4つの手順を進めていきます。

□ ① ユーザー情報の登録、又は外部サーバーの設定
ユーザー&デバイス > ユーザー定義
ユーザー&デバイス > ユーザーグループを作成

 又は、

ユーザー&デバイス > 認証
LDAP、Radiusサーバーの登録 

を実施します。

□ ② SSL VPN ポータルサイトの設定 (Webモード、トンネルモードの利用など)
VPN > SSL > ポータル 設定より新規作成を選択
fortigate-sslvpn-portal

 ※トンネルモードの場合、クライアントオプション設定を行うことで、Client側で常に SSL VPNを接続
  させたりパスワードを保存させ、Loginの処理を簡素化させることができます。

 Webモードではブックマークを定義することで接続先を提供できます。

□ ③ SSL VPNの設定
 VPN > SSL > 設定
fortigate-sslvpn-setting

どのインターフェースを SSL VPNの終端にするか、Clientへのアドレスをどう範囲で付与するか
など取り決めを行います。また認証/ポータルマッピングでポータルサイトとの関連付けを行います。

□④ Firewall Policyへ追加
ポリシー&オブジェクト > ポリシー > IPv4 より新規にポリシーを作成します。
fortigate-sslvpn-firewall-policy

入力インターフェースは SSL用のインターフェースである ssl.root を選択します。
ユーザー情報の選択します。
宛先アドレスはトンネルモードを利用する場合にスプリットトンネルで付与されるルーティング
情報になります。

ここまでの設定で、Clientから SSL接続を受けられるようになります。
fortigate-sslvpn-monitor

上記は VPN > モニター > SSL-VPNモニター 情報のイメージです。 

5.SSL-VPN SSL-VPN① スプリットトンネルを利用する際のルーティング情報の設定

スプリットトンネル用のルーティング情報は、Firewallのアドレスオブジェクトで
作成します。
下記は 10.10.10.0/24 のルーティング情報を SSL Clientへ付与する設定です。
FortiGate_ssl_2

6.SSL-VPN② SSL用のユーザー情報の設定 (Radius、AD連携可能)

接続するユーザー用のアカウント情報になります。
ここでは FortiGateのローカルユーザーとして、「ssl-user01」を作成しています。
FortiGate_ssl_1

7.SSL-VPN③ SSL用ポータル、①の関連付けの設定

FortiGate_ssl_3

8.SSL-VPN④ SSL用設定、②、③の関連付けの設定

FortiGate_ssl_4

9.SSL-VPN⑤ Firewallポリシーの設定

FortiGate_ssl_5

10.Fortigate SSL-VPNで2要素認証

正直、書きかけの内容なので、特に(2)(3)は信憑性が怪しい。

(1)EメールやSNS、MFAでの認証

基本機能として備わっている。Emailによる2段階認証は、この後に記載する
chrome-extension://dnkjinhmoohpidjdgehjbglmgbngnknl/pdf.js/web/viewer.html?file=https%3A%2F%2Fwww.fortinet.com%2Fcontent%2Fdam%2Ffortinet%2Fassets%2Fdeployment-guides%2Fja_jp%2Ffg-6-4-vpn-mfa.pdf

(2)証明書認証

❶どうやって認証?
証明書認証では、いろいろな方法が選べるはず
・正しいクライアント証明書を持っていれば、その証明書の中のCN(メールアドレス)を見てユーザ情報を判断し、ID/PWを入れない
・クライアント証明書を持っているるかどうかだけの判断で、CNを見ないことも可能。みてもいい。ユーザID/PWは別途入れる ・・・こっちのほうが2要素認証だ。

https://www.gleas.jp/news/column/fortigate

❷課題
Q1.クライアント証明書を配布、管理が大変では?また、コピーされない?
Windowsの証明書サービスを使えれば、クライアント証明書をエクスポートできない形で発行できる。ユーザにはサーバにアクセスしてもらい、ID/pwを入れて証明書を取得してもらう。ただ、単純な作業とはいえ、全ての人にこの作業をやってもらおうとすると、意外に大変かもしれない。特にITリテラシーが低い方には。
Q2.証明書エラーがでる?
Webサーバの証明書がローカルの証明書だと、ブラウザで警告が出る。しかし、クライアント認証の場合は、そういった心配はない。

(3)クラウドサービスや外部の仕組みと連携

以下の真ん中の「RADIUS連携」の図にあるように、連携対象システムがFortiGateだと思って、それがRadiusサーバに問い合わせる。ここは連携なので、連携先がハードトークンを使おうが、ソフトトークンを使おうが、何をしようが、連携できる。クラウドサービスも連携できる、と思っている。
https://www.techmatrix.co.jp/product/securid/securid-access.html

(4)E-mailによる認証

トークンやSMSもあるが、手軽なe-mailでの認証を行う場合を説明する。※SMSによる方法は、携帯電話の電話回線を使うので、別途SMSを送信するサービスと契約が必要になるはず。
トークンは無料で2ユーザのライセンスがあるので、メンテナンスで使う分には使えるだろう。
設定であるが、まずは、SSL-VPNの設定を一通り行い、通常のPW認証でログインできるようにする。
では、設定を変更する。

①メールを送信する設定
2要素認証のメール送信用にメールアドレスが必要。このメール送信用に、Gmailなどのアカウントを作成しておく必要がある。→なんかうまくいかないときがあるので、後半に書いた方法も参考に。
メールサーバの設定は、システム>高度 から設定する。
設定ではあるが、CLIに関しては、以下の設定を張り付けておく
https://kb.fortinet.com/kb/documentLink.do?externalID=FD40488

Configure gmail account in the FortiGate.
#config system email-server
    set server "smtp.gmail.com"
    set port 587
    set authenticate enable
    set username "test"
    set password SGKSDHFK
    set security starttls
end

さて、実際の設定であるが、Gmailの場合、ユーザ名は@gmail.com をつけ、ポートは465とする。security はsmtpsで成功する。
ただ、GmailやPlalaなどのメールサーバ側でブロックされる可能性があると思う。それはセキュリティの問題なので、警告等が出て、それを許可できればOKだと思う。

【方法2】Fortigateのメールサーバを利用する

以下のサイトからコピペ

https://www.open-circuit.ne.jp/isp/settei/fortigate-ssl-vpn-email.html

config system email-server
set reply-to "noreply@notification.fortinet.net"
set server "notification.fortinet.net"
set port 465
set security smtps
end

設定の確認は以下
show system email-server


②ユーザの認証をE-mailに変える
まず、GUI画面で、該当するユーザにEmailアドレスを設定する。※もちろん、このメールアドレスは、一般的には上でFortiGateに設定したメールアドレスとは異なるはずだ。
だが、残念かがらGUIからE-mailによる二要素認証の設定ができないので、以下のCLIを実行する

conf user local
edit ssl-user1 ←SSLのユーザ名
set two-factor email
set email-to test@ab.dom ←Emailアドレス
end

GUIで確認すると、Eメールベースの2要素認証が有効に設定されている