FTPサーバーのインストール
apt-get install vsftpd
設定ファイル
/etc/vsftpd.conf
環境設定ファイル
#変更 #匿名ユーザーのログインは許可しない。 anonymous_enable=NO #ユーザが新しいディレクトリに初めて移動したとしてもメッセージは表示しない。 dirmessage_enable=NO #アスキーモードのアップロードを有効にする。 ascii_upload_enable=YES #アスキーモードのダウンロードを有効にする。 ascii_download_enable=YES #ローカルユーザーのルートを各自のホームに変更する。 chroot_local_user=YES #chroot_listを有効にする。ファイルはデフォルト(chroot_list_file=/etc/vsftpd/chroot_list)になる。 chroot_list_enable=YES #ホストへのアクセスを制御しない。(EC2のSecurity Groupsで設定する方がよい) tcp_wrappers=NO #ActiveFTPを無効にする。 connect_from_port_20=NO #wu-ftpdではなく,vsftpdログ形式でログを記録する。 xferlog_std_format=NO #追加 #PASV FTPを有効にする。 pasv_enable=YES #PASVモード接続先IPアドレスをホスト名から取得する。 pasv_addr_resolve=YES #Elestic IPを設定する。(インスタンスのPublic DNSを指定するとPASVモードでの接続はできない。 #バージョン2.0.4以降であれば、IPが固定でなくても pasv_addressにDDNSを書くことで動的なIPに対応できる。) pasv_address=<固定IP> #PASVモード接続時の最小ポート番号を設定する。(確認した空きポートの範囲で設定) pasv_min_port=60001 #PASVモード接続時の最大ポート番号を設定する。(確認した空きポートの範囲で設定) pasv_max_port=60010 #ローカルタイムを使用する。(デフォルトはGMT) use_localtime=YES #.(ドット)で始まるファイルを隠さない。 force_dot_files=YES
- <固定IP> : サーバーのパブリックIPアドレスを設定する。
- サーバー側に21ポート以外に60001-60010ポートをオープンする必要がある。
vsftpの起動・停止
sudo systemctl stop vsftpd.service sudo systemctl start vsftpd.service
FTPサーバーの状態確認
$ systemctl status vsftpd.service ● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: e Active: active (running) since Thu 2017-10-26 06:51:50 UTC; 10min ago Process: 18896 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, Main PID: 18902 (vsftpd) Tasks: 1 Memory: 2.7M CPU: 29ms CGroup: /system.slice/vsftpd.service └─18902 /usr/sbin/vsftpd /etc/vsftpd.conf Oct 26 06:51:50 ftptest systemd[1]: Starting vsftpd FTP server... Oct 26 06:51:50 ftptest systemd[1]: Started vsftpd FTP server.
FTPログイン後、書き込みができない場合
エラーになる:550 Permission denied.
/etc/vsftpd.confファイルの以下の部分を修正する。
# Uncomment this to enable any form of FTP write command. #write_enable=YES
sftpで接続
ftpとの違いユーザIDを指定して実行する必要がある。
$ sftp userid@127.0.0.1 userid@127.0.0.1's password: Connected to 127.0.0.1. sftp>
vsftpの軌道設定
sudo chkconfig vsftpd on
anonymousのrootフォルダー変更
#anonymousログイン時のrootフォルダーを指定する anon_root=/media/share
- anonymous_enable=YES の設定が必要
インストールの削除
apt-get purge vsftpd
サービスの手動開始
/sbin/service vsftpd start
使用可能なポート確認
cat /proc/sys/net/ipv4/ip_local_port_range