source: server/major/proftpd.xml

trunk
Last change on this file was abfacaf, checked in by Xi Ruoyao <xry111@…>, 6 weeks ago

Remove most references to PCRE1

Some notes:

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