ProFTPD-1.3.8b

ProFTPD の概要

ProFTPD パッケージは、セキュアで設定変更が容易な FTP デーモンを提供します。 ネットワークに対して大量のファイルアーカイブを提供しようとする場合に活用することができます。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

ProFTPD の依存パッケージ

任意

libcap-2.69 with PAM, libssh2-1.11.0, Linux-PAM-1.5.3, MariaDB-10.11.6 or MySQL, PCRE-8.45, PostgreSQL-16.1, and Net::SSH2

ProFTPD のインストール

セキュリティ上の理由から ProFTPD のインストールにあたっては、非特権ユーザーおよびグループを用いる必要があります。 そこでまずは root ユーザーになって以下を実行します。

groupadd -g 46 proftpd                             &&
useradd -c proftpd -d /srv/ftp -g proftpd \
        -s /usr/bin/proftpdshell -u 46 proftpd     &&

install -v -d -m775 -o proftpd -g proftpd /srv/ftp &&
ln -v -s /usr/bin/false /usr/bin/proftpdshell      &&
echo /usr/bin/proftpdshell >> /etc/shells

非特権ユーザーとなって以下を実行することで ProFTPD をビルドします。

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run &&
make

This packages does not come with a usable test suite.

root ユーザーになって以下を実行します。

make install                                   &&
install -d -m755 /usr/share/doc/proftpd-1.3.8b &&
cp -Rv doc/*     /usr/share/doc/proftpd-1.3.8b

コマンド説明

install -v -d -m775 -o proftpd -g proftpd /srv/ftp: ProFTPD のホームディレクトリを生成します。

ln -v -s /usr/bin/false /usr/bin/proftpdshell: デフォルトシェルを /bin/false へのリンクとします。

echo /usr/bin/proftpdshell >> /etc/shells: 互換目的でシェルを登録します。

[注記]

注記

もし設定ファイル内に以下のディレクティブを設定するのであれば、上の2つのコマンドは省略可能です。

RequireValidShell off

デフォルトにおいて proftpd は、ログインするユーザーが適正なシェルを利用するものでなければなりません。 ディレクティブ RequireValidShell はその要求を無効化するものです。 この設定を利用するのは、FTPサーバーを匿名ダウンロード専用とする場合にのみ推奨されるものです。

[注記]

注記

Support for most of the dependency packages requires using options passed to the configure script. View the output from ./configure --help for complete information about enabling dependency packages.

ProFTPD の設定

設定ファイル

/etc/proftpd.conf

設定情報

以下は設定ファイルの例であり、単純にダウンロードだけを行う設定例です。 これ以外のさまざまな設定については、ProFTPD のドキュメントとして、/usr/share/doc/proftpd にあるものや Webサイト http://www.proftpd.org/ を参照してください。

cat > /etc/proftpd.conf << "EOF"
# This is a basic ProFTPD configuration file
# It establishes a single server and a single anonymous login.

ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on

# Port 21 is the standard FTP port.
Port                            21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service

MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            proftpd
Group                           proftpd

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~


# Normally, files should be overwritable.
<Directory /*>
  AllowOverwrite                on
</Directory>

# A basic anonymous configuration, no upload directories.
<Anonymous ~proftpd>
  User                          proftpd
  Group                         proftpd
  # Clients should be able to login with "anonymous" as well as "proftpd"
  UserAlias                     anonymous proftpd

  # Limit the maximum number of anonymous logins
  MaxClients                    10

  # 'welcome.msg' should be displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                  welcome.msg
  DisplayChdir                  .message

  # Limit WRITE everywhere in the anonymous chroot
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
EOF

Systemd Unit

blfs-systemd-units-20231205 パッケージに含まれる proftpd.serviceユニットをインストールします。

make install-proftpd

パッケージ構成

インストールプログラム: ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut, ftptop, ftpwho, in.proftpd (proftpd へのシンボリックリンク), proftpd, prxs
インストールライブラリ: なし
インストールディレクトリ: /usr/{include,lib}/proftpd, /usr/share/doc/proftpd-1.3.8b, /srv/ftp

概略説明

proftpd

FTP デーモン。

ftpcount

現在の接続数を表示します。

ftpdctl

実行中の proftpd デーモンを制御します。

ftpasswd

AuthUserFiles と AuthGroupFiles に対する正しい書式を生成し制御するための Perl スクリプト。

ftpmail

proftpd の TransferLog に基づいて電子メール送信を行うための Perl スクリプト。

ftpquota

is a Perl script designed to create and manage limits and tally files for the mod_quotatab + mod_quotatab_file module combination for proftpd

ftpscrub

provides a way to scrub the scoreboard file on demand

ftpshut

shuts down all proftpd servers at a given time

ftptop

displays running status on connections

ftpwho

shows current process information for each session

prxs

is a Perl script designed to compile and install third-party modules, from source code, as DSO modules for the installed proftpd