これらの目的のために、ほとんどの企業はVPNテクノロジーを使用しています。VPNテクノロジーは、組織のローカルリソースへのアクセスを提供するための十分に保護された方法として確立されています。
私の会社も例外ではなく、他の多くの会社と同様に、このテクノロジーを使用しています。 また、他の多くの製品と同様に、リモートアクセスゲートウェイとしてCisco ASA 55xxを使用しています。
リモートユーザーの数が増えると、資格情報の発行プロセスを促進する必要があります。 ただし、同時に、セキュリティを損なうことなくこれを行う必要があります。
私たちは、ワンタイムパスワードを使用して、Cisco SSL VPN経由で接続するための2要素認証のアプリケーションでソリューションを見つけました。 また、この出版物では、必要なソフトウェアに最小限の時間とゼロコストでこのようなソリューションを編成する方法を説明します(インフラストラクチャ内のCisco ASAがすでに利用可能である場合)。
ワンタイムパスワードを生成するためのボックス化されたソリューションは市場に豊富にありますが、SMS経由でパスワードを送信するか、ハードウェアとソフトウェア(携帯電話など)の両方のトークンを使用して、パスワードを受信するための多くのオプションを提供しています。 しかし、現在の危機の中で、貯蓄への欲求と雇用者のためにお金を節約したいという欲求は、ワンタイムパスワードを生成するサービスを実装する無料の方法を見つけることを余儀なくされました。 これは無料ではありますが、商用ソリューションに比べてそれほど劣っていません(ここでは、この製品にも商用バージョンがあることに注意して予約する必要がありますが、お金のコストはゼロになることに同意しました)。
そのため、次のものが必要です。
-ビルトインツールキットを備えたLinuxイメージ-multiOTP、FreeRADIUS、nginx、ウェブ経由でサーバーにアクセスするため(http://download.multiotp.net/-VMware用に既製のイメージを使用しました)
-Active Directoryサーバー
-実際にはCisco ASA(I、便宜上、ASDMを使用)
-TOTPメカニズムをサポートするソフトウェアトークン(たとえば、Google認証システムを使用しますが、同じFreeOTPでも使用できます)
イメージの展開の詳細については説明しません。 その結果、multiOTPとFreeRADIUSがすでにインストールされ、連携して動作するように設定されたDebian Linuxと、OTP管理用のWebインターフェイスが得られます。
ステップ1.システムを開始し、ネットワークに合わせて構成します。
デフォルトでは、システムにはroot \ root資格情報が付属しています。 誰もが最初のログイン後にルートパスワードを変更するのが良いと推測したと思います。 また、ネットワーク設定を変更する必要があります(デフォルトでは、ゲートウェイ「192.168.1.1」で「192.168.1.44」です)。 システムを再起動した後。
Active Directoryで、パスワードMySuperPasswordを使用してotpユーザーを作成します。
手順2.接続を構成し、Active Directoryユーザーをインポートする
これを行うには、コンソールにアクセスし、 multiotp.phpファイルに直接アクセスする必要があります。このファイルを使用して、Active Directoryに接続するための設定を構成します。
/ usr / local / bin / multiotp /ディレクトリに移動し、次のコマンドを順番に実行します。
./multiotp.php -config default-request-prefix-pin=0
ワンタイムピン(0または1)を入力するときに、追加の(永続的な)ピンが必要かどうかを決定します
./multiotp.php -config default-request-ldap-pwd=0
ワンタイムPINを入力するときにドメインパスワードが必要かどうかを決定します(0または1)
./multiotp.php -config ldap-server-type=1
LDAPサーバーのタイプが示されます(0 =通常のLDAPサーバー、この例では1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"
ユーザー名がどの形式で表されるかを示します(この値はドメインなしで名前のみを表示します)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"
グループのみに同じ
./multiotp.php -config ldap-group-attribute="memberOf"
ユーザーがグループに属しているかどうかを判別する方法を指定します。
./multiotp.php -config ldap-ssl=1
LDAPサーバーへの安全な接続を使用するかどうか(もちろん-はい!)
./multiotp.php -config ldap-port=636
LDAPサーバーに接続するためのポート
./multiotp.php -config ldap-domain-controllers=adSRV.domain.local
Active Directoryサーバーのアドレス
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"
ドメイン内のユーザーの検索を開始する場所を指定する
./multiotp.php -config ldap-bind-dn="otp@domain.local"
Active Directoryで検索権限を持つユーザーを指定します
./multiotp.php -config ldap-server-password="MySuperPassword"
Active Directoryに接続するためのユーザーパスワードを指定します
./multiotp.php -config ldap-network-timeout=10
Active Directoryに接続するためのタイムアウトを設定しました
./multiotp.php -config ldap-time-limit=30
ユーザーのインポート操作の時間制限を設定します
./multiotp.php -config ldap-activated=1
Active Directory接続構成をアクティブ化する
./multiotp.php -debug -display-log -ldap-users-sync
Active Directoryからユーザーをインポートします
ステップ3.トークンのQRコードを生成する
ここではすべてが非常に簡単です。 ブラウザでOTPサーバーのWebインターフェースを開き、ログインし(デフォルトで設定されている管理者のパスワードを変更することを忘れないでください!)、「印刷」ボタンをクリックします。
このアクションの結果は、2つのQRコードを含むページになります。 最初のコードを大胆に(Google Authenticator / Authenticator / 2 Steps Authenticatorという魅力的な碑文があるにもかかわらず)、電話のソフトウェアトークンに2番目のコードを大胆にスキャンします。
(はい、QRコードを意図的に台無しにして読みにくくしました)。
アプリケーションでこれらのアクションを完了すると、30秒ごとに6桁のパスワードが生成されます。
忠実性のために、同じインターフェースでチェックインできます:
電話のアプリケーションからユーザー名とワンタイムパスワードを入力します。 肯定的な反応を得ましたか? それでは先に進みましょう。
手順4. FreeRADIUSの動作を構成およびテストする
前述したように、multiOTPはすでにFreeRADIUSで動作するように構成されていますが、テストを実行し、VPNゲートウェイに関する情報をFreeRADIUS構成ファイルに入力します。
サーバーコンソールのディレクトリ/ usr / local / bin / multiotp /に戻り 、次のように入力します。
./multiotp.php -config debug=1 ./multiotp.php -config display-log=1
これにより、より詳細なロギングが含まれます。
FreeRADIUSクライアント構成ファイル( /etc/freeradius/clinets.conf )で、 localhostに関連するすべての行にコメントを付け、2つのエントリを追加します。
client localhost { ipaddr = 127.0.0.1 secret = testing321 require_message_authenticator = no }
-テスト用
client 192.168.1.254/32 { shortname = CiscoASA secret = ConnectToRADIUSSecret }
-VPNゲートウェイ用。
FreeRADIUSを再起動し、ログインを試行します。
radtest username 100110 localhost 1812 testing321
ここで、 ユーザー名 =ユーザー名、 100110 =電話のアプリケーションによって与えられたパスワード、 localhost = RADIUSサーバーのアドレス、 1812 -RADIUSサーバーのポート、 testing321 -RADIUSサーバーのクライアントパスワード(構成で指定した)。
このコマンドの結果は、次のような結論になります。
Sending Access-Request of id 44 to 127.0.0.1 port 1812 User-Name = "username" User-Password = "100110" NAS-IP-Address = 127.0.1.1 NAS-Port = 1812 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20
次に、ユーザーが正常に認証されたことを確認する必要があります。 これを行うには、multiotp自体のログを調べます。
tail /var/log/multiotp/multiotp.log
最後のエントリがある場合:
2016-09-01 08:58:17 notice username User OK: User username successfully logged in from 127.0.0.1 2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token accepted from 127.0.0.1
すべてがうまくいったこと、そして私たちは完了することができます
ステップ5. Cisco ASAを設定して下さい
Active Directoryと組み合わせて設定されたSLL VPN経由のアクセス用の設定済みグループとポリシーが既にあり、このプロファイルに2要素認証を追加する必要があることに同意しましょう。
1.新しいAAAサーバーグループを追加します。
2. multiOTPサーバーをグループに追加します。
3. Active Directoryサーバーグループをメイン認証サーバーとして設定して、 接続プロファイルを編集します。
4. [ 詳細 ] -> [認証 ]タブで、Active Directoryサーバーグループも選択します。
5. [ 詳細 ] -> [セカンダリ認証]タブで、multiOTPサーバーが登録されている作成済みサーバーグループを選択します。 セッションユーザー名は、プライマリAAAサーバーグループから継承されることに注意してください。
設定を適用し、
ステップ6、彼は最後です
SLL VPNの2要素認証があるかどうかを確認します。
うわぁ! Cisco AnyConnect VPN Clientを介して接続する場合、2回目のワンタイムパスワードも要求されます。
この記事が誰かを助け、他のタスクにこの無料の OTPサーバーをどのように使用できるかを考えてくれることを願っています。 必要に応じてコメントを共有してください。