source: server/major/proftpd.xml@ a57b443

10.1 11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt 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 a57b443 was a57b443, checked in by Bruce Dubbs <bdubbs@…>, 3 years ago

Tags and a minor format change.

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

  • Property mode set to 100644
File size: 14.4 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 proftpd-download-http " ">
8 <!ENTITY proftpd-download-ftp "ftp://ftp.proftpd.org/distrib/source/proftpd-&proftpd-version;.tar.gz">
9 <!ENTITY proftpd-md5sum "4a9b8877b2e9b08d70e71ad56c19e2c9">
10 <!ENTITY proftpd-size "19 MB">
11 <!ENTITY proftpd-buildsize "68 MB">
12 <!ENTITY proftpd-time "0.3 SBU">
13]>
14
15<sect1 id="proftpd" xreflabel="ProFTPD-&proftpd-version;">
16 <?dbhtml filename="proftpd.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>ProFTPD-&proftpd-version;</title>
24
25 <indexterm zone="proftpd">
26 <primary sortas="a-proftpd">Proftpd</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to ProFTPD</title>
31
32 <para>
33 The <application>ProFTPD</application> package contains a secure
34 and highly configurable FTP daemon. This is useful for serving large
35 file archives over a network.
36 </para>
37
38 &lfs101_checked;
39
40 <bridgehead renderas="sect3">Package Information</bridgehead>
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>
44 Download (HTTP): <ulink url="&proftpd-download-http;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download (FTP): <ulink url="&proftpd-download-ftp;"/>
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download MD5 sum: &proftpd-md5sum;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download size: &proftpd-size;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated disk space required: &proftpd-buildsize;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Estimated build time: &proftpd-time;
70 </para>
71 </listitem>
72 </itemizedlist>
73<!--
74 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
75 <itemizedlist spacing="compact">
76 <listitem>
77 <para>
78 Required patch:
79 <ulink url="&patch-root;/proftpd-&proftpd-version;-consolidated_fixes-1.patch"/>
80 </para>
81 </listitem>
82 </itemizedlist>
83-->
84 <bridgehead renderas="sect3">ProFTPD Dependencies</bridgehead>
85
86 <bridgehead renderas="sect4">Optional</bridgehead>
87 <para role="optional">
88 <xref linkend="libcap-pam"/>,
89 <xref linkend="libssh2"/>,
90 <xref linkend="linux-pam"/>,
91 <xref linkend="mariadb"/> or <ulink url="http://www.mysql.com/">MySQL</ulink>,
92 <xref linkend="pcre"/>,
93 <xref linkend="postgresql"/>, and
94 <ulink url="https://metacpan.org/pod/Net::SSH2">Net::SSH2</ulink>
95 </para>
96
97 <para condition="html" role="usernotes">User Notes:
98 <ulink url="&blfs-wiki;/proftpd"/></para>
99
100 </sect2>
101
102 <sect2 role="installation">
103 <title>Installation of ProFTPD</title>
104
105 <para>
106 For security reasons, you should install
107 <application>ProFTPD</application> using an unprivileged user and group.
108 As the <systemitem class="username">root</systemitem> user:
109 </para>
110
111<screen role="root"><userinput>groupadd -g 46 proftpd &amp;&amp;
112useradd -c proftpd -d /srv/ftp -g proftpd \
113 -s /usr/bin/proftpdshell -u 46 proftpd &amp;&amp;
114
115install -v -d -m775 -o proftpd -g proftpd /srv/ftp &amp;&amp;
116ln -v -s /bin/false /usr/bin/proftpdshell &amp;&amp;
117echo /usr/bin/proftpdshell &gt;&gt; /etc/shells</userinput></screen>
118<!--
119 <para>
120 First, apply a patch containing various security fixes from
121 the upstream developers:
122 </para>
123
124<screen><userinput remap="pre">patch -Np1 -i ../proftpd-&proftpd-version;-consolidated_fixes-1.patch</userinput></screen>
125-->
126 <para>
127 Install <application>ProFTPD</application> as an unprivileged user by
128 running the following commands:
129 </para>
130
131<screen><userinput>./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run &amp;&amp;
132make</userinput></screen>
133
134 <para>
135 This packages does not come with a usable test suite.
136 </para>
137
138 <para>
139 Now, as the <systemitem class="username">root</systemitem> user:
140 </para>
141
142<screen role="root"><userinput>make install &amp;&amp;
143install -d -m755 /usr/share/doc/proftpd-&proftpd-version; &amp;&amp;
144cp -Rv doc/* /usr/share/doc/proftpd-&proftpd-version;</userinput></screen>
145
146 </sect2>
147
148 <sect2 role="commands">
149 <title>Command Explanations</title>
150
151 <para>
152 <command>install -v -d -m775 -o proftpd -g proftpd /srv/ftp</command>:
153 Create the home directory for <application>ProFTPD</application>.
154 </para>
155
156 <para>
157 <command>ln -v -s /bin/false /usr/bin/proftpdshell</command>:
158 Set the default shell as a link to an invalid shell.
159 </para>
160
161 <para>
162 <command>echo /usr/bin/proftpdshell &gt;&gt; /etc/shells</command>:
163 Fake a valid shell for compatibility purposes.
164 </para>
165
166 <note>
167 <para>
168 The above two commands can be omitted if the following directive is
169 placed in the configuration file:
170 </para>
171
172<screen><literal>RequireValidShell off</literal></screen>
173
174 <para>
175 By default, proftpd will require that users logging in have valid
176 shells. The RequireValidShell directive turns off this requirement.
177 This is only recommended if you are setting up your FTP server
178 exclusively for anonymous downloads.
179 </para>
180 </note>
181
182 <note>
183 <para>
184 Support for most of the dependency packages requires using options
185 passed to the <command>configure</command> script. View the output
186 from <command>./configure --help</command> for complete information
187 about enabling dependency packages.
188 </para>
189 </note>
190
191 </sect2>
192
193 <sect2 role="configuration">
194 <title>Configuring ProFTPD</title>
195
196 <sect3 id='proftpd-config'>
197 <title>Config Files</title>
198
199 <para>
200 <filename>/etc/proftpd.conf</filename>
201 </para>
202
203 <indexterm zone="proftpd proftpd-config">
204 <primary sortas="e-etc-proftpd">/etc/proftpd.conf</primary>
205 </indexterm>
206
207 </sect3>
208
209 <sect3>
210 <title>Configuration Information</title>
211
212 <para>
213 This is a simple, download-only sample configuration. See the
214 <application>ProFTPD</application> documentation in
215 <filename class="directory">/usr/share/doc/proftpd</filename> and
216 consult the website at <ulink url="http://www.proftpd.org/"/> for
217 example configurations.
218 </para>
219
220<screen role="root"><?dbfo keep-together="auto"?><userinput>cat &gt; /etc/proftpd.conf &lt;&lt; "EOF"
221<literal># This is a basic ProFTPD configuration file
222# It establishes a single server and a single anonymous login.
223
224ServerName "ProFTPD Default Installation"
225ServerType standalone
226DefaultServer on
227
228# Port 21 is the standard FTP port.
229Port 21
230# Umask 022 is a good standard umask to prevent new dirs and files
231# from being group and world writable.
232Umask 022
233
234# To prevent DoS attacks, set the maximum number of child processes
235# to 30. If you need to allow more than 30 concurrent connections
236# at once, simply increase this value. Note that this ONLY works
237# in standalone mode, in inetd mode you should use an inetd server
238# that allows you to limit maximum number of processes per service
239<!--# (such as xinetd)-->
240MaxInstances 30
241
242# Set the user and group that the server normally runs at.
243User proftpd
244Group proftpd
245
246# To cause every FTP user to be "jailed" (chrooted) into their home
247# directory, uncomment this line.
248#DefaultRoot ~
249
250
251# Normally, files should be overwritable.
252&lt;Directory /*&gt;
253 AllowOverwrite on
254&lt;/Directory&gt;
255
256# A basic anonymous configuration, no upload directories.
257&lt;Anonymous ~proftpd&gt;
258 User proftpd
259 Group proftpd
260 # Clients should be able to login with "anonymous" as well as "proftpd"
261 UserAlias anonymous proftpd
262
263 # Limit the maximum number of anonymous logins
264 MaxClients 10
265
266 # 'welcome.msg' should be displayed at login, and '.message' displayed
267 # in each newly chdired directory.
268 DisplayLogin welcome.msg
269 DisplayChdir .message
270
271 # Limit WRITE everywhere in the anonymous chroot
272 &lt;Limit WRITE&gt;
273 DenyAll
274 &lt;/Limit&gt;
275&lt;/Anonymous&gt;</literal>
276EOF</userinput></screen>
277
278 </sect3>
279
280 <sect3 id="proftpd-init">
281 <title><phrase revision="sysv">Boot Script</phrase>
282 <phrase revision="systemd">Systemd Unit</phrase></title>
283
284 <para>
285 Install the
286 <phrase revision="sysv"><filename>/etc/rc.d/init.d/proftpd</filename>
287 init script</phrase>
288 <phrase revision="systemd"><filename>proftpd.service</filename>
289 unit</phrase> included in the
290 <xref linkend="bootscripts" revision="sysv"/>
291 <xref linkend="systemd-units" revision="systemd"/>
292 package:
293 </para>
294
295 <indexterm zone="proftpd proftpd-init">
296 <primary sortas="f-proftpd">proftpd</primary>
297 </indexterm>
298
299<screen role="root"><userinput>make install-proftpd</userinput></screen>
300
301 </sect3>
302
303 </sect2>
304
305 <sect2 role="content">
306 <title>Contents</title>
307
308 <segmentedlist>
309 <segtitle>Installed Programs</segtitle>
310 <segtitle>Installed Libraries</segtitle>
311 <segtitle>Installed Directory</segtitle>
312
313 <seglistitem>
314 <seg>
315 ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut,
316 ftptop, ftpwho, in.proftpd (symlink to proftpd), proftpd, and prxs
317 </seg>
318 <seg>
319 None
320 </seg>
321 <seg>
322 /usr/{include,lib}/proftpd
323 </seg>
324 </seglistitem>
325 </segmentedlist>
326
327 <variablelist>
328 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
329 <?dbfo list-presentation="list"?>
330 <?dbhtml list-presentation="table"?>
331
332 <varlistentry id="proftpd-prog">
333 <term><command>proftpd</command></term>
334 <listitem>
335 <para>
336 is the FTP daemon
337 </para>
338 <indexterm zone="proftpd proftpd-prog">
339 <primary sortas="b-proftpd">proftpd</primary>
340 </indexterm>
341 </listitem>
342 </varlistentry>
343
344 <varlistentry id="ftpcount">
345 <term><command>ftpcount</command></term>
346 <listitem>
347 <para>
348 shows the current number of connections
349 </para>
350 <indexterm zone="proftpd ftpcount">
351 <primary sortas="b-ftpcount">ftpcount</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="ftpdctl">
357 <term><command>ftpdctl</command></term>
358 <listitem>
359 <para>
360 is used to control the proftpd daemon while it is running
361 </para>
362 <indexterm zone="proftpd ftpdctl">
363 <primary sortas="b-ftpdctl">ftpdctl</primary>
364 </indexterm>
365 </listitem>
366 </varlistentry>
367
368 <varlistentry id="ftpasswd">
369 <term><command>ftpasswd</command></term>
370 <listitem>
371 <para>
372 is a Perl script designed to create and manage
373 AuthUserFiles and AuthGroupFiles of the correct format for proftpd
374 </para>
375 <indexterm zone="proftpd ftpasswd">
376 <primary sortas="b-ftpasswd">ftpasswd</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="ftpmail">
382 <term><command>ftpmail</command></term>
383 <listitem>
384 <para>
385 is a Perl script for sending email based on the proftpd TransferLog
386 </para>
387 <indexterm zone="proftpd ftpmail">
388 <primary sortas="b-ftpmail">ftpmail</primary>
389 </indexterm>
390 </listitem>
391 </varlistentry>
392
393 <varlistentry id="ftpquota">
394 <term><command>ftpquota</command></term>
395 <listitem>
396 <para>
397 is a Perl script designed to create and manage limits and tally
398 files for the mod_quotatab + mod_quotatab_file module combination
399 for proftpd
400 </para>
401 <indexterm zone="proftpd ftpquota">
402 <primary sortas="b-ftpquota">ftpquota</primary>
403 </indexterm>
404 </listitem>
405 </varlistentry>
406
407 <varlistentry id="ftpscrub">
408 <term><command>ftpscrub</command></term>
409 <listitem>
410 <para>
411 provides a way to scrub the scoreboard file on demand
412 </para>
413 <indexterm zone="proftpd ftpscrub">
414 <primary sortas="b-ftpscrub">ftpscrub</primary>
415 </indexterm>
416 </listitem>
417 </varlistentry>
418
419 <varlistentry id="ftpshut">
420 <term><command>ftpshut</command></term>
421 <listitem>
422 <para>
423 shuts down all <application>proftpd</application> servers
424 at a given time
425 </para>
426 <indexterm zone="proftpd ftpshut">
427 <primary sortas="b-ftpshut">ftpshut</primary>
428 </indexterm>
429 </listitem>
430 </varlistentry>
431
432 <varlistentry id="ftptop">
433 <term><command>ftptop</command></term>
434 <listitem>
435 <para>
436 displays running status on connections
437 </para>
438 <indexterm zone="proftpd ftptop">
439 <primary sortas="b-ftptop">ftptop</primary>
440 </indexterm>
441 </listitem>
442 </varlistentry>
443
444 <varlistentry id="ftpwho">
445 <term><command>ftpwho</command></term>
446 <listitem>
447 <para>
448 shows current process information for each session
449 </para>
450 <indexterm zone="proftpd ftpwho">
451 <primary sortas="b-ftpwho">ftpwho</primary>
452 </indexterm>
453 </listitem>
454 </varlistentry>
455
456 <varlistentry id="prxs">
457 <term><command>prxs</command></term>
458 <listitem>
459 <para>
460 is a Perl script designed to compile and install third-party
461 modules, from source code, as DSO modules for the installed
462 proftpd
463 </para>
464 <indexterm zone="proftpd prxs">
465 <primary sortas="b-prxs">prxs</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469
470 </variablelist>
471
472 </sect2>
473
474</sect1>
Note: See TracBrowser for help on using the repository browser.