source: server/major/proftpd.xml@ abe48358

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 xry111/llvm18 xry111/xf86-video-removal
Last change on this file since abe48358 was abe48358, checked in by Thomas Trepl <thomas@…>, 17 months ago

Upgrade proftpd-1.3.8

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