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 -y

Debianには非常に大きなリポジトリがあり、vsftpdパッケージは公式リポジトリにありますので、次のコマンドを実行して簡単にvsftpdをインストールできます:

sudo apt install vsftpd -y

パッケージのインストール後、Vsftpdサービスを開始し、サービスのステータスを確認し、起動時にサービスを有効にします。

sudo systemctl start vsftpd  

sudo systemctl status vsftpd  

systemctl enable vsftpd.service

2. FTPユーザーを作成し、FTPログインのために設定する

次に、FTP用の新しいユーザーアカウントを作成します。このユーザーを使用して後でFTPサーバーにログインします。

sudo adduser sohan

vsftpd.userlistファイルに追加されたユーザーはFTPサーバーにアクセスする権限があります。

次に、sohanユーザーをvsftpdユーザーリストに追加する必要があります。ファイルを開き、次のコマンドを実行してユーザーを追加します:

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3. 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_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

4. Vsftpdを設定する

次に、FTPサーバーをセットアップするためにいくつかのデフォルトパラメータを変更する必要があります。

まず、元のvsftpd設定ファイルのバックアップコピーを作成します。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

FTPサーバーでは、匿名ユーザーがデフォルトでアクセスを許可されています。FTPサーバーをより安全にするために、匿名ユーザーログインを無効にし、特定のユーザーにのみアクセスを許可します。

次に、vsftpd.confファイルを開き、以下のように変更します:

vim /etc/vsftpd.conf
anonymous_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 vsftpd

5. ファイアウォールでvsftpdを許可し、vsftpdサーバーにアクセスする

次に、ファイアウォールを使用している場合は、次のコマンドを実行してポート21とポート22を許可します:

sudo ufw allow 21/tcp  
  
sudo ufw allow 22/tcp

次に、変更を適用するためにファイアウォールを再読み込みします:

sudo ufw reload

次に、FileZillaなどの任意のFTPクライアントを開き、サーバーの詳細を入力します。プロトコル、ホスト、ユーザー:

ファイアウォールの設定
接続をクリックし、パスワードを入力します:

パスワードを入力

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

新しいホストを受け入れる

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

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 vsftpd

7. SSL/TLS経由でFTPにアクセスする

FileZilla FTPクライアントを開き、ファイル>サイトマネージャーに移動します。ここで、新しいサイトを追加し、ホスト/サイト名を入力し、IPアドレスを追加し、使用するプロトコルを定義し、暗号化:TLSを明示的に要求し、ログオンタイプを追加します。次に、接続ボタンをクリックします。以下の画像が表示されるはずです:
SSL/TLS経由でFTPにアクセス

次に、パスワードを入力します:

パスワードを入力
次に、SSL証明書が表示され、証明書の詳細を確認し、OKをクリックします。

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

FTPサーバー接続成功

結論

上記のガイドでは、Debian 11にVSFTPDサーバーをインストールしました。また、非暗号化接続とSSL証明書を使用した暗号化接続の方法についても学びました。

Share: X/Twitter LinkedIn

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

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