サーバー設定 · 2 min read · Dec 18, 2025

Debian 8 (Jessie) に TLS を使用して vsftpd をインストールおよび構成する方法

この記事では、Debian 8 サーバーに TLS 対応の vsftpd サーバーを設定する方法と、FileZilla を使用して FTP サーバーにアクセスする方法について説明します。FTP はデフォルトでは非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLS を使用することで、通信全体を暗号化できるため、FTP ははるかに安全になります。

1 予備ノート

このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.1.100 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。このチュートリアルの基盤として、Debian 8 の最小サーバーセットアップを使用します。

2 vsftpd と OpenSSL のインストール

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

apt-get -y install vsftpd openssl

3 TLS 用の SSL 証明書の作成

TLS を使用するには、SSL 証明書を作成する必要があります。私は /etc/ssl/private に作成します。ディレクトリが存在しない場合は、今すぐ作成してください:

mkdir -p /etc/ssl/private  
chmod 700 /etc/ssl/private

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

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

国名 (2 文字コード) [AU]: <– あなたの国名を入力してください (例: “DE”)。
州または省名 (フルネーム) [Some-State]: <– あなたの州または省名を入力してください。
所在地名 (例: 市) []: <– あなたの市を入力してください。
組織名 (例: 会社) [Internet Widgits Pty Ltd]: <– あなたの組織名を入力してください (例: あなたの会社名)。
組織単位名 (例: セクション) []: <– あなたの組織単位名を入力してください (例: “IT 部門“)。
共通名 (例: あなたの名前) []: <– システムの完全修飾ドメイン名を入力してください (例: “server1.example.com”)。
メールアドレス []: <– あなたのメールアドレスを入力してください。

4 vsftpd での TLS の有効化

vsftpd で TLS を有効にするには、/etc/vsftpd.conf を開きます…

nano /etc/vsftpd.conf

… 次のオプションを追加または変更します:

[...]  

# SSL をオンにする
ssl_enable=YES

# 匿名ユーザーが安全な SSL 接続を使用できるようにする
allow_anon_ssl=YES

# すべての非匿名ログインは、データ接続でデータを送受信するために安全な SSL 接続を使用する必要があります。
force_local_data_ssl=YES

# すべての非匿名ログインは、パスワードを送信するために安全な SSL 接続を使用する必要があります。
force_local_logins_ssl=YES

# TLS v1 プロトコル接続を許可します。TLS v1 接続が優先されます
ssl_tlsv1=YES

# SSL v2 プロトコル接続を許可します。TLS v1 接続が優先されます
ssl_sslv2=NO

# SSL v3 プロトコル接続を許可します。TLS v1 接続が優先されます
ssl_sslv3=NO

# SSL セッションの再利用を無効にする (WinSCP に必要)
require_ssl_reuse=NO

# vsftpd が暗号化された SSL 接続に許可する SSL 暗号を選択します (FileZilla に必要)
ssl_ciphers=HIGH

# このオプションは、SSL 暗号化接続に使用する RSA 証明書の場所を指定します。
rsa_cert_file=/etc/ssl/private/vsftpd.pem
[...]  

force_local_logins_ssl=YES と force_local_data_ssl=YES を使用すると、TLS 接続のみが許可されます (これにより、TLS サポートのない古い FTP クライアントを使用しているユーザーはロックアウトされます)。force_local_logins_ssl=NO と force_local_data_ssl=NO を使用すると、FTP クライアントがサポートしているものに応じて、TLS および非 TLS 接続の両方が許可されます。

TLS オプションの他に、非匿名ログインを有効にするために、vsftpd.conf に次の設定があることを確認してください:

[...]  
# ローカルユーザーのログインを許可するには、これをコメント解除します。
local_enable=YES
#
# FTP 書き込みコマンドのいかなる形式も有効にするには、これをコメント解除します。
write_enable=YES
#
# ローカルユーザーのデフォルト umask は 077 です。ユーザーがそれを期待する場合は、これを 022 に変更することをお勧めします。
# (022 は他のほとんどの ftpd で使用されています)
local_umask=022

[...]  

その後、vsftpd を再起動します:

service vsftpd restart

これで完了です。FTP クライアントを使用して接続を試みることができます。ただし、FTP クライアントを TLS を使用するように構成する必要があります (force_local_logins_ssl=YES と force_local_data_ssl=YES を使用する場合は必須です)。次の章では、FileZilla での設定方法を説明します。

5 vsftpd ユーザーの追加

このステップでは、接続に使用できるローカル Linux ユーザーを追加します。”till” というユーザーを “howtoforge” というパスワードで作成します。すべての FTP ユーザーは、mkdir /var/ftproot にホームディレクトリを持つ必要があるため、最初にこのディレクトリを作成します。

mkdir /var/ftproot

次に、次のコマンドでユーザーを追加します:

adduser --home /var/ftproot/till till

adduser コマンドは、ユーザーのパスワードといくつかの詳細を尋ねます。

root@server1:/# adduser --home /var/ftproot/till till  
Adding user `till' ...  
Adding new group `till' (1001) ...  
Adding new user `till' (1001) with group `till' ...  
Creating home directory `/var/ftproot/till' ...  
Copying files from `/etc/skel' ...  
Enter new UNIX password: <-- ここに新しいパスワードを入力してください  
Retype new UNIX password: <-- ここに新しいパスワードを再入力してください  
passwd: password updated successfully  
Changing the user information for till  
Enter the new value, or press ENTER for the default  
Full Name []: <-- ここにあなたの名前を入力するか、スキップするにはエンターを押してください  
Room Number []: <-- ここに部屋番号を入力するか、スキップするにはエンターを押してください  
Work Phone []: <-- ここに仕事の電話番号を入力するか、スキップするにはエンターを押してください  
Home Phone []: <-- ここに自宅の電話番号を入力するか、スキップするにはエンターを押してください  
Other []: <-- ここに他のユーザーの詳細を入力するか、スキップするにはエンターを押してください  
Is the information correct? [Y/n] <-- Y

FTP ユーザーを正常に追加しました。

6 TLS 用の FileZilla の構成

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

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

Filezilla サーバーマネージャ.

サーバーフィールドに FTP サーバーの IP アドレスまたはホスト名を入力し、プロトコルとして “FTP” と “Require Explicit FTP over TLS” を選択し、ユーザーフィールドにユーザー名を入力します。

Filezilla サーバーログイン詳細.

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

SSL 証明書を受け入れる.

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

vsftpd ログイン成功.

7 リンク

Share: X/Twitter LinkedIn

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

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