通常のFTP(vsftpd.service)だと、日本語の文字列でファイルのやり取りができないため、proftpdを使用して日本語でのファイルのやり取りを行う方法をまとめました。
proftpdをインストールする
Red Hat Enterprise Linux9.6にproftpdをインストールします。
以下red hat公式の記事ではRHEL5〜7の環境についてはproftpをサポートしていないとの内容が確認できます。

代わりに、EPELリポジトリからproftpを入手できます。
なお、以下のRed Hat公式サイトからもproftpdのRPMパッケージは検索しても見つかりません。
EPELリポジトリをインストールしてproftpdをインストールする
以下のRed Hat公式記事を参考に、EPELリポジトリを有効にしてproftpdをインストールします。

上記の記事を参考に、Red Hat Enterprise Linux 9.6でEPELリポジトリを有効化した作業証跡は以下でまとめています。
上記の記事の通り、EPELリポジトリを有効化したら、yum/dnfコマンドでproftpdをインストールします。
yum/dnfコマンドでproftpdをインストールする
EPELリポジトリが有効化されたのでyum/dnfコマンドでproftpdをインストールします。
[root@RHEL96 ~]# dnf install proftpd
サブスクリプション管理リポジトリーを更新しています。
Extra Packages for Enterprise Linux 9 - x86_64 3.3 MB/s | 20 MB 00:06
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64 850 B/s | 2.5 kB 00:02
エラー:
問題: 競合するリクエスト
- nothing provides libmemcached.so.11()(64bit) needed by proftpd-1.3.8d-1.el9.x86_64 from epel
- nothing provides libmemcachedutil.so.2()(64bit) needed by proftpd-1.3.8d-1.el9.x86_64 from epel
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)

エラーが表示されました。proftpdをインストールするにあたって以下2つが必要のようです。
- libmemcached.so.11()(64bit)
- libmemcachedutil.so.2()(64bit)
Libmemcached.so.11は以下のサイトを確認すると、「libmemcached-awesome-1.1.0-12.el9.aarch64.rpm」が該当するようです。
CRB リポジトリ(CodeReady Linux Builder リポジトリ)を有効にしてdnf installコマンドでインストールします。
[root@RHEL96 ~]# subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
リポジトリー 'codeready-builder-for-rhel-9-x86_64-rpms' は、このシステムに対して有効になりました。
[root@RHEL96 ~]# dnf install libmemcached.so.11
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:02:36 前の 2025年11月04日 22時58分22秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================
インストール:
libmemcached-awesome i686 1.1.0-12.el9 codeready-builder-for-rhel-9-x86_64-rpms 124 k
依存関係のインストール:
cyrus-sasl-lib i686 2.1.27-21.el9 rhel-9-for-x86_64-baseos-rpms 847 k
gdbm-libs i686 1:1.23-1.el9 rhel-9-for-x86_64-baseos-rpms 62 k
glibc i686 2.34-168.el9_6.19 rhel-9-for-x86_64-baseos-rpms 1.9 M
keyutils-libs i686 1.6.3-1.el9 rhel-9-for-x86_64-baseos-rpms 34 k
krb5-libs i686 1.21.1-6.el9 rhel-9-for-x86_64-baseos-rpms 819 k
libcom_err i686 1.46.5-7.el9 rhel-9-for-x86_64-baseos-rpms 28 k
libgcc i686 11.5.0-5.el9_5 rhel-9-for-x86_64-baseos-rpms 97 k
libselinux i686 3.6-3.el9 rhel-9-for-x86_64-baseos-rpms 94 k
libsepol i686 3.6-2.el9 rhel-9-for-x86_64-baseos-rpms 345 k
libstdc++ i686 11.5.0-5.el9_5 rhel-9-for-x86_64-baseos-rpms 793 k
libverto i686 0.3.2-3.el9 rhel-9-for-x86_64-baseos-rpms 25 k
libxcrypt i686 4.4.18-3.el9 rhel-9-for-x86_64-baseos-rpms 126 k
openssl-libs i686 1:3.2.2-6.el9_5.1 rhel-9-for-x86_64-baseos-rpms 2.1 M
pcre2 i686 10.40-6.el9 rhel-9-for-x86_64-baseos-rpms 233 k
zlib i686 1.2.11-40.el9 rhel-9-for-x86_64-baseos-rpms 96 k
弱い依存関係のインストール:
glibc-gconv-extra i686 2.34-168.el9_6.19 rhel-9-for-x86_64-baseos-rpms 1.7 M
トランザクションの概要
=============================================================================================================================================================
インストール 17 パッケージ
ダウンロードサイズの合計: 9.3 M
インストール後のサイズ: 29 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/17): libverto-0.3.2-3.el9.i686.rpm 32 kB/s | 25 kB 00:00
(2/17): keyutils-libs-1.6.3-1.el9.i686.rpm 115 kB/s | 34 kB 00:00
(3/17): cyrus-sasl-lib-2.1.27-21.el9.i686.rpm 789 kB/s | 847 kB 00:01
(4/17): libxcrypt-4.4.18-3.el9.i686.rpm 103 kB/s | 126 kB 00:01
(5/17): zlib-1.2.11-40.el9.i686.rpm 249 kB/s | 96 kB 00:00
(6/17): pcre2-10.40-6.el9.i686.rpm 638 kB/s | 233 kB 00:00
(7/17): libgcc-11.5.0-5.el9_5.i686.rpm 356 kB/s | 97 kB 00:00
(8/17): gdbm-libs-1.23-1.el9.i686.rpm 81 kB/s | 62 kB 00:00
(9/17): libstdc++-11.5.0-5.el9_5.i686.rpm 1.8 MB/s | 793 kB 00:00
(10/17): krb5-libs-1.21.1-6.el9.i686.rpm 1.7 MB/s | 819 kB 00:00
(11/17): libcom_err-1.46.5-7.el9.i686.rpm 103 kB/s | 28 kB 00:00
(12/17): openssl-libs-3.2.2-6.el9_5.1.i686.rpm 2.5 MB/s | 2.1 MB 00:00
(13/17): libselinux-3.6-3.el9.i686.rpm 368 kB/s | 94 kB 00:00
(14/17): libsepol-3.6-2.el9.i686.rpm 1.1 MB/s | 345 kB 00:00
(15/17): glibc-2.34-168.el9_6.19.i686.rpm 2.9 MB/s | 1.9 MB 00:00
(16/17): glibc-gconv-extra-2.34-168.el9_6.19.i686.rpm 2.5 MB/s | 1.7 MB 00:00
(17/17): libmemcached-awesome-1.1.0-12.el9.i686.rpm 30 kB/s | 124 kB 00:04
-------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 1.4 MB/s | 9.3 MB 00:06
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : libgcc-11.5.0-5.el9_5.i686 1/17
scriptletの実行中: libgcc-11.5.0-5.el9_5.i686 1/17
インストール中 : glibc-gconv-extra-2.34-168.el9_6.19.i686 2/17
scriptletの実行中: glibc-gconv-extra-2.34-168.el9_6.19.i686 2/17
scriptletの実行中: glibc-2.34-168.el9_6.19.i686 3/17
インストール中 : glibc-2.34-168.el9_6.19.i686 3/17
scriptletの実行中: glibc-2.34-168.el9_6.19.i686 3/17
インストール中 : libcom_err-1.46.5-7.el9.i686 4/17
インストール中 : libverto-0.3.2-3.el9.i686 5/17
インストール中 : libxcrypt-4.4.18-3.el9.i686 6/17
インストール中 : keyutils-libs-1.6.3-1.el9.i686 7/17
インストール中 : zlib-1.2.11-40.el9.i686 8/17
インストール中 : openssl-libs-1:3.2.2-6.el9_5.1.i686 9/17
インストール中 : gdbm-libs-1:1.23-1.el9.i686 10/17
インストール中 : pcre2-10.40-6.el9.i686 11/17
scriptletの実行中: pcre2-10.40-6.el9.i686 11/17
インストール中 : libstdc++-11.5.0-5.el9_5.i686 12/17
インストール中 : libsepol-3.6-2.el9.i686 13/17
インストール中 : libselinux-3.6-3.el9.i686 14/17
scriptletの実行中: libselinux-3.6-3.el9.i686 14/17
インストール中 : krb5-libs-1.21.1-6.el9.i686 15/17
インストール中 : cyrus-sasl-lib-2.1.27-21.el9.i686 16/17
インストール中 : libmemcached-awesome-1.1.0-12.el9.i686 17/17
scriptletの実行中: libmemcached-awesome-1.1.0-12.el9.i686 17/17
検証中 : libverto-0.3.2-3.el9.i686 1/17
検証中 : libxcrypt-4.4.18-3.el9.i686 2/17
検証中 : cyrus-sasl-lib-2.1.27-21.el9.i686 3/17
検証中 : keyutils-libs-1.6.3-1.el9.i686 4/17
検証中 : zlib-1.2.11-40.el9.i686 5/17
検証中 : gdbm-libs-1:1.23-1.el9.i686 6/17
検証中 : pcre2-10.40-6.el9.i686 7/17
検証中 : libgcc-11.5.0-5.el9_5.i686 8/17
検証中 : libstdc++-11.5.0-5.el9_5.i686 9/17
検証中 : openssl-libs-1:3.2.2-6.el9_5.1.i686 10/17
検証中 : krb5-libs-1.21.1-6.el9.i686 11/17
検証中 : libcom_err-1.46.5-7.el9.i686 12/17
検証中 : libselinux-3.6-3.el9.i686 13/17
検証中 : libsepol-3.6-2.el9.i686 14/17
検証中 : glibc-2.34-168.el9_6.19.i686 15/17
検証中 : glibc-gconv-extra-2.34-168.el9_6.19.i686 16/17
検証中 : libmemcached-awesome-1.1.0-12.el9.i686 17/17
インストール済みの製品が更新されています。
インストール済み:
cyrus-sasl-lib-2.1.27-21.el9.i686 gdbm-libs-1:1.23-1.el9.i686 glibc-2.34-168.el9_6.19.i686 glibc-gconv-extra-2.34-168.el9_6.19.i686
keyutils-libs-1.6.3-1.el9.i686 krb5-libs-1.21.1-6.el9.i686 libcom_err-1.46.5-7.el9.i686 libgcc-11.5.0-5.el9_5.i686
libmemcached-awesome-1.1.0-12.el9.i686 libselinux-3.6-3.el9.i686 libsepol-3.6-2.el9.i686 libstdc++-11.5.0-5.el9_5.i686
libverto-0.3.2-3.el9.i686 libxcrypt-4.4.18-3.el9.i686 openssl-libs-1:3.2.2-6.el9_5.1.i686 pcre2-10.40-6.el9.i686
zlib-1.2.11-40.el9.i686
完了しました!
[root@RHEL96 ~]#
続けて libmemcachedutil.so.2のインストールも実施します。
[root@RHEL96 ~]# dnf install libmemcachedutil.so.2
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:00:40 前の 2025年11月04日 23時01分14秒 に実施しました。
パッケージ libmemcached-awesome-1.1.0-12.el9.i686 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
こちらは libmemcached.so.11()(64bit)のインストール時に依存関係にあったため既にインストールされていました。
この状態で再度proftpdのインストールを実施します。Fingerprintだけログを加工しました。
[root@RHEL96 ~]# dnf install proftpd
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:01:53 前の 2025年11月04日 23時01分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================
インストール:
proftpd x86_64 1.3.8d-1.el9 epel 3.2 M
依存関係のインストール:
libmemcached-awesome x86_64 1.1.0-12.el9 codeready-builder-for-rhel-9-x86_64-rpms 115 k
libsodium x86_64 1.0.18-8.el9 epel 161 k
トランザクションの概要
=============================================================================================================================================================
インストール 3 パッケージ
ダウンロードサイズの合計: 3.4 M
インストール後のサイズ: 9.8 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): libsodium-1.0.18-8.el9.x86_64.rpm 365 kB/s | 161 kB 00:00
(2/3): libmemcached-awesome-1.1.0-12.el9.x86_64.rpm 146 kB/s | 115 kB 00:00
(3/3): proftpd-1.3.8d-1.el9.x86_64.rpm 2.5 MB/s | 3.2 MB 00:01
-------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 2.0 MB/s | 3.4 MB 00:01
Extra Packages for Enterprise Linux 9 - x86_64 1.6 MB/s | 1.6 kB 00:00
GPG 鍵 0x3228467C をインポート中:
Userid : "Fedora (epel9) <epel@fedoraproject.org>"
Fingerprint: FF8A D134 4597 106E CE81 3B91 8A38 72BF 3228 467C
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : libmemcached-awesome-1.1.0-12.el9.x86_64 1/3
インストール中 : libsodium-1.0.18-8.el9.x86_64 2/3
インストール中 : proftpd-1.3.8d-1.el9.x86_64 3/3
scriptletの実行中: proftpd-1.3.8d-1.el9.x86_64 3/3
検証中 : libsodium-1.0.18-8.el9.x86_64 1/3
検証中 : proftpd-1.3.8d-1.el9.x86_64 2/3
検証中 : libmemcached-awesome-1.1.0-12.el9.x86_64 3/3
インストール済みの製品が更新されています。
インストール済み:
libmemcached-awesome-1.1.0-12.el9.x86_64 libsodium-1.0.18-8.el9.x86_64 proftpd-1.3.8d-1.el9.x86_64
完了しました!
systemctlコマンドでproftpdを起動する
systemctlコマンドを使用してproftpdを起動します。
まずはproftpdの状態を確認します。
[root@RHEL96 ~]# systemctl status proftpd
○ proftpd.service - ProFTPD FTP Server
Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; preset: disabled)
Active: inactive (dead)
起動しました。
[root@RHEL96 ~]# systemctl start proftpd
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# systemctl status proftpd
● proftpd.service - ProFTPD FTP Server
Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; preset: disabled)
Active: active (running) since Tue 2025-11-04 23:07:11 JST; 4s ago
Process: 3542 ExecStartPre=/usr/sbin/proftpd --configtest (code=exited, status=0/SUCCESS)
Main PID: 3543 (proftpd)
Tasks: 1 (limit: 10706)
Memory: 7.8M
CPU: 38ms
CGroup: /system.slice/proftpd.service
mq3543 /usr/sbin/proftpd --nodaemon
11月 04 23:06:51 RHEL96 systemd[1]: Starting ProFTPD FTP Server...
11月 04 23:06:51 RHEL96 proftpd[3542]: Checking syntax of configuration file
11月 04 23:07:11 RHEL96 systemd[1]: Started ProFTPD FTP Server.

OS起動時に自動起動するようにします。
root@RHEL96 ~]# systemctl enable proftpd
Created symlink /etc/systemd/system/multi-user.target.wants/proftpd.service → /usr/lib/systemd/system/proftpd.service.
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# systemctl status proftpd
● proftpd.service - ProFTPD FTP Server
Loaded: loaded (/usr/lib/systemd/system/proftpd.service; enabled; preset: disabled)
Active: active (running) since Tue 2025-11-04 23:07:11 JST; 58s ago
Main PID: 3543 (proftpd)
Tasks: 1 (limit: 10706)
Memory: 8.0M
CPU: 55ms
CGroup: /system.slice/proftpd.service
mq3543 "proftpd: (accepting connections)"
11月 04 23:06:51 RHEL96 systemd[1]: Starting ProFTPD FTP Server...
11月 04 23:06:51 RHEL96 proftpd[3542]: Checking syntax of configuration file
11月 04 23:07:11 RHEL96 systemd[1]: Started ProFTPD FTP Server.
11月 04 23:07:31 RHEL96 proftpd[3543]: daemon[3543] 192.168.242.134: ProFTPD 1.3.8d (maint) (built Tue Mar 18 2025 00:00:00 UTC) standalone mode STARTUP

proftpの設定ファイル/etc/proftpd.confについて
proftpの設定ファイルは以下です。
/etc/proftpd.conf
/etc/proftpd.confファイルの設定項目について解説します。
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
DefaultServer on
ServerNameはサーバー名です。今回はOSに設定されているホスト名を指定しておきます。
ServerIdent はFTPサーバー接続時に表示されるメッセージのON/OFFと表示させる場合のメッセージを記載します。
# A basic anonymous configuration, with an upload directory
# Enable this with PROFTPD_OPTIONS=-DANONYMOUS_FTP in /etc/sysconfig/proftpd
<IfDefine ANONYMOUS_FTP>
Include /etc/proftpd/anonftp.conf
</IfDefine>
# Include other custom configuration files
Include /etc/proftpd/conf.d/*.conf
/etc/proftpd.conf以外にも上記のInclude以下のファイルも設定ファイルとしてパラメータを設定できるようにデフォルトでなっています。
rootログインの許可
rootのログインを許可するには、「proftpd.conf」で以下の行を追加し、「/etc/ftpusers」からrootの行を削除します。
RootLogin on
proftpd.confへの記述が漏れている場合や/etc/ftpusersファイルにユーザーの記載がある場合はrootログインが許可されません。
IPv6のOFF
以下のパラメータでIPv6の使用をオフにできます。
UseIPv6 off
ポート番号の設定
以下のパラメータで使用するポートを設定できます。例えば20021に設定するには/etc/proftpd.confに以下のパラメータを記載します。
Port 20021
サーバーを操作するユーザー
/etc/proftpd.confの以下のパラメータでFTPサーバーを操作するユーザーを定義します。
# Set the user and group that the server runs as
User nobody
Group nobody
/etc/proftpd.confに設定を記載したらsystemctl daemon-reload等で設定を読み込む
以下のコマンドを実行して設定を再読み込みしましょう
# systemctl daemon-reload
以下は実行例です。
[root@RHEL96 ~]# systemctl daemon-reload
[root@RHEL96 ~]#

/etc/ftpusersファイルでユーザーを制限
以下のファイルでFTP接続を禁止するユーザーのリストを指定します。
/etc/ftpusers
proftpdインストール時点ではファイルの中に以下の内容が記載されていました。
[root@RHEL96 ~]# cat /etc/ftpusers
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
dbus
avahi
tss
gdm
sshd
tcpdump
postfix
apache


