vsftpdのインストール
$ sudo apt install -y vsftpd
vsftpd.confの設定
設定項目は下記の記事を御覧ください。CentOS用の記事ですが設定は一緒です。Ubuntuのvsftpd.confはCentOS版で変更するところの多くがデフォルトで変更されている状態になっています。よって、あまり変更するところはないです。
viでvsftpd.confを開きます。
$ sudo vi /etc/vsftpd. conf
デフォルトで書き込みが不可になっているので、このままだとFTPでファイルをアップロードしたり削除したりができません。下記の部分を変更し、許可しておきます。
# write_enable=YES
↓
write_enable=YES
[Linux] FTPサーバー vsftpd の設定(vsftpd.conf)
vsftpdの再起動
$ sudo service vsftpd restart
vsftpdの状態確認
$ sudo service vsftpd status
FTP用portの開放
portの確認
$ sudo ufw status
(表示内容)
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80 ALLOW Anywhere
80 (v6) ALLOW Anywhere (v6)
20 / 21 番ポートの開放
$ sudo ufw allow 20
$ sudo ufw allow 21
#リロード
$ sudo ufw reload
#反映されたか確認
$ sudo ufw status
パッシブモード用のポート開放
上記の設定を行った後にFilezillaでFTP接続を試みると、ログインはOKとなり、その後「ディレクトリリストを取得中」という表示のままそこから進まないエラーが発生しました。
ホームディレクトリのパスは表示されているので、FTPの接続は大丈夫なようです。
パッシブモードで使うときには、パッシブモード用のポートの開放と、vsftpd.confの設定が必要でした。
$ sudo ufw allow ftp
$ sudo ufw allow 60000:60050/tcp
$ sudo vi /etc/vsftpd.conf を実行し、一番下に下記を追記します。
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60050