構築環境(GCPの無料枠で構成)
- VMインスタンス構成
汎用
N1シリーズ
マシンタイプ: f1-micro
ブートディスク: OS CentOS7
HDD 30GB
作業内容
- GoogleCloudPlatform(以下GCP)のアカウントを作成
- GCPでプロジェクト作成
- ComputeEngine でVMインスタンスを作成
- VMインスタンス上にFTPサーバ(vsftpd)のインストール
- VMインスタンス上のFTPサーバ(vsftpd)の設定ファイル編集
- vsftpdのサービスを起動
- GCPのVPCネットワークでファイアウォールの設定
- ファイアウォールの設定をVMインスタンスに割り当てる
- PCからFFFTPで接続テスト
GoogleCloudPlatform(以下GCP)のアカウントを作成
- gmailアカウントを作成して、chromeブラウザ等でアカウントにログインする
GCPでプロジェクト作成
- 適当な名前でプロジェクトを作成する
ComputeEngine でVMインスタンスを作成
- 左上の [三] のメニューから ComputeEngine を選択
- VMインスタンスを選択
- 画面上の作成ボタンを押下して、インスタンスの構成を選択して作成する
マシン構成
汎用: N1シリーズ, f1-micro
ブートディスク: OS: CentOS 7, 永続30GB
上記構成で作成
VMインスタンス上にFTPサーバ(vsftpd)のインストール
- GCPのVMインスタンス ページの作成済みインスタンスの項目にある接続から、ブラウザウィンドウで開く を選択しVMインスタンスに接続する
- Linuxとか、Unixとかの黒画面が出てくるのでコマンドで操作する
- gmailアカウントのユーザー名部( xxxxx @gmail.comの@の左部)で、ユーザーが自動で登録されてるぽい
ftpuser @gmail.com
でアカウントを作成したと仮定
しておく
黒画面でコマンドを入力
とりあえず、スーパーユーザーにする
sudo -s
ユーザーにパスワードを設定する
passwd ftpuser
# と打ち込むと、ftpuser に対して、
# 設定するパスワードの入力を求められるので入力してEnter
Changing password for user ftpuser.
New password:
# と入力を求められるので、パスワードを入力
# 打ち込んだ文字列は表示されない
Retype new password:
# 入力確認されるので、設定したパスワードを入力してEnter
# 設定と確認で入力したパスワードが一致してれば、
passwd: all authentication tokens updated successfully.
# と出れば、設定完了
# ここで設定したパスワードは、最後のFFFTP で使用する
vsftpd をインストールする
yum install vsftpd
/etc/vsftpd にインストールされる
vsftpd.conf の設定ファイルをviエディタで調整する
vi /etc/vsftpd/vsftpd.conf
これで、VIエディタで vsftpd.conf のファイルをオープンした状態
anonymous_enable=YES
↓
anonymous_enable=NO
dirmessage_enable=YES
↓
dirmessage_enable=NO
#ascii_upload_enable=YES
#ascii_download_enable=YES
↓
ascii_upload_enable=YES
ascii_download_enable=YES
listen=NO
listen_ipv6=YES
↓
listen=YES
listen_ipv6=NO
最下部に加筆する
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
# userlist_deny=NO にすることで、user_list に指定されてるユーザーのみアクセスを許可するようになるらしい
use_localtime=YES
pasv_enable=YES
pasv_promiscuous=NO
pasv_min_port=61000
pasv_max_port=61010
pasv_address=xxx.xxx.xxx.xxx
# pasv_enable でFTPのパッシブモードを有効にする
# pasv_min_port, pasv_max_port は、データ転送で使うポートの範囲を指定する
# pasv_address は GCPのVMインスタンスのグローバルIPを指定する
listen_port=61234
- 編集が終わったら保存して閉じる
/etc/vsftpd/user_list を編集
ファイルの存在を確認するためにコマンド ペシッ!
ls /etc/vsftpd
user_list がリストアップされたら、存在してるけど
ない場合は以下コマンドを使ってファイルを作る
#作る
touch /etc/vsftpd/user_list
#編集する
vi /etc/vsftpd/user_list
# ftpuser だけ記載して、あとは削除して保存
ftpuser
vsftpdのサービスを起動
# 自動起動の設定をしておく
systemctl enable vsftpd
# 手動で起動する
systemctl start vsftpd
# 起動確認する
systemctl status vsftpd
GCPのVPCネットワークでファイアウォールの設定
- GCPのほうに戻って上部メニューの[三]から、VPCネットワークへ移動
- ファイアウォールに移動
- 上部の
ファイアウォールルールを作成
で、ルールを追加(上り/下りで2件追加する)
上りの設定
- 名前は任意、とりあえず
use-ftp-up
とかで作る - トラフィックの方向を
上り
を選択 - ターゲットの項目で、タグをつける:例
use-ftp-up
- プロトコルとポートで、指定したプロトコルポートで20-21と
vsftpd.conf
で指定したpasv_min_port,pasv_max_port
の範囲を指定する( 61000-60010 )vsftpd.confでlisten_portで設定したポート番号
も設定する( 例: 61234 )
下りの設定
- 名前は任意、とりあえず
use-ftp-dl
とかで作る - トラフィックの方向を
下り
を選択 - ターゲットの項目で、タグをつける:例
use-ftp-dl
- プロトコルとポートで、指定したプロトコルポートで
vsftpd.conf
で指定したpasv_min_port,pasv_max_port
の範囲を指定する( 61000-60010 )
ファイアウォールの設定をVMインスタンスに割り当てる
- GCPのComputeEngine でVMインスタンスを選択
- 上部メニューから、編集を行う
- 設定の中間あたりの位置にある、
ネットワークタグ
に先ほど作ったファイアウォールルールのタグ
を設定する
use-ftp-upとuse-ftp-dl
PCからFFFTPで接続テスト
- FFFTPのホスト名に、VMインスタンスのグローバルIPを設定
- ユーザー名に、作ったユーザー名を設定( 例:ftpuser )
- VMインスタンス側で設定した、ftpuserのパスワードを指定する
- 拡張タブのポート番号を、
vsftpd.confで設定したポート番号
にする(例:61234)
上り下りとも転送できることを確認したら
- VMインスタンスは削除