GCE Ubuntuでvsftpdサーバーを構築

SFTPがあるのに今さらレガシーFTP。
たまにGCPでFTP鯖立ててと言われる事があるのでメモ

vsftpdを入れる

まずはGCEのUbuntu鯖にvsftpdをインストール

$ sudo apt install vsftpd

次に、/etc/vsftpd.confをsudo vimで編集して、↓のようにする。

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
use_localtime=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=NO
ascii_upload_enable=YES
ascii_download_enable=YES
ssl_enable=NO
utf8_filesystem=YES
pam_service_name=vsftpd
tcp_wrappers=NO
pasv_enable=YES
pasv_promiscuous=YES
pasv_address=***.***.***.*** #このVMの External IP address を書く
pasv_min_port=60101
pasv_max_port=60110
force_dot_files=YES
listen_port=60021

これで、TCP:60021番ポートで待ち受けて、TCP:60101-60110番ポートでパッシブモード通信するという最低限のFTP鯖になる。

vsftpdを再起動して、OS起動時にvsftpdも起動するようにする。

$ sudo systemctl restart vsftpd
$ sudo systemctl enable vsftpd

ftp用のユーザーを作る

useraddでユーザー追加して、passwd設定する

$ sudo useradd -m -d /home/hoge -s /bin/bash hoge
$ sudo passwd hoge

VPC Firewallの設定を変える

tcp:60021,60101-60110 のIngressを許可する。
Target tagで「ftp」を指定。
で、vsftpdをインストールしたVMのnetwork tagにも「ftp」を追加。

あとはFileZillaなりncftpなり好きなFTPクライアントを使って、パッシブモードでtcp:60021番ポートにFTP接続すればOK。