[初めに]
FortigateでClient VPN接続やってますか?
今時ですと、2FA(2要素認証)ないと心配・・ということもあり、なるべくお安く実装してみようと思います。
FortigateでVPN 2FAを実現する場合、一般的には以下のような方法があると思います。
・Fortitokenを購入する(初期費用+年間サブスク)
・メールでのトークン受け取り
・SMSでのトークン受け取り
そこそこの規模の企業ですと、Fortitokenも難なく予算が付きそうですが、そうでもない規模の場合はなかなか2FAに手が付けられないことがあります。
個人的には、Authenticatorとかでやりたくもありますが、大掛かりになるのとコストが見合うのかよくわららなかったので、SMS受け取りを実現したいです。
で、調べたのですが正攻法でSMS飛ばすためにはFortinetにサブスク払わなくちゃいかんらしく、やだな。。と。
その後、twillioで行けんぢゃね?と思ったのですが、どうもAPI中継するサーバ作らなくてはいけなそうなので、EC2とか立てる必要がありそうな・・。とかいうことで、これも没となりました。
極めて面倒くさがり屋なので、メールからSMSをhookしてくれりゃ良いんだよ・・と探して見つけたサービスがcm.comとかのwebsmsサービスです。探せばあるものですね。
[実装方法]
結論から言えば、E-MAILでのトークン受け取りとwebsmsを組み合わせて実現します。
※前提※
・2FAではない状態でクライアントVPN接続設定が完了していること。
・FortigateにSMTPサーバを登録済みで、ログ・アラートなどの送信ができる状態であること。
・クライアントからの接続はSSL-VPN、IPsecVPNどちらでも大丈夫です。
・今回使用している機材は、Fortigate 50E(FortiOS 6.2)です。
1.websmsサービスにアカウント作成
今回はcm.comというところを選びました。
フリーメールのドメインはダメとありましたが、個人的にドメイン持っていましたのでそちらで
アカウント作成しました。お試し用に1$分デポジットされています。
SMS送信元になるメールアカウントを登録しておいてください。
また、メール経由でSMSが飛ぶことを事前に確認してください。
・cm.comのリンクはこちら
https://www.cm.com/ja-jp/
2.Fortigateにメール2FA設定を行います。
コンソールから以下のように設定してください。
※Fortigateのメール2FAはデフォルトではGUIで選べません。
メールアドレスは適当でよいです。(後でGUIから修正できるので)
config user local
edit "ユーザー名"
set two-factor email
set email-to "メールアドレス"
next
end
3.ユーザのE-MAILアカウントアドレスをwebsmsの形式にして登録します。
cm.comの形式は以下。
XXX(国コード)-電話番号(ハイフンなし)@mail-sms.com
4.FortigateクライアントからVPN接続してみます。
①Forticlientから接続
②SMSにトークンが届く
画像ではアメリカのSMS番号に来てますが、81(日本)にも届きます。
③Forticlientにトークン入力テキストボックスが表示されるので入力
④接続完了
⑤Enjoy!
[まとめ]
・自宅のFortigateにVPNしたい!という要件を格安で実現できました。
・小規模な事業所なら、これで簡単にVPN-2FAできます。
・お財布にも優しい。
一回につき$0.0089(1.2円 2023/3/12時点)です。
お試しアカウントでも80回は使用できますw
企業でも20名くらいであれば、まあまあ安いのではないでしょうか。
※1日3回接続として、20名x3回x20日=1200回/月
1200回x1.2円=1,440円/月
年間の場合は、1,440円x12か月=17,280円
Fortitokenは今だと、初期+ランニング(年間)でン十万円ですので。。
内容におかしなところがあれば、直しますのでお知らせくださいませ。