source: postlfs/security/cracklib.xml@ eed39e3

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since eed39e3 was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 18 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

  • Property mode set to 100644
File size: 12.5 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 cracklib-url "https://github.com/cracklib/cracklib/releases/download">
8
9 <!ENTITY cracklib-download-http "&cracklib-url;/v&cracklib-version;/cracklib-&cracklib-version;.tar.bz2">
10 <!ENTITY cracklib-download-ftp " ">
11 <!ENTITY cracklib-md5sum "a242301bad13421476db8eecbbc9536a">
12 <!ENTITY cracklib-size "600 KB">
13 <!ENTITY cracklib-buildsize "6.7 MB">
14 <!ENTITY cracklib-time "0.1 SBU">
15
16 <!ENTITY crackdict-download "&cracklib-url;/v&cracklib-version;/cracklib-words-&cracklib-version;.bz2">
17 <!ENTITY crackdict-size "6.7 MB">
18 <!ENTITY crackdict-md5sum "94e9963e4786294f7fb0f2efd7618551">
19]>
20
21<sect1 id="cracklib" xreflabel="CrackLib-&cracklib-version;">
22 <?dbhtml filename="cracklib.html"?>
23
24
25 <title>CrackLib-&cracklib-version;</title>
26
27 <indexterm zone="cracklib">
28 <primary sortas="a-CrackLib">CrackLib</primary>
29 </indexterm>
30
31 <sect2 role="package">
32 <title>Introduction to CrackLib</title>
33
34 <para>
35 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.
38 </para>
39
40 &lfs112_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&cracklib-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&cracklib-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &cracklib-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &cracklib-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &cracklib-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &cracklib-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
77 <itemizedlist spacing="compact">
78 <listitem>
79 <para>
80 Recommended word list for English-speaking countries (size:
81 &crackdict-size;; md5sum: &crackdict-md5sum;):
82 <ulink url="&crackdict-download;"/>
83 </para>
84 </listitem>
85 </itemizedlist>
86
87 <para>
88 There are additional word lists available for download, e.g., from
89 <ulink url="https://wiki.skullsecurity.org/index.php/Passwords"/>.
90 <application>CrackLib</application> can utilize as many, or as few word
91 lists you choose to install.
92 </para>
93
94 <important>
95 <para>
96 Users tend to base their passwords on regular words of the spoken
97 language, and crackers know that. <application>CrackLib</application>
98 is intended to filter out such bad passwords at the source using a
99 dictionary created from word lists. To accomplish this, the word
100 list(s) for use with <application>CrackLib</application> must be an
101 exhaustive list of words and word-based keystroke combinations likely
102 to be chosen by users of the system as (guessable) passwords.
103 </para>
104
105 <para>
106 The default word list recommended above for downloading mostly
107 satisfies this role in English-speaking countries. In other situations,
108 it may be necessary to download (or even create) additional word lists.
109 </para>
110
111 <para>
112 Note that word lists suitable for spell-checking are not usable
113 as <application>CrackLib</application> word lists in countries with
114 non-Latin based alphabets, because of <quote>word-based keystroke
115 combinations</quote> that make bad passwords.
116 </para>
117 </important>
118
119 <para condition="html" role="usernotes">User Notes:
120 <ulink url="&blfs-wiki;/cracklib"/>
121 </para>
122 </sect2>
123
124 <sect2 role="installation">
125 <title>Installation of CrackLib</title>
126
127 <para>
128 Install <application>CrackLib</application> by running the following
129 commands:
130 </para>
131
132<screen><userinput>autoreconf -fiv &amp;&amp;
133
134PYTHON=python3 \
135./configure --prefix=/usr \
136 --disable-static \
137 --with-default-dict=/usr/lib/cracklib/pw_dict &amp;&amp;
138make</userinput></screen>
139
140 <para>
141 Now, as the <systemitem class="username">root</systemitem> user:
142 </para>
143
144<screen role="root"><userinput>make install</userinput></screen>
145
146 <para>
147 Issue the following commands as the
148 <systemitem class="username">root</systemitem> user to install the
149 recommended word list and create the <application>CrackLib</application>
150 dictionary. Other word lists (text based, one word per line) can also be
151 used by simply installing them into
152 <filename class="directory">/usr/share/dict</filename> and adding them
153 to the <command>create-cracklib-dict</command> command.
154 </para>
155
156<screen role="root"><userinput>install -v -m644 -D ../cracklib-words-&cracklib-version;.bz2 \
157 /usr/share/dict/cracklib-words.bz2 &amp;&amp;
158
159bunzip2 -v /usr/share/dict/cracklib-words.bz2 &amp;&amp;
160ln -v -sf cracklib-words /usr/share/dict/words &amp;&amp;
161echo $(hostname) >> /usr/share/dict/cracklib-extra-words &amp;&amp;
162install -v -m755 -d /usr/lib/cracklib &amp;&amp;
163
164create-cracklib-dict /usr/share/dict/cracklib-words \
165 /usr/share/dict/cracklib-extra-words</userinput></screen>
166
167 <para>
168 If desired, check the proper operation of the library as an
169 unprivileged user by issuing the following command:
170 </para>
171
172<screen remap="test"><userinput>make test</userinput></screen>
173
174 <important>
175 <para>
176 If you are installing <application>CrackLib</application> after
177 your LFS system has been completed and you have the
178 <application>Shadow</application> package installed, you must
179 reinstall <xref linkend="shadow"/> if you wish to provide strong
180 password support on your system. If you are now going to install the
181 <xref linkend="linux-pam"/> package, you may disregard this note as
182 <application>Shadow</application> will be reinstalled after the
183 <application>Linux-PAM</application> installation.
184 </para>
185 </important>
186
187 </sect2>
188
189 <sect2 role="commands">
190 <title>Command Explanations</title>
191
192 <para>
193 <command>sed -i '/skipping/d' util/packer.c</command>:
194 Remove a meaningless warning.
195 </para>
196
197 <para>
198 <command>autoreconf -fiv</command>: The configure script shipped with
199 the package is too old to get the right version string of Python
200 3.10 or later. This command regenerates it with a more recent version
201 of autotools, which fixes the issue.
202 </para>
203
204 <para>
205 <envar>PYTHON=python3</envar>: This forces the installation of
206 python bindings for Python 3, even if Python 2 is installed.
207 </para>
208 <!-- fixed by autoreconf
209 <para>
210 <envar>CPPFLAGS=-I/usr/include/python&python3-majorver;</envar>:
211 This works around an issue caused by incorrect usage of Python 3
212 headers.
213 </para>
214 -->
215 <para>
216 <parameter>--with-default-dict=/lib/cracklib/pw_dict</parameter>:
217 This parameter forces the installation of the
218 <application>CrackLib</application> dictionary to the
219 <filename class="directory">/lib</filename> hierarchy.
220 </para>
221
222 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
223 href="../../xincludes/static-libraries.xml"/>
224
225 <para>
226 <command>install -v -m644 -D ...</command>: This command creates the
227 <filename class="directory">/usr/share/dict</filename> directory (if it
228 doesn't already exist) and installs the compressed word list there.
229 </para>
230
231 <para>
232 <command>ln -v -s cracklib-words /usr/share/dict/words</command>: The
233 word list is linked to <filename>/usr/share/dict/words</filename> as
234 historically, <filename>words</filename> is the primary word list in the
235 <filename class="directory">/usr/share/dict</filename> directory. Omit
236 this command if you already have a
237 <filename>/usr/share/dict/words</filename> file installed on your system.
238 </para>
239
240 <para>
241 <command>echo $(hostname) >>...</command>: The value of
242 <command>hostname</command> is echoed to a file called
243 <filename>cracklib-extra-words</filename>. This extra file is intended
244 to be a site specific list which includes easy to guess passwords such
245 as company or department names, user names, product names, computer
246 names, domain names, etc.
247 </para>
248
249 <para>
250 <command>create-cracklib-dict ...</command>: This command creates the
251 <application>CrackLib</application> dictionary from the word lists.
252 Modify the command to add any additional word lists you have installed.
253 </para>
254
255 </sect2>
256
257 <sect2 role="content">
258 <title>Contents</title>
259
260 <segmentedlist>
261 <segtitle>Installed Programs</segtitle>
262 <segtitle>Installed Libraries</segtitle>
263 <segtitle>Installed Directories</segtitle>
264
265 <seglistitem>
266 <seg>cracklib-check, cracklib-format, cracklib-packer,
267 cracklib-unpacker and create-cracklib-dict</seg>
268
269 <seg>libcrack.so and the _cracklib.so
270 (<application>Python</application> module)</seg>
271
272 <seg>/lib/cracklib, /usr/share/dict and /usr/share/cracklib</seg>
273 </seglistitem>
274 </segmentedlist>
275
276 <variablelist>
277 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
278 <?dbfo list-presentation="list"?>
279 <?dbhtml list-presentation="table"?>
280
281 <varlistentry id="cracklib-check">
282 <term><command>cracklib-check</command></term>
283 <listitem>
284 <para>
285 is used to determine if a password is strong
286 </para>
287 <indexterm zone="cracklib cracklib-check">
288 <primary sortas="b-cracklib-check">cracklib-check</primary>
289 </indexterm>
290 </listitem>
291 </varlistentry>
292
293 <varlistentry id="cracklib-format">
294 <term><command>cracklib-format</command></term>
295 <listitem>
296 <para>
297 is used to format text files (lowercases all words,
298 removes control characters and sorts the lists)
299 </para>
300 <indexterm zone="cracklib cracklib-format">
301 <primary sortas="b-cracklib-format">cracklib-format</primary>
302 </indexterm>
303 </listitem>
304 </varlistentry>
305
306 <varlistentry id="cracklib-packer">
307 <term><command>cracklib-packer</command></term>
308 <listitem>
309 <para>
310 creates a database with words read from standard input
311 </para>
312 <indexterm zone="cracklib cracklib-packer">
313 <primary sortas="b-cracklib-packer">cracklib-packer</primary>
314 </indexterm>
315 </listitem>
316 </varlistentry>
317
318 <varlistentry id="cracklib-unpacker">
319 <term><command>cracklib-unpacker</command></term>
320 <listitem>
321 <para>
322 displays on standard output the database specified
323 </para>
324 <indexterm zone="cracklib cracklib-packer">
325 <primary sortas="b-cracklib-packer">cracklib-packer</primary>
326 </indexterm>
327 </listitem>
328 </varlistentry>
329
330 <varlistentry id="create-cracklib-dict">
331 <term><command>create-cracklib-dict</command></term>
332 <listitem>
333 <para>
334 is used to create the <application>CrackLib</application>
335 dictionary from the given word list(s)
336 </para>
337 <indexterm zone="cracklib create-cracklib-dict">
338 <primary sortas="b-create-cracklib-dict">create-cracklib-dict</primary>
339 </indexterm>
340 </listitem>
341 </varlistentry>
342
343 <varlistentry id="libcrack">
344 <term><filename class="libraryfile">libcrack.so</filename></term>
345 <listitem>
346 <para>
347 provides a fast dictionary lookup method for strong
348 password enforcement
349 </para>
350 <indexterm zone="cracklib libcrack">
351 <primary sortas="c-libcrack">libcrack.so</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 </variablelist>
357
358 </sect2>
359
360</sect1>
Note: See TracBrowser for help on using the repository browser.