FTPサーバー · 1 min read · Sep 23, 2025
Debian 11にvsftpd FTPサーバーをインストールし、TLSで保護する方法

ファイル転送プロトコル(FTP)は非常に古く、最もよく知られているネットワークプロトコルの1つです。現在ではSFTPやSCPと比較して安全ではありませんが、サーバーとクライアント間でファイルを転送するための多くのユーザーの最初の選択肢です。FTPは、ユーザーの資格情報とともにデータを暗号化なしで転送するため、安全ではないと知られています。
現在、FTPD、VSFTPD、PROFTPD、pureftpdなど、さまざまなオープンソースのFTPサーバーが利用可能です。その中でも、VSFTPDは非常に安全で、高速で、2つのシステム間でファイルを転送するために最も広く使用されているプロトコルです。
VSFTPDは「Very Secure File Transfer Protocol Daemon」としても知られ、SSL、IPv6、明示的および暗黙的FTPSをサポートしています。
このガイドでは、Debian 11にvsftpd FTPサーバーをインストールする方法を示します。
前提条件
Debian 11を実行しているサーバー。 sudo権限を持つ非rootユーザー。
1. Vsftpdをインストールする
インストールを開始する前に、ターミナルで次のコマンドを実行してDebian 11サーバーを更新します:
sudo apt update -y
sudo apt upgrade -yDebianには非常に大きなリポジトリがあり、vsftpdパッケージは公式リポジトリにありますので、次のコマンドを実行して簡単にvsftpdをインストールできます:
sudo apt install vsftpd -yパッケージのインストール後、Vsftpdサービスを開始し、サービスのステータスを確認し、起動時にサービスを有効にします。
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl enable vsftpd.service2. FTPユーザーを作成し、FTPログインのために設定する
次に、FTP用の新しいユーザーアカウントを作成します。このユーザーを使用して後でFTPサーバーにログインします。
sudo adduser sohanvsftpd.userlistファイルに追加されたユーザーはFTPサーバーにアクセスする権限があります。
次に、sohanユーザーをvsftpdユーザーリストに追加する必要があります。ファイルを開き、次のコマンドを実行してユーザーを追加します:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist3. FTPユーザーのディレクトリを作成する
次に、FTPユーザー用のFTPディレクトリを作成し、次のコマンドで所有権を設定する必要があります:
sudo mkdir -p /home/sohan/ftp_directory
sudo chown nobody:nogroup /home/sohan/ftp_directory
sudo chmod a-w /home/sohan/ftp_directory次に、ファイルをアップロードできるディレクトリを作成し、sohanユーザーに所有権を与えるために次のコマンドを実行します:
sudo mkdir -p /home/sohan/ftp_directory/ftp_datasudo chown sohan:sohan /home/sohan/ftp_directory/ftp_datacd /home/sohan/ftp_directory/chmod -R 777 ftp_data4. Vsftpdを設定する
次に、FTPサーバーをセットアップするためにいくつかのデフォルトパラメータを変更する必要があります。
まず、元のvsftpd設定ファイルのバックアップコピーを作成します。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bakFTPサーバーでは、匿名ユーザーがデフォルトでアクセスを許可されています。FTPサーバーをより安全にするために、匿名ユーザーログインを無効にし、特定のユーザーにのみアクセスを許可します。
次に、vsftpd.confファイルを開き、以下のように変更します:
vim /etc/vsftpd.confanonymous_enable=NO
local_enable=YES設定で他にいくつかの変更を行う必要があります。まず、vsftpd.confを開きます。
sudo vim /etc/vsftpd.conf次に、vsftpd.confに以下の行が含まれていることを確認します:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NOファイルを保存して閉じます。必要に応じて上記の設定を変更できます。
次に、vsftpdサービスを再起動し、次のコマンドを実行してサービスのステータスを確認します:
sudo systemctl restart vsftpd次に、ターミナルで次のコマンドを実行してvsftpdサービスが実行中であることを確認します:
sudo systemctl status vsftpd5. ファイアウォールでvsftpdを許可し、vsftpdサーバーにアクセスする
次に、ファイアウォールを使用している場合は、次のコマンドを実行してポート21とポート22を許可します:
sudo ufw allow 21/tcp
sudo ufw allow 22/tcp次に、変更を適用するためにファイアウォールを再読み込みします:
sudo ufw reload次に、FileZillaなどの任意のFTPクライアントを開き、サーバーの詳細を入力します。プロトコル、ホスト、ユーザー:

接続をクリックし、パスワードを入力します:

次に、以下のような詳細が表示されます。OKをクリックします。

この時点で、FTPサーバーに接続されており、ファイル/フォルダーをアップロードおよびダウンロードできます。

6. SSL/TLSを使用してVsftpdを保護する
暗号化されたデータをFTP経由で転送したいとしましょう。そのためには、SSL証明書を作成し、SSL/TLS接続を有効にする必要があります。
次のコマンドを使用してOpenSSLを使用して証明書を作成できます:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem次に、vsftpd.confファイルを編集し、いくつかの変更を加える必要があります:
sudo vim /etc/vsftpd.conf最後に以下の行を追加します:
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGHファイルを保存して終了し、次のコマンドを使用してVsftpdを再起動します:
sudo systemctl restart vsftpd7. SSL/TLS経由でFTPにアクセスする
FileZilla FTPクライアントを開き、ファイル>サイトマネージャーに移動します。ここで、新しいサイトを追加し、ホスト/サイト名を入力し、IPアドレスを追加し、使用するプロトコルを定義し、暗号化:TLSを明示的に要求し、ログオンタイプを追加します。次に、接続ボタンをクリックします。以下の画像が表示されるはずです:
次に、パスワードを入力します:

次に、SSL証明書が表示され、証明書の詳細を確認し、OKをクリックします。

最後に、FTPサーバーの内容が表示され、1つのシステムから別のシステムにデータを安全に転送できます。

結論
上記のガイドでは、Debian 11にVSFTPDサーバーをインストールしました。また、非暗号化接続とSSL証明書を使用した暗号化接続の方法についても学びました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。