Webサーバーのドキュメントルートなどにファイルを転送するためのFTPサーバーを設置します。vsftpdをインストールします。
インストール
$ sudo apt install vsftpd
設定ファイルのバックアップ
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.default
デフォルトの設定ファイルをバックアップしておきます(推奨)
設定ファイルを開きます。
$ sudo vim /etc/vsftpd.conf
14行目の「listen=NO」を「listen=YES」に変更してIPv4での接続を有効にします。
22行目の「listen_ipv6=YES」を「listen_ipv6=NO」にしてIPv6での接続を無効にします。
28行目の「local_enable=YES」がNOでないことを確認します。(ローカルユーザーアカウントのログインを許可)
31行目の「write_enable」の行頭の#を削除して有効化します。(ファイル変更のFTPコマンドの許可)
35行目の「local_umask=022」の#を削除して有効化します。(新規ファイルに適用するパーミッション値)
99行目の「ascii_upload_enable=YES」の#を削除して有効化します。(ASCIIによるアップロードの許可)
100行目の「ascii_download_enable=YES」の#を削除して有効化します。(ASCIIによるダウンロードの許可)
122行目の「chroot_local_user=YES」の#を削除して有効化します。(ログインディレクトリをそのユーザーのルートディレクトリに変更する)
123行目の「chroot_list_enable=YES」の#を削除して有効化します。(ユーザーのログインディレクトリの外側へのアクセスを禁止)
125行目の「chroot_list_file=/etc/vsftpd.chroot_list」の#を削除して有効化します。(上記規制の対象外のユーザーリスト)
131行目の「ls_recurse_enable=YES」の#を削除して有効化します。(ディレクトリ一括転送)
パッシブモードで使用されるポート番号の範囲を指定しておきます。
最終行に追記します。
pasv_min_port=60000 pasv_max_port=60100
vsftpd.chroot_listを作成、もしくは開きます。
$ sudo vim /etc/vsftpd.chroot_list
ユーザー名を記述します。
peconet
ファイアーウォールを使用している場合
ftp(21)のポートを開けます。
$ sudo ufw allow 21
「/etc/vsftpd.conf」で設定したパッシブモード用のポートを開けます。
$ sudo ufw allow 60000-60100/tcp
ufwを再読み込みします。
$ sudo ufw reload
vsftpdの再起動
$ sudo systemctl restart vsftpd
vsftpdの自動起動設定
$ sudo systemctl enable vsftpd
「FFFTP」や「WinSCP」などのクライアントから「192.168.3.10」でアクセスします。