公開サーバにアクセス認証をしようと思うと、BASIC認証が比較的簡単に設定出来て便利ですよね。
ただ、今時ではありますが、HTTPプロコルにおけるBASIC認証は脆弱性が指摘されていて、あまり使いたくはない方法です。
HTTPSでSSL暗号化されていれば良いのですが、未だにHTTPプロトコルしか使えない状況では不便でなりません。
そこで、Fortigateを使ってもっとセキュリティの高い認証を試みてみようと思い立った次第です。
サーバ側に認証機能を持たせたくない場合などでも、この方法で認証すれば便利です。
更に、この方法を使うと、通常のSSHなどでアクセスする際に、直接サーバにログインを試みようとすることも遮断できます。
詳しくは後ほど説明しますね。
目的
公開サーバへのHTTP/HTTPS/SSH等によるアクセス時に、一度認証を行ってからしか接続出来なくします。
サーバ本体側の認証もあるのですが、その前に一度Fortigate側で認証を行わないと、サーバ本体へのアクセスもログインを行う行為すらも出来ないということです。
具体的には、以下の流れになります。
①Webブラウザで対象アドレスへアクセスします。
②Fortigateが準備したログイン画面が表示され、認証を求められます。
認証方式は、Fortigate側で選択出来ます。
今回は単純にIDとパスワードだけで説明します。
③認証が完了すると、通常通りサーバへアクセス出来ます。
WebサーバへのHTTP/HTTPSアクセスであれば、目的のホームページが表示されます。
これだけだと、BASIC認証と変わらないと思いますが、実はこれだけではありません。
SSHによるアクセスも、②の認証を行わないとアクセス出来ないのです。
SSHのID/パスワードによるログインに至る前に、一度Web画面上でログインを行わないとSSHのログインにも進まないということです。
更にセキュリティを高めたい人には、二要素認証なども取り入れることが可能です。
ぐっとセキュリティ効果が高まりますよね。
機械的なログイン操作を用いたい場合には容赦なく壁になってしまいますので、システム的な使い方をする場合には向きませんが、通常利用時のセキュリティ効果を高めたい場合には便利です。
BruteForce攻撃等には効果てきめんじゃないかな?と思っています。
設定方法
概要
まずは流れを説明します。
Fortigate側で新たにユーザを作成します。
IDとパスワードを設定します。
次に、ユーザグループを作成し、先ほど作ったユーザを追加します。
このユーザグループをFortigateで設定する通常のポリシーにおいて、送信元アドレスと共に登録するだけです。
サポートに確認したら古いインタフェースの英文による説明が送付されてきて、その内容も若干微妙な設定内容だったので、ここに現状の設定方法を記録しようと思いました。
滅多にやらないことなので、次やる時に思い出さないと思ったので(^^ゞ
でも、やってみるとすごく簡単な設定ですね。
手順1:ユーザ作成
ユーザ&デバイス→新規追加→ローカルユーザ→次へと進みます。
画面はこんな感じになっていると思います。
ここで、ユーザ名とパスワードを変更して、新たなユーザ名とパスワードを設定します。
ここで必要に応じてEメールアドレスを登録します。
また、SMSや二要素認証の項目も必要に応じて設定します。
特に問題なければ、このまま「サブミット」を押して登録完了です。
手順2:ユーザグループ作成
ユーザデバイス→ユーザグループ→新規作成と進めます。
ユーザグループの名前(英数字のみ)を作成します。
タイプはファイアウォールです。
メンバーに先ほど作成したユーザを登録して完了です。
手順3:ポリシー設定
通常通りポリシーを作成します。
送信元にインターネット側からの送信元を通常通り設定します。
全て許可する場合はallですね。
更に、この送信元に先ほど作成したユーザグループを追加します。
終わりです。
これで後はブラウザでアクセスしてみましょう。
画面にForigateのログイン画面が表示され、先ほど作成したユーザ名とパスワードでログインを行います。
この後は、SSHなども利用できるようになります。
細かな設定は端折りましたが、これをやりたい人は既にポリシー設定などやったことがある方だと思いますので、十分に判って頂けると思っています。
この設定も凄く簡単ですね。
最後に
SSHでインターネット側からサーバへアクセス出来る様にすると、SSH BruteForce攻撃に会って面倒なんですよね。IPS攻撃もガッツリやってきます。
この方法では、通常のブラウザで一度認証を行ってから、SSHによるアクセスを行います。
その為、ポートフォワーディングなどでデフォルトポートを変更して逃げているだけではポートスキャンされて見つかってしまう・・・という悩みにも、対処が出来るということになります。
いや~実際、この方法を探し回っていたのですが、なかなかネットで見つからなくて、サポートに聞いたら英文の古いインタフェースマニュアルが・・・何やってるのか良く分からない感じだったのですが、やってみるとこれで良いんか?
すっげー楽でした。
このページを見ている方は、セキュリティ関連で苦労されている方だと思いますが、お互い大変ですね。
頑張ってセキュリティ対策しましょう!