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。