
Linux でユーザーに対して動的な認証を作成する方法 (およびそれが可能かどうか) を知りたいです。
サーバーはユーザーのパスワードを定期的に変更し、ユーザーはプログラム (トークンなど) を使用して正しいパスワードを取得して入力します。
答え1
まさにあなたが探しているものではありませんが、そのようなシナリオで OTPW が使用されているのを見たことがあります。これは、PAM モジュールを介して Linux システムと統合される完全なパッケージです。
抜粋
OTPW パッケージは、ワンタイム パスワード ジェネレータ
otpw-gen
と 2 つの検証ルーチンで構成されておりotpw_prepare()
、 POSIX システム上のやotpw_verify()
などのプログラムに簡単に追加できます。Pluggable Authentication Method (PAM) インターフェイスをサポートするプラットフォームには、適切なラッパーも含まれています。このように拡張されたログイン ソフトウェアにより、安全でないネットワーク ラインでも十分に安全なユーザー認証が可能になります。ユーザーは紙のパスワード リストを携帯します。このスキームは、紙のリストの盗難や最後の文字を狙う攻撃に対して堅牢になるように設計されています。ワンタイム パスワードの暗号化ハッシュ値は、検証のためにユーザーのホーム ディレクトリに保存されます。login
ftpd
あなたの場合は、PAM のインストールの詳細を説明したそのページの指示に従う必要があります。
抜粋
システムがプラグ可能な認証モジュール [Mor01、XSSO] をサポートしている場合は、共有ライブラリをコンパイルして
pam_otpw.so
、他の PAM モジュールが存在するディレクトリ (Linux では通常/lib/security/
) にコピーするだけです。次に、PAM システム管理者ガイドの説明に従って、OTPW を使用するアプリケーションの PAM 構成ファイルを編集します。 は、pam_otpw.so
認証コンポーネントとセッション コンポーネントの両方を提供します。認証コンポーネントは、ワンタイム パスワードを要求して検証し、セッション コンポーネントは、ログインが成功するたびに、未使用のパスワードがいくつ残っているかを示すリマインダーを出力します。セキュアシェル経由でシステムにログインするときに両方のコンポーネントを使用するには、
/etc/pam.d/sshd
次の行を追加する必要があるかもしれません。auth required pam_otpw.so session optional pam_otpw.so
例えばOpenSSH 3.4では、バージョンにPAMサポートが組み込まれていることを確認する必要があり、
/etc/ssh/sshd_config
次の行を追加する必要があります。UsePrivilegeSeparation no PAMAuthenticationViaKbdInt yes
OpenSSH に PAM 認証 (通常は最初に試行される独自のホストベースまたは公開キー方式ではなく) を使用するように強制するには、 を使用します
“ssh -o PreferredAuthentications=keyboard-interactive”
。