Ubuntu 20.04でサーバー構築 9:FTPサーバーの設定

ファイル転送用にFTPサーバーを導入します。
vftpd をインストールします。

yuu@web2:/$ sudo apt-get install vsftpd

/etc/vsftpd.conf を編集します。

“#” を削除してコメントアウトを外す。
listen=YES           ← スタンドアローンモードで起動する
write_enable=YES       ← 書き込みを許可する
local_umask=022       ← ローカルユーザーのumaskを指定するascii_upload_enable=YES    ← # アスキーモード転送を許可する
ascii_download_enable=YES
chroot_local_user=YES     ← chroot を有効にする
chroot_list_enable=YES     ← chroot リストを有効にするchroot_list_file=/etc/vsftpd.chroot_list    ← chroot リストを指定するls_recurse_enable=YES     ← ディレクトリ毎の一括転送を有効にする

ファイルの最後に追加する。
# /etc/vsftpd.user_list に記載されているユーザーのみに接続を許可する
userlist_enable=YES
userlist_deny=NO
# パッシブモードでの接続を設定する
pasv_enable=YES
pasv_promiscuous=NO
pasv_min_port=6100
pasv_max_port=6105

/etc/vsftpd.chroot_list を作成して上位階層への移動を許可するユーザーを登録します。
1行毎に1つのユーザー名を記入します。

yuu@web2:/$ sudo nano /etc/vsftpd.chroot_list

vsftpd.chroot_list を保存終了。
自動起動設定をします。

yuu@web2:~$ sudo systemctl enable vsftpd.service
Synchronizing state of vsftpd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable vsftpd

vsftpd を再起動します。

yuu@web2:/$ sudo systemctl restart vsftpd

vsftpd の動作を確認するためにlocalhost 内でftp 接続をしてみます。

yuu@web2:~$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:yuu): yuu    ←ターミナルと同じユーザー名なら省略可能
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la           ←ユーザーホームディレクトリ内を表示
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 4 1000 1000 4096 Feb 15 10:19 .
drwxr-xr-x 4 0 0 4096 Feb 09 22:29 ..
-rw——- 1 1000 1000 8872 Feb 13 22:22 .bash_history
-rw-r–r– 1 1000 1000 220 Feb 25 2020 .bash_logout
-rw-r–r– 1 1000 1000 3771 Feb 25 2020 .bashrc
drwx—— 2 1000 1000 4096 Feb 05 23:11 .cache
drwxrwxr-x 3 1000 1000 4096 Feb 06 22:03 .local
-rw——- 1 1000 1000 395 Feb 15 10:19 .mysql_history
-rw-r–r– 1 1000 1000 807 Feb 25 2020 .profile
-rw-r–r– 1 1000 1000 0 Feb 05 23:12 .sudo_as_admin_successful
226 Directory send OK.
ftp> quit
221 Goodbye.

ufw にアクセスを許可するポートを設定します。

yuu@web2:~$ sudo ufw allow ftp       ←FTPポート(21)開放
[sudo] yuu のパスワード:
ルールを追加しました
ルールを追加しました (v6)
yuu@web2:~$ sudo ufw allow 6100:6105/tcp   ←パッシブモード用ポート開放
ルールを追加しました
ルールを追加しました (v6)
yuu@web2:~$ sudo ufw status
状態: アクティブTo Action From
— —— —-
Apache ALLOW Anywhere
OpenSSH ALLOW Anywhere
Samba ALLOW Anywhere
80 ALLOW Anywhere
21/tcp ALLOW Anywhere
6100:6105/tcp ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Samba (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
6100:6105/tcp (v6) ALLOW Anywhere (v6)

Windows PC からFFFTPを設定して接続してみます。
ユーザーホームディレクトリだけで無く、サーバーPC上層ディレクトリへも移動してファイルのダウンロード、アップロードを行ってみて確認します。

なお、ftp や ssh はサーバー管理者のみが使用する場合、セキュリティ対策としてサーバーをインターネットに公開する前に使用するポートはwellknown ポートとは異なるポート番号に変更します。

カテゴリー: サーバー タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です