source: server/major/proftpd.xml@ 283bd88

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 283bd88 was 283bd88, checked in by Bruce Dubbs <bdubbs@…>, 11 years ago

Tags for networking and server sections

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

  • Property mode set to 100644
File size: 12.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 "13c6fd7ce320886adc371c81a3e23f07">
10 <!ENTITY proftpd-size "7.4 MB">
11 <!ENTITY proftpd-buildsize "33 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>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 &lfs74_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"/> and to run tests
65 <xref linkend="check"/> and
66 <ulink url='http://search.cpan.org/~clemburg/Test-Unit-0.14/'>Test::Unit-0.14</ulink>
67 </para>
68
69 <para condition="html" role="usernotes">User Notes:
70 <ulink url="&blfs-wiki;/proftpd"/></para>
71
72 </sect2>
73
74 <sect2 role="installation">
75 <title>Installation of ProFTPD</title>
76
77 <para>For security reasons, you should install
78 <application>ProFTPD</application> using an unprivileged user and group.
79 As the <systemitem class="username">root</systemitem> user:</para>
80
81<screen role="root"><userinput>groupadd -g 46 proftpd &amp;&amp;
82useradd -c proftpd -d /srv/ftp -g proftpd \
83 -s /usr/bin/proftpdshell -u 46 proftpd &amp;&amp;
84
85install -v -d -m775 -o proftpd -g proftpd /srv/ftp &amp;&amp;
86ln -v -s /bin/false /usr/bin/proftpdshell &amp;&amp;
87echo /usr/bin/proftpdshell &gt;&gt; /etc/shells</userinput></screen>
88
89 <para>Install <application>ProFTPD</application> as an unprivileged user by
90 running the following commands:</para>
91
92<screen><userinput>./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run &amp;&amp;
93make</userinput></screen>
94
95 <para>The tests for this package require a very old (2001) version of the
96 Perl Module Test::Unit. Using the lastest version of this Test::Unit
97 results in many failures (34/1089) although the program appears to run
98 well. The tests take a long time (38 minutes, not CPU dependent) and are
99 not recommended. To test the results anyway, issue: <command>make
100 check</command>.</para>
101
102 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
103
104<screen role="root"><userinput>make install</userinput></screen>
105
106 </sect2>
107
108 <sect2 role="commands">
109 <title>Command Explanations</title>
110
111 <para><command>install -v -d -m775 -o proftpd -g proftpd
112 /srv/ftp</command>: Create the home directory for
113 <application>ProFTPD</application>.</para>
114
115 <para><command>ln -v -s /bin/false /usr/bin/proftpdshell</command>:
116 Set the default shell as a link to an invalid shell.</para>
117
118 <para><command>echo /usr/bin/proftpdshell &gt;&gt;
119 /etc/shells</command>: Fake a valid shell for compatibility purposes.</para>
120
121 <note>
122 <para>The above two commands can be omitted if the following directive is
123 placed in the configuration file:</para>
124
125<screen><literal>RequireValidShell off</literal></screen>
126
127 <para>By default, proftpd will require that users logging in have valid
128 shells. The RequireValidShell directive turns off this requirement. This
129 is only recommended if you are setting up your FTP server exclusively
130 for anonymous downloads.</para>
131 </note>
132
133 <para><parameter>--sysconfdir=/etc</parameter>: This prevents the
134 configuration files from going to
135 <filename class="directory">/usr/etc</filename>.</para>
136
137 <para><parameter>--localstatedir=/var/run</parameter>:
138 This uses <filename class="directory">/var/run</filename> instead of
139 <filename class="directory">/usr/var</filename> for lock files.</para>
140
141 </sect2>
142
143 <sect2 role="configuration">
144 <title>Configuring ProFTPD</title>
145
146 <sect3 id='proftpd-config'>
147 <title>Config Files</title>
148
149 <para><filename>/etc/proftpd.conf</filename></para>
150
151 <indexterm zone="proftpd proftpd-config">
152 <primary sortas="e-etc-proftpd">/etc/proftpd.conf</primary>
153 </indexterm>
154
155 </sect3>
156
157 <sect3>
158 <title>Configuration Information</title>
159
160 <para>This is a simple, download-only sample configuration. See the
161 <application>ProFTPD</application> documentation in
162 <filename class="directory">/usr/share/doc/proftpd</filename> and
163 consult the website at <ulink url="http://www.proftpd.org/"/> for
164 example configurations.</para>
165
166<screen role="root"><?dbfo keep-together="auto"?><userinput>cat &gt; /etc/proftpd.conf &lt;&lt; "EOF"
167<literal># This is a basic ProFTPD configuration file
168# It establishes a single server and a single anonymous login.
169
170ServerName "ProFTPD Default Installation"
171ServerType standalone
172DefaultServer on
173
174# Port 21 is the standard FTP port.
175Port 21
176# Umask 022 is a good standard umask to prevent new dirs and files
177# from being group and world writable.
178Umask 022
179
180# To prevent DoS attacks, set the maximum number of child processes
181# to 30. If you need to allow more than 30 concurrent connections
182# at once, simply increase this value. Note that this ONLY works
183# in standalone mode, in inetd mode you should use an inetd server
184# that allows you to limit maximum number of processes per service
185<!--# (such as xinetd)-->
186MaxInstances 30
187
188# Set the user and group that the server normally runs at.
189User proftpd
190Group proftpd
191
192# Normally, files should be overwritable.
193&lt;Directory /*&gt;
194 AllowOverwrite on
195&lt;/Directory&gt;
196
197# A basic anonymous configuration, no upload directories.
198&lt;Anonymous ~proftpd&gt;
199 User proftpd
200 Group proftpd
201 # Clients should be able to login with "anonymous" as well as "proftpd"
202 UserAlias anonymous proftpd
203
204 # Limit the maximum number of anonymous logins
205 MaxClients 10
206
207 # 'welcome.msg' should be displayed at login, and '.message' displayed
208 # in each newly chdired directory.
209 DisplayLogin welcome.msg
210 DisplayChdir .message
211
212 # Limit WRITE everywhere in the anonymous chroot
213 &lt;Limit WRITE&gt;
214 DenyAll
215 &lt;/Limit&gt;
216&lt;/Anonymous&gt;</literal>
217EOF</userinput></screen>
218
219 </sect3>
220
221 <sect3 id="proftpd-init">
222 <title>Boot Script</title>
223
224 <para>Install the <filename>/etc/rc.d/init.d/proftpd</filename> init
225 script included in the <xref linkend="bootscripts"/>
226 package.</para>
227
228 <indexterm zone="proftpd proftpd-init">
229 <primary sortas="f-proftpd">proftpd</primary>
230 </indexterm>
231
232<screen role="root"><userinput>make install-proftpd</userinput></screen>
233
234 </sect3>
235
236 </sect2>
237
238 <sect2 role="content">
239 <title>Contents</title>
240
241 <segmentedlist>
242 <segtitle>Installed Programs</segtitle>
243 <segtitle>Installed Libraries</segtitle>
244 <segtitle>Installed Directory</segtitle>
245
246 <seglistitem>
247 <seg>ftpcount, ftpdctl, ftpasswd, ftpmail, ftpquota, ftpscrub,
248 ftptop, ftpshut, ftpcount, ftpwho, and proftpd</seg>
249 <seg>None</seg>
250 <seg>/var/run/proftpd</seg>
251 </seglistitem>
252 </segmentedlist>
253
254 <variablelist>
255 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
256 <?dbfo list-presentation="list"?>
257 <?dbhtml list-presentation="table"?>
258
259 <varlistentry id="proftpd-prog">
260 <term><command>proftpd</command></term>
261 <listitem>
262 <para>is the FTP daemon.</para>
263 <indexterm zone="proftpd proftpd-prog">
264 <primary sortas="b-proftpd">proftpd</primary>
265 </indexterm>
266 </listitem>
267 </varlistentry>
268
269 <varlistentry id="ftpcount">
270 <term><command>ftpcount</command></term>
271 <listitem>
272 <para>shows the current number of connections.</para>
273 <indexterm zone="proftpd ftpcount">
274 <primary sortas="b-ftpcount">ftpcount</primary>
275 </indexterm>
276 </listitem>
277 </varlistentry>
278
279 <varlistentry id="ftpdctl">
280 <term><command>ftpdctl</command></term>
281 <listitem>
282 <para>is used to control the proftpd daemon while it is running.</para>
283 <indexterm zone="proftpd ftpdctl">
284 <primary sortas="b-ftpdctl">ftpdctl</primary>
285 </indexterm>
286 </listitem>
287 </varlistentry>
288
289 <varlistentry id="ftpasswd">
290 <term><command>ftpasswd</command></term>
291 <listitem>
292 <para>is a Perl script designed to create and manage
293 AuthUserFiles and AuthGroupFiles of the correct format for proftpd.</para>
294 <indexterm zone="proftpd ftpasswd">
295 <primary sortas="b-ftpasswd">ftpasswd</primary>
296 </indexterm>
297 </listitem>
298 </varlistentry>
299
300 <varlistentry id="ftpmail">
301 <term><command>ftpmail</command></term>
302 <listitem>
303 <para>is a Perl script for sending email based on the proftpd TransferLog.
304 </para>
305 <indexterm zone="proftpd ftpmail">
306 <primary sortas="b-ftpmail">ftpmail</primary>
307 </indexterm>
308 </listitem>
309 </varlistentry>
310
311 <varlistentry id="ftpquota">
312 <term><command>ftpquota</command></term>
313 <listitem>
314 <para>is a Perl script designed to create and manage limits and tally
315 files for the mod_quotatab + mod_quotatab_file module combination
316 for proftpd.</para>
317 <indexterm zone="proftpd ftpquota">
318 <primary sortas="b-ftpquota">ftpquota</primary>
319 </indexterm>
320 </listitem>
321 </varlistentry>
322
323 <varlistentry id="ftpscrub">
324 <term><command>ftpscrub</command></term>
325 <listitem>
326 <para>provides a way to scrub the scoreboard file on demand.</para>
327 <indexterm zone="proftpd ftpscrub">
328 <primary sortas="b-ftpscrub">ftpscrub</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="ftpshut">
334 <term><command>ftpshut</command></term>
335 <listitem>
336 <para>shuts down all <application>proftpd</application> servers
337 at a given time.</para>
338 <indexterm zone="proftpd ftpshut">
339 <primary sortas="b-ftpshut">ftpshut</primary>
340 </indexterm>
341 </listitem>
342 </varlistentry>
343
344 <varlistentry id="ftptop">
345 <term><command>ftptop</command></term>
346 <listitem>
347 <para>displays running status on connections.</para>
348 <indexterm zone="proftpd ftptop">
349 <primary sortas="b-ftptop">ftptop</primary>
350 </indexterm>
351 </listitem>
352 </varlistentry>
353
354 <varlistentry id="ftpwho">
355 <term><command>ftpwho</command></term>
356 <listitem>
357 <para>shows current process information for each session.</para>
358 <indexterm zone="proftpd ftpwho">
359 <primary sortas="b-ftpwho">ftpwho</primary>
360 </indexterm>
361 </listitem>
362 </varlistentry>
363
364 </variablelist>
365
366 </sect2>
367
368</sect1>
Note: See TracBrowser for help on using the repository browser.