source: server/major/proftpd.xml@ 51d044f

systemd-13485
Last change on this file since 51d044f was 51d044f, checked in by DJ Lucas <dj@…>, 8 years ago

Remainder of -systemd.xml cleanup.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/systemd@16882 af4574ff-66df-0310-9fd7-8a98e5e911e0

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