ファイル転送用にFTPサーバーを導入します。
vftpd をインストールします。
yuu@web2:/$ sudo apt-get install vsftpd |
/etc/vsftpd.conf を編集します。
“#” を削除してコメントアウトを外す。 userlist_enable=YES ← 追加 userlist_deny=NO ← 追加 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.chroot_list を作成して上位階層への移動を許可するユーザーを登録します。
1行毎に1つのユーザー名を記入します。
yuu@web2:/$ sudo nano /etc/vsftpd.chroot_list |
vsftpd.chroot_list を保存終了。
/etc/vsftpd.chroot_list を作成して接続可能なユーザーを登録します。vsftpd.chroot_list と同様に1行毎に1つのユーザー名を記入します。
yuu@web2:~$ sudo nano /etc/vsftpd.user_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 ポートとは異なるポート番号に変更します。