- 1.FortiGateのSSL-VPNの特長
- 2.SSL-VPNの接続方式
- 3.ウィザードを使ってSSL-VPNの設定
- 4.SSL VPNの設定
- 5.SSL-VPN SSL-VPN① スプリットトンネルを利用する際のルーティング情報の設定
- 6.SSL-VPN② SSL用のユーザー情報の設定 (Radius、AD連携可能)
- 7.SSL-VPN③ SSL用ポータル、①の関連付けの設定
- 8.SSL-VPN④ SSL用設定、②、③の関連付けの設定
- 9.SSL-VPN⑤ Firewallポリシーの設定
- 10.Fortigate SSL-VPNで2要素認証
1.FortiGateのSSL-VPNの特長
FortiGateならではの特徴があります
① ユーザーライセンスの課金がない
② 同時ユーザー接続数が10,000ユーザー以上もサポート可能。
※HAも可
ということは、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用のユーザー、ユーザーグループ情報の作成
② SSLポータル情報の作成
③ SSL VPNの設定
どのインターフェースで SSL VPNを受けて、どのユーザーと SSLポータルを関連付けるか設定します
④ ③の情報を基に、Firewall Policyを作成します
4.SSL VPNの設定
SSL VPNを設定するには、
① ユーザー情報の登録、又は外部サーバーの設定
② SSL VPN ポータルサイトの設定 (Webモード、トンネルモードの利用など)
③ SSL VPNの設定
④ Firewall Policyへ追加
の 4つの手順を進めていきます。
□ ① ユーザー情報の登録、又は外部サーバーの設定
ユーザー&デバイス > ユーザー定義
ユーザー&デバイス > ユーザーグループを作成
又は、
ユーザー&デバイス > 認証
LDAP、Radiusサーバーの登録
を実施します。
□ ② SSL VPN ポータルサイトの設定 (Webモード、トンネルモードの利用など)
VPN > SSL > ポータル 設定より新規作成を選択
※トンネルモードの場合、クライアントオプション設定を行うことで、Client側で常に SSL VPNを接続
させたりパスワードを保存させ、Loginの処理を簡素化させることができます。
Webモードではブックマークを定義することで接続先を提供できます。
□ ③ SSL VPNの設定
VPN > SSL > 設定
どのインターフェースを SSL VPNの終端にするか、Clientへのアドレスをどう範囲で付与するか
など取り決めを行います。また認証/ポータルマッピングでポータルサイトとの関連付けを行います。
□④ Firewall Policyへ追加
ポリシー&オブジェクト > ポリシー > IPv4 より新規にポリシーを作成します。
入力インターフェースは SSL用のインターフェースである ssl.root を選択します。
ユーザー情報の選択します。
宛先アドレスはトンネルモードを利用する場合にスプリットトンネルで付与されるルーティング
情報になります。
ここまでの設定で、Clientから SSL接続を受けられるようになります。
上記は VPN > モニター > SSL-VPNモニター 情報のイメージです。
5.SSL-VPN SSL-VPN① スプリットトンネルを利用する際のルーティング情報の設定
スプリットトンネル用のルーティング情報は、Firewallのアドレスオブジェクトで
作成します。
下記は 10.10.10.0/24 のルーティング情報を SSL Clientへ付与する設定です。
6.SSL-VPN② SSL用のユーザー情報の設定 (Radius、AD連携可能)
接続するユーザー用のアカウント情報になります。
ここでは FortiGateのローカルユーザーとして、「ssl-user01」を作成しています。
7.SSL-VPN③ SSL用ポータル、①の関連付けの設定
8.SSL-VPN④ SSL用設定、②、③の関連付けの設定
9.SSL-VPN⑤ Firewallポリシーの設定
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要素認証が有効に設定されている