it-swarm-ja.com

LinuxのPAM(Pluggable Authentication Modules)とは何ですか?

LinuxのPAM(Pluggable Authentication Modules)とは何ですか?認証に使用されていることは知っていますが、これはどのようなメリットがありますか?どのように機能しますか?

CentOS6.2を使用しています。

4
max

一言で言えば、[〜#〜] pam [〜#〜]Pluggable Authentication Modules

その名前が示すように、プラグインスタイルのアーキテクチャを使用しています。 PAMは、各プログラムが独自の認証メカニズムを実装する必要がないようにします。代わりに、PAMスタックをチェックするだけです。

PAMはプラグイン可能であるため、認証スタックを好きなように構成できます。 LDAP、NIS、RADIUS、MySQL、Oracle、BerkelyDB、SQLite、RSAトークン、x509証明書、フラットファイル、ワンタイムパスワード、Google 2要素、月のフェーズなどに対する認証は、すべて任意の組み合わせで構成できます。

PAMは、スタックがアクティブ化、失敗、または成功したときに、ファイルシステムのマウント、ディレクトリの作成、ロギング、またはその他のアクションなどのアクションをトリガーすることもできます。

PAMはスイスアーミーナイフの認証であり、あらゆるアプリケーションに必要なあらゆる方法でカスタムテーラー認証に無限の柔軟性をもたらします。

それがなければ、すべてのプログラムがこれらすべての機能を独立してサポートする必要があり、それは確かに悲しい世界です。

8
bahamat

たぶん、この概要はあなたが知りたいことすべて、またはさらに多くの良いスタートを与えるでしょう: http://www.linux-pam.org/Linux-PAM-html/sag-overview.html

いくつかの引用:

Linux-PAMは、4つの異なるタイプの(管理)タスクを処理します。これらは次のとおりです。認証管理。アカウント管理;セッション管理;およびパスワード管理。

    Here is a figure that describes the overall organization of Linux-PAM:

  +----------------+
  | application: X |
  +----------------+       /  +----------+     +================+
  | authentication-[---->--\--] Linux-   |--<--| PAM config file|
  |       +        [----<--/--]   PAM    |     |================|
  |[conversation()][--+    \  |          |     | X auth .. a.so |
  +----------------+  |    /  +-n--n-----+     | X auth .. b.so |
  |                |  |       __|  |           |           _____/
  |  service user  |  A      |     |           |____,-----'
  |                |  |      V     A
  +----------------+  +------|-----|---------+ -----+------+
                         +---u-----u----+    |      |      |
                         |   auth....   |--[ a ]--[ b ]--[ c ]
                         +--------------+
                         |   acct....   |--[ b ]--[ d ]
                         +--------------+
                         |   password   |--[ b ]--[ c ]
                         +--------------+
                         |   session    |--[ e ]--[ c ]
                         +--------------+
7
user118305

PAMは、アプリケーションが「認証関連のアクティビティ」と呼ぶものを実行するのを支援するフレームワークです。 PAMのコア部分は、ライブラリ(libpam)とPAMモジュールのコレクションであり、これらはフォルダ/ lib/security内のダイナミックリンクライブラリ(.so)ファイルです。

[〜#〜]注[〜#〜]

1.変更する前に、すべてのデータとPAM構成ファイルをバックアップします。

2.設定オプションの実行には注意してください。設定が間違っていると、ルートアクセスを含むすべてのログインアクセスがロックダウンされる可能性があります。

3.PAM構文を正しく読みます。

以下はいくつかの例です。これを試すときは注意してください。

すべてのユーザーがパスワードなしでrootにsuできるようにします。

このために、ファイル/etc/pam.d/suを編集し、認証スタックに関連する行をコメントアウトして、1行に置き換えます。

十分な認証pam_permit.so

これをテストするには通常のユーザーとしてログインし、su-を使用してパスワードを入力せずにrootになることができることを確認します。

 [raj @ avi〜] $ su-
 [root @ avi〜]#

直接ルートログインを無効にする

注:これを行う前に、suを使用してrootになることができるアカウントが少なくとも1つあることを確認してください。そうしないと、マシンからロックアウトされます。

仮想端末でrootログインを無効にするには、ファイル/ etc/pam/d/loginを編集して、エントリを追加します。

認証が必要ですpam_securetty.so

このモジュールは、/ etc/securettyにリストされていない端末デバイスでのrootログインを防ぎます。

 tty1 
#tty2 
#tty3 
 tty4 
 tty5 

#tty2と#tty3にコメントすると、仮想端末tty2とtty3からrootとして直接ログインすることはできません。

root以外のユーザーがシステムをシャットダウンしないようにします

例としてhaltコマンドのPAM構成を取り上げ、ファイル/etc/pam.d/haltを編集します。このような

十分な認証pam_rootok.so

認証が必要ですpam_deny.so

このログインを通常のユーザーとしてテストし、haltコマンドを試すと、以下のエラーが発生します。

 [test2 @ avi〜] $停止
停止:ルートである必要があります
 [test2 @ avi〜] $ 

これらはほんの一例です。

オリジナル ソース

5
max