私はFreeBSDでホストされているサーバーを持っており、どこからでもアクセスできるようにしたいと思っています。通常、SSH公開鍵を使用してログインします。または、SSH秘密鍵を使用できない場合は、SSH経由の通常のパスワードを使用する場合があります。ただし、信頼できないマシンからログインする場合、入力時にキーロガーがパスワードを取得するリスクが常にあります。
FreeBSDにはすでに OPIEのサポート があります。これはワンタイムパスワードスキームです。これはうまく機能しますが、ワンタイムパスワードはonly認証が必要です。後で使用するためにワンタイムパスワードのリストを印刷した場合、そのリストを紛失した場合は、それだけで十分です。
ワンタイムパスワードplus知っているもの(通常のログインパスワード以外のパスワード)が必要になるように認証を設定したい)。答えは [〜#〜] pam [〜#〜] (そして/etc/pam.d/sshd
)しかし、詳細はわかりません。
2つの方法が必要な場合に認証を設定するにはどうすればよいですか?
通常のアカウントとは異なるパスワードを使用したいので、portsツリーからsecurity/pam_pwdfile
を試してください。
基本的に、代替ファイル(形式:username:crypted_password
)を使用して認証することができます。
これを使用するには、次の行を/etc/pam.d/sshd
直前pam_opie
の行に入力します。
auth required /usr/local/lib/pam_pwdfile.so pwdfile /path/to/pwd/file
Duo Security(当社)は オープンソースパッケージ を提供します。これは、OTP、電話コールバック、SMS、およびパスワード、pubkey、または任意のプライマリ認証メカニズムを使用したSSHのスマートフォンプッシュ認証をサポートします-PAMの有無にかかわらず:
http://blog.duosecurity.com/2011/04/announcing-duos-two-factor-authentication-for-unix/
これがpamを使用すると仮定すると、2つの必要なモジュールを/etc/pam.d/に配置するのと同じくらい簡単なはずです。 1つはOpie用で、もう1つは他の認証用です。 (たとえば、通常のUNIXパスワード)
Pam-radiusの使用を検討してください。 BSDでコンパイルする必要があります。すべてのエンタープライズ対応の2要素認証システムはradiusをサポートしています。半径は非常に標準的な標準であるため、柔軟性が高くなります。
HTH。