FTPサーバの構築

動作確認済みシステム Debian 11

ファイルをサーバにアップしたり、サーバにあるファイルをダウンロードするためにFTPが使われます。FTPサーバとして、Vsftpdをインストールして設定します。

以下のコマンドでVsftpdをインストールします。

apt install vsftpd

設定ファイルを編集します。

vi /etc/vsftpd.conf
# anonymous_enableがNOになっていることを確認
anonymous_enable=NO

# コメント解除
write_enable=YES

# use_localtimeがYESになっていることを確認
use_localtime=YES

# xferlog_enableがYESになっていることを確認
xferlog_enable=YES

# 追記
xferlog_std_format=NO

# コメント解除
ascii_upload_enable=YES
ascii_download_enable=YES

# コメント解除
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

# コメント解除
ls_recurse_enable=YES

# 追記
pam_service_name=vsftpd
allow_writeable_chroot=YES
seccomp_sandbox=NO

# ポート番号を変更する場合のみ追記
listen_port=50021
pasv_min_port=50020
pasv_max_port=50020
ftp_data_port=50020

/etc/vsftpd.chroot_listのファイルがないとログインできないため、空ファイルを作っておきます。

echo -n > /etc/vsftpd.chroot_list

ファイアウォールでFTPのポートを許可します。

ポート番号を標準(20/TCP、21/TCP)のまま変えていない場合は、以下のコマンドで設定できます。

ufw allow 20/tcp
ufw allow 21/tcp

ポート番号を変えている場合は、以下のコマンドで設定できます。(例として50020/TCP、50021/TCP)

ufw allow 50020/tcp
ufw allow 50021/tcp

ファイアウォールの設定を反映させます。

ufw reload

vsftpdサービスを再起動します。

systemctl restart vsftpd.service

FTPクライアントから接続してみて、接続できたらOKです。