2.5F認証

こんにちは イベシュニク日に関係者全員におめでとう)



リモートユーザーの2.5要素認証を設定した経験を共有したいと思います。 モデルを考慮すれば、なぜ2.5、コンテンツから理解できると思いますか。 私が知っていること。 2.私が持っているもの。 3.誰が「参照。 興味があれば、お願いします!



私がする必要があること、私は図に描いてみました:







つまり、リモートユーザーにはeToken(Alladin)、Active Directoryのアカウント、特定のグループのメンバー、およびGoogle認証システムモバイルアプリケーションからのワンタイムパスワードがあります。 彼はいくつかのサービスに正常に接続する必要があります。



Habré に関する記事には CISCO ASA、AnyConnect、Google Auth、およびFreeradiusのセットアップに関する主要な瞬間が記載されています。 複製する意味はありませんが、以下を除き、すべてが実質的に同じです。



radtestコマンドとradiusd -X debugでテストするために、RADIUSサーバーユーティリティをインストールすることをお勧めします



yum install freeradius freeradius-utils
      
      





表示されたエラーの経験から、次の順序で構成する方が便利です。



  1. RADIUS
  2. グーグル
  3. SSSD
  4. PAM
  5. シスコ


しかし、いつものように、すべてがそれほど単純で順序正しくはありません。 githubでは、必要なGoogleコンポーネントは次のとおりです。“ プラグ可能な認証モジュール(PAM)は別のプロジェクトにあります。 »インストール中に、さまざまな種類のエラーが発生する可能性があります。開発者ツールとライブラリ(gcc、libqrencodeなど)が必要な場合は、ここで読み取り、再インストールする必要があります。



さて、上で引用された記事の著者から、うまくいかなかったもの(たぶんうまくいったが、彼はそれについて書かないことにした)



ADのアカウントを使用するには、SSSDとコンポーネントをインストールする必要があります。



 yum install sssd realmd adcli
      
      





次に、RADIUSサーバーをドメインに追加します。



 realm join _
      
      





ADの定義済みグループからユーザーへのアクセスを許可します。



 realm permit -g ___AD
      
      





この段階では、ドメイン名(.ru、.net、.testなど)に問題がある可能性があります。レベル1レコードが決定されない可能性があるため、ドメイン名が不完全である可能性があり、これは認証プロセスとRADIUSサーバーの構成に影響します。



私の場合、ドメインはレベル2の名前であるユーザー名@ドメインのように見えました。 それは何をもたらすことができますか? /etc/raddb/policy.d/filterの次の行をコメントアウトしない限り、単に正常に認証できません。



 # if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\\.(.+)$/)) { # update reply { #Reply-Message += "Rejected: Realm does not have at least one dot separator" # } # reject # }
      
      





それ以外の場合、入力したデータはエラーとして除外されます。 Google認証システムドメインユーザーを作成するには、次の手順を実行します。



 su – domain_user@domain google-authenticator
      
      





このユーザーは、上でrealm permitコマンドで指定したグループのメンバーである必要があります。



この段階では、問題も発生します。セキュリティメカニズムでは、新しいユーザーのホームディレクトリを作成できません。 このディレクトリは〜google-authenticatorファイルに必要です。このファイルには、確認コードと各ユーザーのキーを含む情報が含まれています。



これを修正するには、SELinuxコンポーネントを許容モードに移行する必要があります。



 setenforce permissive
      
      





次に、/ etc / pam.d / radiusdに移動して、次の構成を書き込みます。



 #%PAM-1.0 auth requisite pam_google_authenticator.so forward_pass auth required pam_sss.so use_first_pass account required pam_nologin.so account include password-auth session include password-auth
      
      





NTPを忘れずに時刻を同期してください。そうしないと、ワンタイムパスワードが機能しなくなり、ファイル/ var / log / secureに 「無効なコード」というメッセージが表示されます



すべての準備ができたら、テストできます:



  1. AnyConnectを起動すると、eToken PKI Clientウィンドウが表示されます。
  2. 証明書を選択します。 コンテナのパスワードを入力します-1つの要素
  3. 次に、ADユーザーの資格情報(ログイン+パスワード)を入力します-2要素
  4. 電話のアプリケーションからのコードをパスワードに追加します(スペースなし)-0.5ファクター


2.5要素認証の準備ができました。 私が何かを忘れて、あなたが始めなかったなら、コメントに書いてください、私は助けようとします)



All Articles