Ubuntu に FTP サーバを vsftpd で構築する

目的

ssh ログインに慣れていないデザイナーさんとかがいるときによく使う
ただし, 色々な設定ができるので適時目的に見合った構築をするためにはこの記事の内容以上に色々調べたほうがいいかと

作業手順

ftp ユーザーの作成(ここでは ftpuser とする)

$ sudo adduser ftpuser

vsftpd をインストール

$ sudo apt-get install -y vsftpd

vsftpd の設定ファイルを編集

$ sudo vim /etc/vsftpd.conf
# 23行目:変更( anonymous無効 )
anonymous_enable=NO
# 26行目:コメント解除
local_enable=YES
# 29行目:コメント解除( 書き込み許可 )
write_enable=YES
# 97,98行目:コメント解除( アスキーモード転送許可 )
ascii_upload_enable=YES
ascii_download_enable=YES
# 120行目:コメント解除( chroot 有効 )
chroot_local_user=YES
# 121行目:コメント解除( chroot リスト有効 )
chroot_list_enable=YES
# 123行目:コメント解除( chrootリスト指定 )
chroot_list_file=/etc/vsftpd.chroot_list
# 129行目:コメント解除( ディレクトリごと一括での転送有効 )
ls_recurse_enable=YES

# 最終行へ追記:chrootのルートディレクトリ指定
# 指定しない場合はユーザーのホームディレクトリ直下になる
# public_htmlを指定した場合で、且つ当該ディレクトリがないとログインできないので注意

local_root=public_html
# ローカルタイムを使う
use_localtime=YES

chroot_list を編集して ftpuser を追加する

$ sudo vim /etc/vsftpd.chroot_list

iptables(ufw)などの設定

$ sudo ufw allow 20
$ sudo ufw allow 21
$ sudo service vsftpd restart

まとめ

なんか納得行かないのでそのうち書き直すかもしれない