【RHEL9.6】proftpdを使用して日本語でLinuxにFTP接続を行う

Linux

通常のFTP(vsftpd.service)だと、日本語の文字列でファイルのやり取りができないため、proftpdを使用して日本語でのファイルのやり取りを行う方法をまとめました。

proftpdをインストールする

Red Hat Enterprise Linux9.6にproftpdをインストールします。

以下red hat公式の記事ではRHEL5〜7の環境についてはproftpをサポートしていないとの内容が確認できます。

Red Hat でサポートされる proftpd ftp サーバーは提供されていますか? - Red Hat Customer Portal
Red Hat でサポートされる proftpd ftp サーバーは提供されていますか?

代わりに、EPELリポジトリからproftpを入手できます。

なお、以下のRed Hat公式サイトからもproftpdのRPMパッケージは検索しても見つかりません。

Red Hat

EPELリポジトリをインストールしてproftpdをインストールする

以下のRed Hat公式記事を参考に、EPELリポジトリを有効にしてproftpdをインストールします。

Extra Packages for Enterprise Linux (EPEL) の使用方法 - Red Hat Customer Portal
Enterprise Linux 用追加パッケージ (EPEL) とは何ですか? EPEL のパッケージは Red Hat でサポートされていますか? EPEL とそのパッケージのサポートの提供元はどこでしょうか? EPEL パッケージを使...

上記の記事を参考に、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」が該当するようです。

https://pkgs.org/download/libmemcached.so.11()(64bit)

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

タイトルとURLをコピーしました