サーバー設定 · 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 openssl3 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 tilladduser コマンドは、ユーザーのパスワードといくつかの詳細を尋ねます。
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] <-- YFTP ユーザーを正常に追加しました。
6 TLS 用の FileZilla の構成
TLS を使用して FTP を利用するには、TLS をサポートする FTP クライアントが必要です。FileZilla などです。
FileZilla で、サーバーマネージャを開きます:

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

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

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

7 リンク
- vsftpd: https://security.appspot.com/vsftpd.html
- FileZilla: http://filezilla-project.org/
- Debian: http://www.debian.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。