Linux-PAM-1.5.3

Linux PAM の概要

Linux PAM パッケージは、プラグイン方式の認証モジュール (Pluggable Authentication Modules) を提供します。 これはローカルのシステム管理者が、各アプリケーションに対してどのユーザーにどのような権限を与えるかを制御する有用な機能です。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

追加のダウンロード

任意のドキュメント

Linux PAM の依存パッケージ

任意

libnsl-2.0.1, libtirpc-1.3.4, Berkeley DB (非推奨), libaudit, and Prelude

[注記]

注記

Shadow-4.14.2 must be reinstalled and reconfigured after installing and configuring Linux PAM.

Linux PAM のインストール

First, prevent the installation of an unneeded systemd file:

sed -e /service_DATA/d \
    -i modules/pam_namespace/Makefile.am &&
autoreconf

ドキュメントをダウンロードしている場合は、以下のコマンドを実行して tarball を解凍します。

tar -xf ../Linux-PAM-1.5.3-docs.tar.xz --strip-components=1

Compile and link Linux PAM by running the following commands:

./configure --prefix=/usr                        \
            --sbindir=/usr/sbin                  \
            --sysconfdir=/etc                    \
            --libdir=/usr/lib                    \
            --enable-securedir=/usr/lib/security \
            --docdir=/usr/share/doc/Linux-PAM-1.5.3 &&
make

コンパイル結果をテストするには、設定ファイル /etc/pam.d/other が適切に用意されていなければなりません。

[注意]

Reinstallation or Upgrade of Linux PAM

If you have a system with Linux PAM installed and working, be careful when modifying the files in /etc/pam.d, since your system may become totally unusable. If you want to run the tests, you do not need to create another /etc/pam.d/other file. The existing file can be used for the tests.

You should also be aware that make install overwrites the configuration files in /etc/security as well as /etc/environment. If you have modified those files, be sure to back them up.

For a first-time installation, create a configuration file by issuing the following commands as the root user:

install -v -m755 -d /etc/pam.d &&

cat > /etc/pam.d/other << "EOF"
auth     required       pam_deny.so
account  required       pam_deny.so
password required       pam_deny.so
session  required       pam_deny.so
EOF

make check によりテストを実行します。 Be sure the tests produced no errors before continuing the installation. Note that the tests are very long. Redirect the output to a log file, so you can inspect it thoroughly.

For a first-time installation, remove the configuration file created earlier by issuing the following command as the root user:

rm -fv /etc/pam.d/other

root ユーザーになって以下を実行します。

make install &&
chmod -v 4755 /usr/sbin/unix_chkpwd

コマンド説明

--enable-securedir=/usr/lib/security: This switch sets the installation location for the PAM modules.

chmod -v 4755 /usr/sbin/unix_chkpwd: パスワードヘルパープログラム unix_chkpwd に対して setuid を設定します。 root 権限ではないプロセスが shadow ファイルにアクセスできるようにするためです。

Linux-PAM の設定

設定ファイル

/etc/security/*/etc/pam.d/*

設定情報

設定情報は /etc/pam.d/ に保持します。 以下はその例です。

# Begin /etc/pam.d/other

auth            required        pam_unix.so     nullok
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so     nullok

# End /etc/pam.d/other

Now create some generic configuration files. As the root user:

install -vdm755 /etc/pam.d &&
cat > /etc/pam.d/system-account << "EOF" &&
# Begin /etc/pam.d/system-account

account   required    pam_unix.so

# End /etc/pam.d/system-account
EOF

cat > /etc/pam.d/system-auth << "EOF" &&
# Begin /etc/pam.d/system-auth

auth      required    pam_unix.so

# End /etc/pam.d/system-auth
EOF

cat > /etc/pam.d/system-session << "EOF" &&
# Begin /etc/pam.d/system-session

session   required    pam_unix.so

# End /etc/pam.d/system-session
EOF

cat > /etc/pam.d/system-password << "EOF"
# Begin /etc/pam.d/system-password

# use yescrypt hash for encryption, use shadow, and try to use any
# previously defined authentication token (chosen password) set by any
# prior module.
password  required    pam_unix.so       yescrypt shadow try_first_pass

# End /etc/pam.d/system-password
EOF

If you wish to enable strong password support, install libpwquality-1.4.5, and follow the instructions on that page to configure the pam_pwquality PAM module with strong password support.

Next, add a restrictive /etc/pam.d/other configuration file. With this file, programs that are PAM aware will not run unless a configuration file specifically for that application exists.

cat > /etc/pam.d/other << "EOF"
# Begin /etc/pam.d/other

auth        required        pam_warn.so
auth        required        pam_deny.so
account     required        pam_warn.so
account     required        pam_deny.so
password    required        pam_warn.so
password    required        pam_deny.so
session     required        pam_warn.so
session     required        pam_deny.so

# End /etc/pam.d/other
EOF

The PAM man page (man pam) provides a good starting point to learn about the several fields, and allowable entries. The Linux-PAM System Administrators' Guide is recommended for additional information.

[重要]

重要

You should now reinstall the Shadow-4.14.2 package .

パッケージ構成

インストールプログラム: faillock, mkhomedir_helper, pam_namespace_helper, pam_timestamp_check, pwhistory_helper, unix_chkpwd, unix_update
インストールライブラリ: libpam.so, libpamc.so, libpam_misc.so
インストールディレクトリ: /etc/security, /usr/lib/security, /usr/include/security, /usr/share/doc/Linux-PAM-1.5.3

概略説明

faillock

displays and modifies the authentication failure record files

mkhomedir_helper

is a helper binary that creates home directories

pam_namespace_helper

is a helper program used to configure a private namespace for a user session

pwhistory_helper

is a helper program that transfers password hashes from passwd or shadow to opasswd

pam_timestamp_check

is used to check if the default timestamp is valid

unix_chkpwd

is a helper binary that verifies the password of the current user

unix_update

is a helper binary that updates the password of a given user

libpam.so

アプリケーションと PAM モジュールの間のインターフェースを提供します。