source: postlfs/security/cracklib.xml@ 22861b3

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 22861b3 was 22861b3, checked in by Randy McMurchy <randy@…>, 19 years ago

Modified the CrackLib instructions to use some contributed text from Alex and provided additional word lists and instructions

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

  • Property mode set to 100644
File size: 9.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY cracklib-download-http "http://prdownloads.sourceforge.net/cracklib/cracklib-&cracklib-version;.tar.gz">
8 <!ENTITY cracklib-download-ftp " ">
9 <!ENTITY cracklib-http-md5sum "13f82f75b892cbd0ba7cb9069e307006">
10 <!ENTITY cracklib-size "480 KB">
11 <!ENTITY cracklib-buildsize "27.6 MB">
12 <!ENTITY cracklib-time "0.1 SBU">
13 <!ENTITY crackdict-download "http://prdownloads.sourceforge.net/cracklib/cracklib-words.gz">
14 <!ENTITY crackdict-size "4.4 MB">
15 <!ENTITY crackdict-md5sum "d18e670e5df560a8745e1b4dede8f84f">
16]>
17
18<sect1 id="cracklib" xreflabel="CrackLib-&cracklib-version;">
19 <?dbhtml filename="cracklib.html"?>
20
21 <sect1info>
22 <othername>$LastChangedBy$</othername>
23 <date>$Date$</date>
24 </sect1info>
25
26 <title>CrackLib-&cracklib-version;</title>
27
28 <indexterm zone="cracklib">
29 <primary sortas="a-CrackLib">CrackLib</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to CrackLib</title>
34
35 <para>The <application>CrackLib</application> package contains a
36 library used to enforce strong passwords by comparing user selected
37 passwords to words in chosen word lists.</para>
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>Download (HTTP): <ulink url="&cracklib-download-http;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download (FTP): <ulink url="&cracklib-download-ftp;"/></para>
46 </listitem>
47 <listitem>
48 <para>Download MD5 sum: &cracklib-http-md5sum;</para>
49 </listitem>
50 <listitem>
51 <para>Download size: &cracklib-size;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated disk space required: &cracklib-buildsize;</para>
55 </listitem>
56 <listitem>
57 <para>Estimated build time: &cracklib-time;</para>
58 </listitem>
59 </itemizedlist>
60
61 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
62 <itemizedlist spacing='compact'>
63 <listitem>
64 <para>Recommended word list for English-speaking locales (size:
65 &crackdict-size;; md5sum: &crackdict-md5sum;):
66 <ulink url="&crackdict-download;"/></para>
67 </listitem>
68 <listitem>
69 <para>Additional word lists:
70 <ulink url="http://www.cotse.com/tools/wordlists.htm"/></para>
71 </listitem>
72 <listitem>
73 <para>Required patch to create a library used with the Heimdal
74 Kerberos 5 package: <ulink
75 url="&patch-root;/cracklib-&cracklib-version;-heimdal-1.patch"/></para>
76 </listitem>
77 </itemizedlist>
78
79 <important>
80 <para>Users tend to base their passwords on regular words of the spoken
81 language, and crackers know that. <application>CrackLib</application> is
82 intended to filter out such bad passwords at the source using a
83 dictionary created from word lists. To accomplish this, the word list(s)
84 for use with <application>CrackLib</application> must be an exhaustive
85 list of words and word-based keystroke combinations likely to be chosen
86 by users of the system as (guessable) passwords.</para>
87
88 <para>The default word list recommended above for downloading mostly
89 satisfies this role in English-speaking countries. In other situations,
90 it may be necessary to download (or even create) additional word
91 lists.</para>
92
93 <para>Note that word lists suitable for spell-checking are not usable
94 as <application>CrackLib</application> word lists in countries with
95 non-Latin based alphabets, because of <quote>word-based keystroke
96 combinations</quote> that make bad passwords.</para>
97 </important>
98
99 </sect2>
100
101 <sect2 role="installation">
102 <title>Installation of CrackLib</title>
103
104 <para>If desired, apply the <application>Heimdal</application> patch
105 (note that with this patch the original library is not affected; this patch
106 only creates an additional library used by the
107 <application>Heimdal</application> password-checking routines):</para>
108
109<screen><userinput>patch -Np1 -i ../cracklib-&cracklib-version;-heimdal-1.patch</userinput></screen>
110
111 <para>Install <application>CrackLib</application> by running the following
112 commands:</para>
113
114<screen><userinput>./configure --prefix=/usr --datadir=/lib &amp;&amp;
115make</userinput></screen>
116
117 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
118
119<screen role="root"><userinput>make install &amp;&amp;
120mv -v /usr/lib/libcrack.so.2* /lib &amp;&amp;
121ln -v -sf ../../lib/libcrack.so.2.8.0 /usr/lib/libcrack.so</userinput></screen>
122
123 <para>The following commands can be used to install the recommended word
124 list. Other word lists (text based, one word per line) can also be used by
125 simply installing them into
126 <filename class='directory'>/usr/share/dict</filename>.</para>
127
128<screen role="root"><userinput>install -v -m644 -D ../cracklib-words.gz \
129 /usr/share/dict/cracklib-words.gz &amp;&amp;
130gunzip -v /usr/share/dict/cracklib-words.gz &amp;&amp;
131ln -v -s cracklib-words /usr/share/dict/words &amp;&amp;
132echo $(hostname) >>/usr/share/dict/cracklib-extra-words &amp;&amp;
133create-cracklib-dict /usr/share/dict/cracklib-words \
134 /usr/share/dict/cracklib-extra-words</userinput></screen>
135
136 <para>If desired, check the proper operation of the library as an
137 unprivileged user using the tests included with the package:</para>
138
139<screen><userinput>make test</userinput></screen>
140
141 </sect2>
142
143 <sect2 role="commands">
144 <title>Command Explanations</title>
145
146 <para><parameter>--datadir=/lib</parameter>: This parameter forces the
147 installation of the <application>CrackLib</application> dictionary to the
148 <filename class='directory'>/lib</filename> hierarchy.</para>
149
150 <para><command>mv -v /usr/lib/libcrack.so.2* /lib</command> and
151 <command>ln -v -sf ../../lib/libcrack.so.2.8.0 ...</command>: These two
152 commands move the <filename class='libraryfile'>libcrack.so.2.8.0</filename>
153 library and associated symlink from
154 <filename class='directory'>/usr/lib</filename> to
155 <filename class='directory'>/lib</filename>, then recreates the
156 <filename class='symlink'>/usr/lib/libcrack.so</filename> symlink pointing
157 to the relocated file.</para>
158
159 <para><command>install -v -m644 -D ...</command>: This command creates the
160 <filename class='directory'>/usr/share/dict</filename> directory (if it
161 doesn't already exist) and installs the compressed word list there.</para>
162
163 <para><command>ln -v -s cracklib-words /usr/share/dict/words</command>: The
164 word list is linked to <filename>/usr/share/dict/words</filename> as
165 historically, <filename>words</filename> is the primary word list in the
166 <filename class="directory">/usr/share/dict</filename> directory. Omit this
167 command if you already have a <filename>/usr/share/dict/words</filename>
168 file installed on your system.</para>
169
170 <para><command>echo $(hostname) >>...</command>: The value of
171 <command>hostname</command> is echoed to a file called
172 <filename>cracklib-extra-words</filename>. This extra file is intended to be
173 a site specific list which includes easy to guess passwords such as company
174 or department names, user's names, product names, computer names, domain
175 names, etc.</para>
176
177 <para><command>create-cracklib-dict ...</command>: This command creates the
178 <application>CrackLib</application> dictionary from the word lists. Modify
179 the command to add any additional word lists you have installed.</para>
180
181 </sect2>
182
183 <sect2 role="content">
184 <title>Contents</title>
185
186 <segmentedlist>
187 <segtitle>Installed Programs</segtitle>
188 <segtitle>Installed Libraries</segtitle>
189 <segtitle>Installed Directories</segtitle>
190
191 <seglistitem>
192 <seg>cracklib-check, cracklib-format, cracklib-packer,
193 cracklib-unpacker and create-cracklib-dict</seg>
194 <seg>libcrack.[so,a] and optionally, libcrack_heimdal.[so,a]</seg>
195 <seg>/lib/cracklib and /usr/share/dict</seg>
196 </seglistitem>
197 </segmentedlist>
198
199 <variablelist>
200 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
201 <?dbfo list-presentation="list"?>
202 <?dbhtml list-presentation="table"?>
203
204 <varlistentry id="create-cracklib-dict">
205 <term><filename>create-cracklib-dict</filename></term>
206 <listitem>
207 <para>is used to create the <application>CrackLib</application>
208 dictionary from the given word list(s).</para>
209 <indexterm zone="cracklib create-cracklib-dict">
210 <primary sortas="b-create-cracklib-dict">create-cracklib-dict</primary>
211 </indexterm>
212 </listitem>
213 </varlistentry>
214
215 <varlistentry id="libcrack">
216 <term><filename class='libraryfile'>libcrack.[so,a]</filename></term>
217 <listitem>
218 <para>provides a fast dictionary lookup method for strong
219 password enforcement.</para>
220 <indexterm zone="cracklib libcrack">
221 <primary sortas="c-libcrack">libcrack.[so,a]</primary>
222 </indexterm>
223 </listitem>
224 </varlistentry>
225
226 </variablelist>
227
228 </sect2>
229
230</sect1>
Note: See TracBrowser for help on using the repository browser.