Installation of Linux PAM
First, prevent the installation of an unneeded systemd file:
sed -e /service_DATA/d \
-i modules/pam_namespace/Makefile.am &&
autoreconf
If you downloaded the documentation, unpack the tarball by issuing
the following command.
tar -xf ../Linux-PAM-1.5.2-docs.tar.xz --strip-components=1
If you want to regenerate the documentation yourself, fix the
configure script so it will detect lynx:
sed -e 's/dummy elinks/dummy lynx/' \
-e 's/-no-numbering -no-references/-force-html -nonumbers -stdin/' \
-i configure
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.2 &&
make
To test the results, a suitable /etc/pam.d/other
configuration file must exist.
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
Now run the tests by issuing 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
Now, as the root
user:
make install &&
chmod -v 4755 /usr/sbin/unix_chkpwd
Command Explanations
--enable-securedir=/usr/lib/security
:
This switch sets the installation location for the
PAM modules.
--disable-regenerate-docu
: If the needed dependencies
(docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37, and Lynx-2.8.9rel.1 or W3m) are installed, the manual pages, and the
html and text documentation files, are generated and installed.
Furthermore, if fop-2.8 is installed, the PDF
documentation is generated and installed. Use this switch if you do not
want to rebuild the documentation.
chmod -v 4755 /usr/sbin/unix_chkpwd:
The setuid bit for the unix_chkpwd helper program must be
turned on, so that non-root
processes can access the shadow file.
Configuring Linux-PAM
Configuration Files
/etc/security/*
and
/etc/pam.d/*
Configuration Information
Configuration information is placed in
/etc/pam.d/
.
Here is a sample file:
# 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 sha512 hash for encryption, use shadow, and try to use any previously
# defined authentication token (chosen password) set by any prior module.
# Use the same number of rounds as shadow.
password required pam_unix.so sha512 shadow try_first_pass \
rounds=500000
# 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.
Important
You should now reinstall the Shadow-4.13
package
.