Cisco AnyConnectクライアントの2要素認証。 FreeRadiusとGoogle認証システム



前の記事で、 Active DirectoryおよびMicrosoft Azure Multi-Factor Authentication Server(MFAS)に基づいてCisco AnyConnectを介して企業リソースに接続するための2要素ユーザー認証の設定について説明しました 。 今日は、FreeRadiusとGoogle Authenticatorの使用を検討することをお勧めします。

このオプションの利点のうち、このソリューションが無料であることのみが注目されます。
短所には次が含まれます:

コンポーネントのインストール


FreeRaduisをインストールするには、仮想マシンでDebian Jessie 8.0を使用しました。
TOTPは認証に使用されるため、サーバーの時刻は正確でなければなりません。 時刻を同期する最良の方法は、NTPをインストールすることです。
sudo apt-get update sudo apt-get install ntp 
次に、FreeRadiusと必要なモジュールをインストールします。
 sudo apt-get install build-essential libpam0g-dev freeradius libqrencode3 git 
Google認証システムをダウンロードしてインストールします。
 cd ~ git clone https://code.google.com/p/google-authenticator/ cd google-authenticator/libpam/ make make install 
認証が不要になったユーザー用のグループも必要です。
 addgroup radius-off 

FreeRadiusを構成する


FreeRadiusはすべてのユーザーディレクトリの.google_authenticatorトークンにアクセスできる必要があるため、 ルート権限が必要です。 権限を付与するには、ファイル/etc/freeradius/radusd.confを編集します。
次の行を見つけます。
 user = freerad group = freerad 
そして次のものに置き換えます:
 user = root group = root 
ここで、将来的には、変更を保存することを忘れないでください。

次に、 / etc / freeradius / usersを編集します 。 以前に作成したradius-offグループをユーザーグループのアクセス拒否セクションに追加する必要があります。
行の後:
 # Deny access for a group of users. # # Note that there is NO 'Fall-Through' attribute, so the user will not # be given any additional resources. # 
追加:
 DEFAULT Group == "radius-disabled", Auth-Type := Reject Reply-Message = "Your account has been disabled." DEFAULT Auth-Type := PAM 

/ etc / freeradius / sites-enabled / defaultを編集します
私たちは見つけます:
 # Pluggable Authentication Modules. # pam 
そして、 pamで行のコメントを外します

/etc/pam.d/radiusdを編集ます。 FreeRadiusに、ローカルUNIXパスワード+ Google認証システムコードの原則に基づいてユーザーを認証するよう指示します。

ここでは、@で始まるすべての行をコメント化する必要があります。
 #@include common-auth #@include common-account #@include common-password #@include common-session 
追加します:
 auth requisite pam_google_authenticator.so forward_pass auth required pam_unix.so use_first_pass 
次に、FreeRadiusがCISCO ASAからの要求を処理できるように、Radiusクライアントを追加する必要があります。 ファイル/etc/freeradius/clients.confに以下を追加します。
 Client 192.168.110.6 { secret = Password shortname = ASA } 

ユーザー設定


ユーザーを作成します。
 adduser mfatest 
google-authenticatorを作成します:
 cd /home/mfatest/ su mfatest google-authenticator 
応答として、QRコードを取得します。


その後、FreeRadiusサービスを再起動する必要があります。
 sudo service freeradius restart 

Google Authenticatorアプリ( iOSおよびAndroidのリンク)をモバイルデバイスにインストールする必要があります。

Google Authenticatorアプリケーションを使用してQRコードをスキャンします。 その結果、mfatestアカウントはモバイルデバイスに関連付けられます。


認証のテスト:
 radtest <username> <unix_password><google_auth> localhost 18120 testing123 
どこで:

結果は次のとおりです。
 radtest mfatest Pass_123731923 localhost 18120 testing123 

すべてが正しくセットアップされていれば、次のようなものが得られます。


CISCO ASAを設定して下さい


ASAでは、ローカル認証を使用してAnyConnect VPNゲートウェイをセットアップすることをお勧めします。 接続が機能していることを確認してから、Radiusによる認証の設定に進みます。

RADIUSを構成します。
  1. 設定/リモートアクセスVPN / AAA /ローカルユーザー/ AAAサーバーグループに移動し、グループを作成します。


  2. サーバーをグループに追加します。

    サーバー名またはIPアドレスがFreeRadiusのアドレスである場合、サーバーシークレットキーはクライアント用に構成したキーです。

  3. RADIUSサーバーでの束のテスト:

    パスワードは、ユーザーのパスワード+ Google認証システムのコードです

テストが成功すると、以前に設定した「AnyConnect接続プロファイル」で、認証をローカルからFreeRadグループに変更します。


これで設定は完了です。 すべてが機能することを確認するには、テスト接続を開始します。


これは、私が話した非自明性が現れるところです。 FreeRadiusは段階的な認証を使用せず、Google認証のコードを個別に要求する方法(少なくとも私は見つけられませんでした)を知りません。 したがって、テストのように認証を成功させるために、パスワード行にパスワード+コードを入力します。 経験の浅いユーザーにとって、これはサービスの快適な使用に対する障害になる可能性があります。

このスキームは汎用的であり、Radiusプロトコルを使用した認証をサポートするすべてのサービスに実装できます。
残りの記事http://servilon.ru/stati/

Source: https://habr.com/ru/post/J271259/


All Articles