FTP設定 · 1 min read · Dec 14, 2025

CentOS 7.2でPureFTPdとFileZillaをTLSセッションで使用する方法

この記事では、CentOS 7.2サーバーでTLSセッションを受け入れるようにPureFTPdを設定する方法を説明します。プレーンFTPは、すべてのパスワードとデータが平文で転送されるため、安全でないプロトコルです。TLSを使用することで、通信全体を暗号化できるため、FTPははるかに安全になります。

1 予備ノート

CentOS 7.2サーバーに動作するPureFTPdのセットアップが必要です。例えば、このチュートリアルに示されているように:CentOS 7.2でのPureFTPd、MariaDB、および仮想ユーザー(クォータと帯域幅管理を含む)を使用したFTPサーバー

2 OpenSSLのインストール

TLSにはOpenSSLが必要です。OpenSSLをインストールするには、次のコマンドを実行します:

yum -y install openssl

3 PureFTPdの設定

/etc/pure-ftpd/pure-ftpd.confを開きます…

nano /etc/pure-ftpd/pure-ftpd.conf

FTP TLSセッションの両方を許可したい場合は、TLSを1に設定します:

[...]
# このオプションは3つの値を受け入れることができます:
# 0 : SSL/TLS暗号化レイヤーを無効にする(デフォルト)。
# 1 : 従来のセッションと暗号化されたセッションの両方を受け入れる。
# 2 : SSL/TLSセキュリティメカニズムを使用しない接続を拒否する、
#     匿名セッションを含む。
# この設定を盲目的にコメント解除しないでください。以下を確認してください:
# 1) サーバーがSSL/TLSサポートでコンパイルされていること(--with-tls)、
# 2) 有効な証明書が存在すること、
# 3) 互換性のあるクライアントのみがログインすること。

TLS                      1
[...]

TLSセッションのみを受け入れたい場合(FTPなし)は、TLSを2に設定します:

[...]
# このオプションは3つの値を受け入れることができます:
# 0 : SSL/TLS暗号化レイヤーを無効にする(デフォルト)。
# 1 : 従来のセッションと暗号化されたセッションの両方を受け入れる。
# 2 : SSL/TLSセキュリティメカニズムを使用しない接続を拒否する、
#     匿名セッションを含む。
# この設定を盲目的にコメント解除しないでください。以下を確認してください:
# 1) サーバーがSSL/TLSサポートでコンパイルされていること(--with-tls)、
# 2) 有効な証明書が存在すること、
# 3) 互換性のあるクライアントのみがログインすること。

TLS                      2
[...]

TLSをまったく許可しない場合(FTPのみ)は、TLSを0に設定します:

[...]
# このオプションは3つの値を受け入れることができます:
# 0 : SSL/TLS暗号化レイヤーを無効にする(デフォルト)。
# 1 : 従来のセッションと暗号化されたセッションの両方を受け入れる。
# 2 : SSL/TLSセキュリティメカニズムを使用しない接続を拒否する、
#     匿名セッションを含む。
# この設定を盲目的にコメント解除しないでください。以下を確認してください:
# 1) サーバーがSSL/TLSサポートでコンパイルされていること(--with-tls)、
# 2) 有効な証明書が存在すること、
# 3) 互換性のあるクライアントのみがログインすること。

TLS                      0
[...]

次に、以下の2行の前の#を削除します:

TLSCipherSuite           HIGH  
CertFile                 /etc/ssl/private/pure-ftpd.pem

そして、変更した設定ファイルを保存します。

4 TLS用のSSL証明書の作成

TLSを使用するためには、SSL証明書を作成する必要があります。私は/etc/ssl/private/に作成するので、まずそのディレクトリを作成します:

mkdir -p /etc/ssl/private/

その後、次のようにSSL証明書を生成できます:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

国名(2文字コード)[XX]: <– あなたの国名を入力してください(例:「DE」)。
州または県名(フルネーム)[]: <– あなたの州または県名を入力してください。
所在地名(例:市)[デフォルトの市]: <– あなたの市を入力してください。
組織名(例:会社)[デフォルトの会社名]: <– あなたの組織名を入力してください(例:あなたの会社名)。
組織単位名(例:部門)[]: <– あなたの組織単位名を入力してください(例:「IT部門」)。
共通名(例:あなたの名前またはサーバーのホスト名)[]: <– システムの完全修飾ドメイン名を入力してください(例:「server1.example.com」)。
メールアドレス[]: <– あなたのメールアドレスを入力してください。

SSL証明書の権限を変更します:

chmod 600 /etc/ssl/private/pure-ftpd.pem

最後に、PureFTPdを再起動します:

systemctl restart pure-ftpd.service

これで完了です。FTPクライアントを使用して接続を試みることができます。ただし、FTPクライアントをTLSを使用するように設定する必要があります。次の章でFileZillaを使用してこれを行う方法を説明します。

5 FileZillaのTLS設定

TLSを使用してFTPを利用するには、FileZillaやFirefoxのFireFTPプラグインなど、TLSをサポートするFTPクライアントが必要です。

FileZillaで、サイトマネージャーを開きます:

FileZilla - サイトマネージャーを開く。

TLSを使用するPureFTPdを使用するサーバーを選択します。サーバータイプのドロップダウンメニューで、通常のFTPの代わりに明示的なFTP over TLSを要求を選択します:

ユーザー詳細を入力します。

これでサーバーに接続できます。初めてこれを行う場合は、自己署名のSSL証明書を使用しているため、サーバーの新しいSSL証明書を受け入れる必要があります:

SSLエラーを受け入れる

すべてがうまくいけば、サーバーにログインしているはずです:

TLSでのログイン成功。

6 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。