PAM 設定
カスタムレルムの設定
- PAMモジュール経由でログインするユーザー用のカスタムレルムを作成します。
- RADIUSクライアントを設定する場合は、ユーザーセクションでカスタムレルムを選択します。
カスタムレルムと現在のADドメイン カスタムレルムが選択され、PAMモジュールがESA RADIUSサーバーに「domain\username」を送信すると、ユーザー名「domain\username」のユーザーがカスタムレルムに作成されます。 カスタムレルムの代わりに、現在のADドメインまたは現在のADドメインと信頼のドメインを選択し、PAMモジュールが「domain\username」をESA RADIUSサーバーに送信すると、ユーザー名「username」のユーザが「domain」レルムに作成されます。 |
PAM認証モジュール
- https://freeradius.org/sub_projects/からPAM RADIUS tar.gzをダウンロード
- ダウンロードしたパッケージを展開するには、ターミナルウィンドウで次のコマンドを実行します。
tar xzvf pam_radius-release_2_0_0.tar.gz
- ターミナルウィンドウで次のコマンドを実行して、.soライブラリをビルドします。
cd pam_radius-release_2_0_0
./configure
make
Linux (OpenSUSEなど)では、configureコマンドの出力によっては、依存関係のインストールが必要になる場合があります。
sudo zypper install gcc make pam-devel - ビルドされたライブラリをPAMモジュールの既定の場所にコピー
Linux:
cp pam_radius_auth.so /lib/security
または
cp pam_radius_auth.so /lib64/security
Mac:
cp pam_radius_auth.so /usr/lib/pam
OS X El Capitan以降では、この場所はSystem Integrity Protectionによって保護されます。これを使用するには、コピーコマンドに対して無効にする必要があります。
- /etc/raddb/でserverという名前のサーバー設定ファイルを作成します。そこに、次の形式でRADIUSサーバーの詳細を入力します。
<radius server>:<port> <shared secret> <timeout in seconds>
(例:
1.1.1.1 test 60
場所:
- 1.1.1.1はESA RADIUSサーバーのIPアドレスを表します
- testはESA Webコンソールで設定されたRADIUSクライアントの共有シークレットです
- 60はプッシュ通知の承認を待つ時間を秒単位で指定した値です
- 設定ファイルに適切なセキュリティ権限を適用
- chown root /etc/raddb
- chown root /etc/raddb/server
- chmod 600 /etc/raddb
- chmod 600 /etc/raddb/server
設定ファイルのセキュリティに関する推奨事項についてはINSTALLを、ライブラリに渡すことができるパラメーターについてはUSAGEを参照してください。たとえば、debugパラメーターを使用して、潜在的な問題を特定できます。
PAMモジュールの組み込み
PAMモジュールは、login、sshd、su、sudoなど、さまざまなログインタイプに組み込むことができます。使用可能なログインタイプのリストは、/etc/pam.d/にあります。
- sshd - SSHを使用したリモートログイン
必ず、/etc/ssh/sshd_configでChallengeResponseAuthenticationをyesに設定します。 |
- sudo
- su
- common-auth - OpenSUSE (すべての認証)
- login - OpenSUSE (コンソールログイン)
- authorization - macOSのログオン画面
上記のいずれかのサービスで二要素認証を有効にするには、/etc/pam.dの対応する設定ファイルに次の行を追加します。
auth required pam_radius_auth.so use_first_pass
上記のコマンドでは、pam_radius_auth.soは、以前に設定されたPAMモジュールへのパスか、pam_radius_auth.soになります。use_first_passは、ESA RADIUSで2番目の要素が要求されないかぎり、PAMモジュールで無駄に追加のパスワード(OTP)が要求されないことを保証します。たとえば、二要素認証保護が設定されたユーザーがプッシュ認証を有効にしている場合、PAMモジュールはプッシュ通知の承認のみを待機し、OTPの入力を要求しません。
最初の要素が失敗したときに二要素認証が要求されないようにするには、auth required pam_unix.soをauth requisite pam_unix.soに変更します。
macOSのログイン画面など、一部のログインインターフェースでは、二要素認証の個別のフィールドを表示できません。この場合、プッシュ認証(モバイルアプリプッシュ)を使用しているユーザー、非二要素認証ユーザー、一時停止されているユーザー、またはホワイトリストに登録されたIPアドレスのユーザーのみがログインできます。ユーザーが追加の二要素認証オプションを有効にしている場合でも、OTPのメッセージを表示せずにモバイルアプリケーションプッシュのみが使用されるようにするには、設定行にclient_id=challenge_neverを追加します。
auth required pam_radius_auth.so use_first_pass client_id=challenge_never
client_idに使用可能な値:
- challenge_if_possible - 既定のオプションでは、ユーザーがOTPタイプを有効にしている場合、「モバイルアプリケーションプッシュ」の送信が成功した場合でも、常にOTPの入力を求められます。
- challenge_always - 「モバイルアプリケーションプッシュ」の送信が成功し、ユーザーがどのタイプのOTPも有効にしていない場合でも、常にOTPを要求します。問題が発生した場合には、常にMRKを入力できます。(これは、他の方法では簡単にアクセスできないリモートサーバーへのSSHログインなど、重要なシナリオで推奨されます)
- challenge_if_needed - 「モバイルアプリケーションプッシュ」の送信が成功した場合は、OTPを要求しないようにするため、追加のOTPリクエスト/フィールドを回避し、より高速なログインが可能になります。
- challenge_never - OTPを要求しません。
一部のLinuxディストリビューションでは、ログインマネージャーを簡単に変更できます。たとえば、gdmは追加情報の入力を求めるプロンプトをサポートしています。