source: postlfs/security/linux-pam.xml@ faee06a

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since faee06a was faee06a, checked in by Bruce Dubbs <bdubbs@…>, 9 years ago

Fix md5sum in sddm.
Add comment about length of checks in pam.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@16425 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 15.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY linux-pam-download-http "http://linux-pam.org/library/Linux-PAM-&linux-pam-version;.tar.bz2">
8 <!ENTITY linux-pam-download-ftp " ">
9 <!ENTITY linux-pam-md5sum "9dc53067556d2dd567808fd509519dd6">
10 <!ENTITY linux-pam-size "1.3 MB">
11 <!ENTITY linux-pam-buildsize "33 MB (with tests)">
12 <!ENTITY linux-pam-time "0.3 SBU (with tests)">
13
14 <!ENTITY linux-pam-docs-download "http://linux-pam.org/documentation/Linux-PAM-&linux-pam-docs-version;-docs.tar.bz2">
15 <!ENTITY linux-pam-docs-md5sum "558378b8be9b8b5c987326f4529f2130">
16 <!ENTITY linux-pam-docs-size "480 KB">
17 <!ENTITY debian-pam-docs "http://debian.securedservers.com/kernel/pub/linux/libs/pam">
18]>
19
20<sect1 id="linux-pam" xreflabel="Linux-PAM-&linux-pam-version;">
21 <?dbhtml filename="linux-pam.html"?>
22
23 <sect1info>
24 <othername>$LastChangedBy$</othername>
25 <date>$Date$</date>
26 </sect1info>
27
28 <title>Linux-PAM-&linux-pam-version;</title>
29
30 <indexterm zone="linux-pam">
31 <primary sortas="a-Linux-PAM">Linux-PAM</primary>
32 </indexterm>
33
34 <sect2 role="package">
35 <title>Introduction to Linux PAM</title>
36
37 <para>
38 The <application>Linux PAM</application> package contains
39 Pluggable Authentication Modules used to enable the local
40 system administrator to choose how applications authenticate
41 users.
42 </para>
43
44 &lfs78_checked;
45
46 <bridgehead renderas="sect3">Package Information</bridgehead>
47 <itemizedlist spacing="compact">
48 <listitem>
49 <para>
50 Download (HTTP): <ulink url="&linux-pam-download-http;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download (FTP): <ulink url="&linux-pam-download-ftp;"/>
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download MD5 sum: &linux-pam-md5sum;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Download size: &linux-pam-size;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated disk space required: &linux-pam-buildsize;
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Estimated build time: &linux-pam-time;
76 </para>
77 </listitem>
78 </itemizedlist>
79
80 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
81 <itemizedlist spacing="compact">
82 <title>Optional Documentation</title>
83 <listitem>
84 <para>
85 Download (HTTP): <ulink url="&linux-pam-docs-download;"/>
86 </para>
87 </listitem>
88 <listitem>
89 <para>
90 Download MD5 sum: &linux-pam-docs-md5sum;
91 </para>
92 </listitem>
93 <listitem>
94 <para>
95 Download size &linux-pam-docs-size;
96 </para>
97 </listitem>
98 </itemizedlist>
99
100 <bridgehead renderas="sect3">Linux PAM Dependencies</bridgehead>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
104 <xref linkend="db"/>,
105 <xref linkend="cracklib"/>,
106 <xref linkend="libtirpc"/> and
107 <ulink url="http://www.prelude-ids.org/">Prelude</ulink>
108 </para>
109
110 <bridgehead renderas="sect4">Optional (To Rebuild the Documentation)</bridgehead>
111 <para role="optional">
112 <xref linkend="DocBook"/>,
113 <xref linkend="docbook-xsl"/>,
114 <xref linkend="fop"/>,
115 <xref linkend="libxslt"/> and
116 <xref linkend="w3m"/>
117 </para>
118
119 <para condition="html" role="usernotes">User Notes:
120 <ulink url="&blfs-wiki;/linux-pam"/>
121 </para>
122 </sect2>
123
124 <sect2 role="installation">
125 <title>Installation of Linux PAM</title>
126
127 <para>
128 If you downloaded the documentation, unpack the tarball by issuing
129 the following command.
130 </para>
131
132<screen><userinput>tar -xf ../Linux-PAM-&linux-pam-docs-version;-docs.tar.bz2 --strip-components=1</userinput></screen>
133
134 <para>
135 Install <application>Linux PAM</application> by
136 running the following commands:
137 </para>
138
139<screen><userinput>./configure --prefix=/usr \
140 --sysconfdir=/etc \
141 --libdir=/usr/lib \
142 --enable-securedir=/lib/security \
143 --docdir=/usr/share/doc/Linux-PAM-&linux-pam-version; &amp;&amp;
144make</userinput></screen>
145
146 <para>
147 To test the results, a suitable <filename>/etc/pam.d/other</filename>
148 configuration file must exist.
149 </para>
150
151 <caution>
152 <title>Reinstallation or upgrade of Linux PAM</title>
153 <para>
154 If you have a system with Linux PAM installed and working, be careful
155 when modifying the files in
156 <filename class="directory">/etc/pam.d</filename>, since your system
157 may become totally unusable. If you want to run the tests, you do not
158 need to create another <filename>/etc/pam.d/other</filename> file. The
159 installed one can be used for that purpose.
160 </para>
161
162 <para>
163 You should also be aware that <command>make install</command>
164 overwrites the configuration files in
165 <filename class="directory">/etc/security</filename> as well as
166 <filename>/etc/environment</filename>. In case you
167 have modified those files, be sure to backup them.
168 </para>
169 </caution>
170
171 <para>
172 For a first installation, create the configuration file by issuing the
173 following commands as the <systemitem class="username">root</systemitem>
174 user:
175 </para>
176
177<screen role="root"><userinput>install -v -m755 -d /etc/pam.d &amp;&amp;
178
179cat &gt; /etc/pam.d/other &lt;&lt; "EOF"
180auth required pam_deny.so
181account required pam_deny.so
182password required pam_deny.so
183session required pam_deny.so
184EOF</userinput></screen>
185
186 <para>
187 Now run the tests by issuing <command>make check</command>.
188 Ensure there are no errors produced by the tests before continuing the
189 installation. Note that the checks are quite long. It may be useful to
190 redirect the output to a log file in order to inspect it thoroughly.
191 </para>
192
193 <para>
194 Only in case of a first installation, remove the configuration file
195 created earlier by issuing the following command as the
196 <systemitem class="username">root</systemitem> user:
197 </para>
198
199<screen role="root"><userinput>rm -fv /etc/pam.d/*</userinput></screen>
200
201 <para>
202 Now, as the <systemitem class="username">root</systemitem>
203 user:
204 </para>
205
206<screen role="root"><userinput>make install &amp;&amp;
207chmod -v 4755 /sbin/unix_chkpwd &amp;&amp;
208
209for file in pam pam_misc pamc
210do
211 mv -v /usr/lib/lib${file}.so.* /lib &amp;&amp;
212 ln -sfv ../../lib/$(readlink /usr/lib/lib${file}.so) /usr/lib/lib${file}.so
213done</userinput></screen>
214
215 </sect2>
216
217 <sect2 role="commands">
218 <title>Command Explanations</title>
219
220 <para>
221 <parameter>--enable-securedir=/lib/security</parameter>:
222 This switch sets install location for the
223 <application>PAM</application> modules.
224 </para>
225
226 <para>
227 <command>chmod -v 4755 /sbin/unix_chkpwd</command>:
228 The <command>unix_chkpwd</command> helper program must be setuid
229 so that non-<systemitem class="username">root</systemitem>
230 processes can access the shadow file.
231 </para>
232
233 </sect2>
234
235 <sect2 role="configuration">
236 <title>Configuring Linux-PAM</title>
237
238 <sect3 id="pam-config">
239 <title>Config Files</title>
240
241 <para>
242 <filename>/etc/security/*</filename> and
243 <filename>/etc/pam.d/*</filename>
244 </para>
245
246 <indexterm zone="linux-pam pam-config">
247 <primary sortas="e-etc-security">/etc/security/*</primary>
248 </indexterm>
249
250 <indexterm zone="linux-pam pam-config">
251 <primary sortas="e-etc-pam.d">/etc/pam.d/*</primary>
252 </indexterm>
253
254 </sect3>
255
256 <sect3>
257 <title>Configuration Information</title>
258
259 <para>
260 Configuration information is placed in
261 <filename class="directory">/etc/pam.d/</filename>.
262 Below is an example file:
263 </para>
264
265<screen><literal># Begin /etc/pam.d/other
266
267auth required pam_unix.so nullok
268account required pam_unix.so
269session required pam_unix.so
270password required pam_unix.so nullok
271
272# End /etc/pam.d/other</literal></screen>
273
274 <para>Now set up some generic files. As root:</para>
275
276<screen role="root"><userinput>cat &gt; /etc/pam.d/system-account &lt;&lt; "EOF"
277<literal># Begin /etc/pam.d/system-account
278
279account required pam_unix.so
280
281# End /etc/pam.d/system-account</literal>
282EOF
283
284cat &gt; /etc/pam.d/system-auth &lt;&lt; "EOF"
285<literal># Begin /etc/pam.d/system-auth
286
287auth required pam_unix.so
288
289# End /etc/pam.d/system-auth</literal>
290EOF
291
292cat &gt; /etc/pam.d/system-session &lt;&lt; "EOF"
293<literal># Begin /etc/pam.d/system-session
294
295session required pam_unix.so
296
297# End /etc/pam.d/system-session</literal>
298EOF</userinput></screen>
299
300 <para>The remaining generic file depends on wheather <xref linkend="cracklib"/>
301 is installed. If it is installed, use:</para>
302
303<screen role="root"><userinput>cat &gt; /etc/pam.d/system-password &lt;&lt; "EOF"
304<literal># Begin /etc/pam.d/system-password
305
306# check new passwords for strength (man pam_cracklib)
307password required pam_cracklib.so type=Linux retry=3 difok=5 \
308 difignore=23 minlen=9 dcredit=1 \
309 ucredit=1 lcredit=1 ocredit=1 \
310 dictpath=/lib/cracklib/pw_dict
311# use sha512 hash for encryption, use shadow, and use the
312# authentication token (chosen password) set by pam_cracklib
313# above (or any previous modules)
314password required pam_unix.so sha512 shadow use_authtok
315
316# End /etc/pam.d/system-password</literal>
317EOF</userinput></screen>
318
319 <note>
320 <para>
321 In its default configuration, pam_cracklib will
322 allow multiple case passwords as short as 6 characters, even with
323 the <parameter>minlen</parameter> value set to 11. You should review
324 the pam_cracklib(8) man page and determine if these default values
325 are acceptable for the security of your system.
326 </para>
327 </note>
328
329 <para>If <xref linkend="cracklib"/> is <emphasis>NOT</emphasis> installed,
330 use:</para>
331
332<screen role="root"><userinput>cat &gt; /etc/pam.d/system-password &lt;&lt; "EOF"
333<literal># Begin /etc/pam.d/system-password
334
335# use sha512 hash for encryption, use shadow, and try to use any previously
336# defined authentication token (chosen password) set by any prior module
337password required pam_unix.so sha512 shadow try_first_pass
338
339# End /etc/pam.d/system-password</literal>
340EOF</userinput></screen>
341
342 <para>Now add a restrictive <filename>/etc/pam.d/other</filename>
343 configuration file. With this file, programs that are PAM aware will not
344 run unless a configuration file specifically for that application is
345 created.</para>
346
347<screen role="root"><userinput>cat &gt; /etc/pam.d/other &lt;&lt; "EOF"
348<literal># Begin /etc/pam.d/other
349
350auth required pam_warn.so
351auth required pam_deny.so
352account required pam_warn.so
353account required pam_deny.so
354password required pam_warn.so
355password required pam_deny.so
356session required pam_warn.so
357session required pam_deny.so
358
359# End /etc/pam.d/other</literal>
360EOF</userinput></screen>
361
362 <para>
363 The <application>PAM</application> man page (<command>man
364 pam</command>) provides a good starting point for descriptions
365 of fields and allowable entries. The <ulink
366 url="http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html">Linux-PAM
367 System Administrators' Guide</ulink> is recommended for additional
368 information.
369 </para>
370
371 <para>
372 Refer to <ulink url="&debian-pam-docs;/modules.html"/> for a list
373 of various third-party modules available.
374 </para>
375
376 <important>
377 <para>
378 You should now reinstall the <xref linkend="shadow"/>
379 package.
380 </para>
381 </important>
382
383 </sect3>
384
385 </sect2>
386
387 <sect2 role="content">
388 <title>Contents</title>
389
390 <segmentedlist>
391 <segtitle>Installed Program</segtitle>
392 <segtitle>Installed Libraries</segtitle>
393 <segtitle>Installed Directories</segtitle>
394
395 <seglistitem>
396 <seg>
397 mkhomedir_helper, pam_tally, pam_tally2,
398 pam_timestamp_check, unix_chkpwd and
399 unix_update
400 </seg>
401 <seg>
402 libpam.so, libpamc.so and libpam_misc.so
403 </seg>
404 <seg>
405 /etc/security,
406 /lib/security,
407 /usr/include/security and
408 /usr/share/doc/Linux-PAM-&linux-pam-version;
409 </seg>
410 </seglistitem>
411 </segmentedlist>
412
413 <variablelist>
414 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
415 <?dbfo list-presentation="list"?>
416 <?dbhtml list-presentation="table"?>
417
418 <varlistentry id="mkhomedir_helper">
419 <term><command>mkhomedir_helper</command></term>
420 <listitem>
421 <para>
422 is a helper binary that creates home directories.
423 </para>
424 <indexterm zone="linux-pam mkhomedir_helper">
425 <primary sortas="b-mkhomedir_helper">mkhomedir_helper</primary>
426 </indexterm>
427 </listitem>
428 </varlistentry>
429
430 <varlistentry id="pam_tally">
431 <term><command>pam_tally</command></term>
432 <listitem>
433 <para>
434 is used to interrogate and manipulate the login counter file.
435 </para>
436 <indexterm zone="linux-pam pam_tally">
437 <primary sortas="b-pam_tally">pam_tally</primary>
438 </indexterm>
439 </listitem>
440 </varlistentry>
441
442 <varlistentry id="pam_tally2">
443 <term><command>pam_tally2</command></term>
444 <listitem>
445 <para>
446 is used to interrogate and manipulate the login counter file, but
447 does not have some limitations that <command>pam_tally</command>
448 does.
449 </para>
450 <indexterm zone="linux-pam pam_tally2">
451 <primary sortas="b-pam_tally2">pam_tally2</primary>
452 </indexterm>
453 </listitem>
454 </varlistentry>
455
456 <varlistentry id="pam_timestamp_check">
457 <term><command>pam_timestamp_check</command></term>
458 <listitem>
459 <para>
460 is used to check if the default timestamp is valid
461 </para>
462 <indexterm zone="linux-pam pam_timestamp_check">
463 <primary sortas="b-pam_timestamp_check">pam_timestamp_check</primary>
464 </indexterm>
465 </listitem>
466 </varlistentry>
467
468 <varlistentry id="unix_chkpwd">
469 <term><command>unix_chkpwd</command></term>
470 <listitem>
471 <para>
472 is a helper binary that verifies the password of the current user.
473 </para>
474 <indexterm zone="linux-pam unix_chkpwd">
475 <primary sortas="b-unix_chkpwd">unix_chkpwd</primary>
476 </indexterm>
477 </listitem>
478 </varlistentry>
479
480 <varlistentry id="unix_update">
481 <term><command>unix_update</command></term>
482 <listitem>
483 <para>
484 is a helper binary that updates the password of a given user.
485 </para>
486 <indexterm zone="linux-pam unix_update">
487 <primary sortas="b-unix_update">unix_update</primary>
488 </indexterm>
489 </listitem>
490 </varlistentry>
491
492 <varlistentry id="libpam">
493 <term><filename class="libraryfile">libpam.so</filename></term>
494 <listitem>
495 <para>
496 provides the interfaces between applications and the
497 PAM modules.
498 </para>
499 <indexterm zone="linux-pam libpam">
500 <primary sortas="c-libpam">libpam.so</primary>
501 </indexterm>
502 </listitem>
503 </varlistentry>
504
505 </variablelist>
506
507 </sect2>
508
509</sect1>
Note: See TracBrowser for help on using the repository browser.