source: server/major/proftpd.xml@ fe316a64

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules 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 fe316a64 was fe316a64, checked in by DJ Lucas <dj@…>, 7 years ago

tags

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

  • Property mode set to 100644
File size: 13.2 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 "13270911c42aac842435f18205546a1b">
10 <!ENTITY proftpd-size "19 MB">
11 <!ENTITY proftpd-buildsize "65 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 &lfs81_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="libcap-pam"/>,
65 <xref linkend="linux-pam"/>,
66 <xref linkend="mariadb"/> or <ulink url="http://www.mysql.com/">MySQL</ulink>,
67 <xref linkend="openssl"/>,
68 <xref linkend="pcre"/>, and
69 <xref linkend="postgresql"/>
70 </para>
71
72 <para condition="html" role="usernotes">User Notes:
73 <ulink url="&blfs-wiki;/proftpd"/></para>
74
75 </sect2>
76
77 <sect2 role="installation">
78 <title>Installation of ProFTPD</title>
79
80 <para>For security reasons, you should install
81 <application>ProFTPD</application> using an unprivileged user and group.
82 As the <systemitem class="username">root</systemitem> user:</para>
83
84<screen role="root"><userinput>groupadd -g 46 proftpd &amp;&amp;
85useradd -c proftpd -d /srv/ftp -g proftpd \
86 -s /usr/bin/proftpdshell -u 46 proftpd &amp;&amp;
87
88install -v -d -m775 -o proftpd -g proftpd /srv/ftp &amp;&amp;
89ln -v -s /bin/false /usr/bin/proftpdshell &amp;&amp;
90echo /usr/bin/proftpdshell &gt;&gt; /etc/shells</userinput></screen>
91
92 <para>Install <application>ProFTPD</application> as an unprivileged user by
93 running the following commands:</para>
94
95<screen><userinput>./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run &amp;&amp;
96make</userinput></screen>
97
98 <para>This packages does not come with a usable test suite.</para>
99
100 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
101
102<screen role="root"><userinput>make install &amp;&amp;
103install -d -m755 /usr/share/doc/proftpd-&proftpd-version; &amp;&amp;
104cp -Rv doc/* /usr/share/doc/proftpd-&proftpd-version;</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 <note>
134 <para>
135 Support for most of the dependency packages requires using options
136 passed to the <command>configure</command> script. View the output
137 from <command>./configure --help</command> for complete information
138 about enabling dependency packages.
139 </para>
140 </note>
141
142 </sect2>
143
144 <sect2 role="configuration">
145 <title>Configuring ProFTPD</title>
146
147 <sect3 id='proftpd-config'>
148 <title>Config Files</title>
149
150 <para><filename>/etc/proftpd.conf</filename></para>
151
152 <indexterm zone="proftpd proftpd-config">
153 <primary sortas="e-etc-proftpd">/etc/proftpd.conf</primary>
154 </indexterm>
155
156 </sect3>
157
158 <sect3>
159 <title>Configuration Information</title>
160
161 <para>This is a simple, download-only sample configuration. See the
162 <application>ProFTPD</application> documentation in
163 <filename class="directory">/usr/share/doc/proftpd</filename> and
164 consult the website at <ulink url="http://www.proftpd.org/"/> for
165 example configurations.</para>
166
167<screen role="root"><?dbfo keep-together="auto"?><userinput>cat &gt; /etc/proftpd.conf &lt;&lt; "EOF"
168<literal># This is a basic ProFTPD configuration file
169# It establishes a single server and a single anonymous login.
170
171ServerName "ProFTPD Default Installation"
172ServerType standalone
173DefaultServer on
174
175# Port 21 is the standard FTP port.
176Port 21
177# Umask 022 is a good standard umask to prevent new dirs and files
178# from being group and world writable.
179Umask 022
180
181# To prevent DoS attacks, set the maximum number of child processes
182# to 30. If you need to allow more than 30 concurrent connections
183# at once, simply increase this value. Note that this ONLY works
184# in standalone mode, in inetd mode you should use an inetd server
185# that allows you to limit maximum number of processes per service
186<!--# (such as xinetd)-->
187MaxInstances 30
188
189# Set the user and group that the server normally runs at.
190User proftpd
191Group proftpd
192
193# To cause every FTP user to be "jailed" (chrooted) into their home
194# directory, uncomment this line.
195#DefaultRoot ~
196
197
198# Normally, files should be overwritable.
199&lt;Directory /*&gt;
200 AllowOverwrite on
201&lt;/Directory&gt;
202
203# A basic anonymous configuration, no upload directories.
204&lt;Anonymous ~proftpd&gt;
205 User proftpd
206 Group proftpd
207 # Clients should be able to login with "anonymous" as well as "proftpd"
208 UserAlias anonymous proftpd
209
210 # Limit the maximum number of anonymous logins
211 MaxClients 10
212
213 # 'welcome.msg' should be displayed at login, and '.message' displayed
214 # in each newly chdired directory.
215 DisplayLogin welcome.msg
216 DisplayChdir .message
217
218 # Limit WRITE everywhere in the anonymous chroot
219 &lt;Limit WRITE&gt;
220 DenyAll
221 &lt;/Limit&gt;
222&lt;/Anonymous&gt;</literal>
223EOF</userinput></screen>
224
225 </sect3>
226
227 <sect3 id="proftpd-init">
228 <title><phrase revision="sysv">Boot Script</phrase>
229 <phrase revision="systemd">Systemd Unit</phrase></title>
230
231 <para>Install the
232 <phrase revision="sysv"><filename>/etc/rc.d/init.d/proftpd</filename>
233 init script</phrase>
234 <phrase revision="systemd"><filename>proftpd.service</filename>
235 unit</phrase> included in the
236 <xref linkend="bootscripts" revision="sysv"/>
237 <xref linkend="systemd-units" revision="systemd"/>
238 package.</para>
239
240 <indexterm zone="proftpd proftpd-init">
241 <primary sortas="f-proftpd">proftpd</primary>
242 </indexterm>
243
244<screen role="root"><userinput>make install-proftpd</userinput></screen>
245
246 </sect3>
247
248 </sect2>
249
250 <sect2 role="content">
251 <title>Contents</title>
252
253 <segmentedlist>
254 <segtitle>Installed Programs</segtitle>
255 <segtitle>Installed Libraries</segtitle>
256 <segtitle>Installed Directory</segtitle>
257
258 <seglistitem>
259 <seg>
260 ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut,
261 ftptop, ftpwho, in.proftpd (symlink to proftpd), proftpd, and prxs
262 </seg>
263 <seg>
264 None
265 </seg>
266 <seg>
267 /usr/{include,lib}/proftpd
268 </seg>
269 </seglistitem>
270 </segmentedlist>
271
272 <variablelist>
273 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
274 <?dbfo list-presentation="list"?>
275 <?dbhtml list-presentation="table"?>
276
277 <varlistentry id="proftpd-prog">
278 <term><command>proftpd</command></term>
279 <listitem>
280 <para>is the FTP daemon.</para>
281 <indexterm zone="proftpd proftpd-prog">
282 <primary sortas="b-proftpd">proftpd</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 <varlistentry id="ftpcount">
288 <term><command>ftpcount</command></term>
289 <listitem>
290 <para>shows the current number of connections.</para>
291 <indexterm zone="proftpd ftpcount">
292 <primary sortas="b-ftpcount">ftpcount</primary>
293 </indexterm>
294 </listitem>
295 </varlistentry>
296
297 <varlistentry id="ftpdctl">
298 <term><command>ftpdctl</command></term>
299 <listitem>
300 <para>is used to control the proftpd daemon while it is running.</para>
301 <indexterm zone="proftpd ftpdctl">
302 <primary sortas="b-ftpdctl">ftpdctl</primary>
303 </indexterm>
304 </listitem>
305 </varlistentry>
306
307 <varlistentry id="ftpasswd">
308 <term><command>ftpasswd</command></term>
309 <listitem>
310 <para>is a Perl script designed to create and manage
311 AuthUserFiles and AuthGroupFiles of the correct format for proftpd.</para>
312 <indexterm zone="proftpd ftpasswd">
313 <primary sortas="b-ftpasswd">ftpasswd</primary>
314 </indexterm>
315 </listitem>
316 </varlistentry>
317
318 <varlistentry id="ftpmail">
319 <term><command>ftpmail</command></term>
320 <listitem>
321 <para>is a Perl script for sending email based on the proftpd TransferLog.
322 </para>
323 <indexterm zone="proftpd ftpmail">
324 <primary sortas="b-ftpmail">ftpmail</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
329 <varlistentry id="ftpquota">
330 <term><command>ftpquota</command></term>
331 <listitem>
332 <para>is a Perl script designed to create and manage limits and tally
333 files for the mod_quotatab + mod_quotatab_file module combination
334 for proftpd.</para>
335 <indexterm zone="proftpd ftpquota">
336 <primary sortas="b-ftpquota">ftpquota</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="ftpscrub">
342 <term><command>ftpscrub</command></term>
343 <listitem>
344 <para>provides a way to scrub the scoreboard file on demand.</para>
345 <indexterm zone="proftpd ftpscrub">
346 <primary sortas="b-ftpscrub">ftpscrub</primary>
347 </indexterm>
348 </listitem>
349 </varlistentry>
350
351 <varlistentry id="ftpshut">
352 <term><command>ftpshut</command></term>
353 <listitem>
354 <para>shuts down all <application>proftpd</application> servers
355 at a given time.</para>
356 <indexterm zone="proftpd ftpshut">
357 <primary sortas="b-ftpshut">ftpshut</primary>
358 </indexterm>
359 </listitem>
360 </varlistentry>
361
362 <varlistentry id="ftptop">
363 <term><command>ftptop</command></term>
364 <listitem>
365 <para>displays running status on connections.</para>
366 <indexterm zone="proftpd ftptop">
367 <primary sortas="b-ftptop">ftptop</primary>
368 </indexterm>
369 </listitem>
370 </varlistentry>
371
372 <varlistentry id="ftpwho">
373 <term><command>ftpwho</command></term>
374 <listitem>
375 <para>shows current process information for each session.</para>
376 <indexterm zone="proftpd ftpwho">
377 <primary sortas="b-ftpwho">ftpwho</primary>
378 </indexterm>
379 </listitem>
380 </varlistentry>
381
382 <varlistentry id="prxs">
383 <term><command>prxs</command></term>
384 <listitem>
385 <para>is a Perl script designed to compile and install third-party
386 modules, from source code, as DSO modules for the installed
387 proftpd.</para>
388 <indexterm zone="proftpd prxs">
389 <primary sortas="b-prxs">prxs</primary>
390 </indexterm>
391 </listitem>
392 </varlistentry>
393
394 </variablelist>
395
396 </sect2>
397
398</sect1>
Note: See TracBrowser for help on using the repository browser.