さくら VPS に FTP で接続する (CentOS + vsftpd)
はじめに
さくらの VPS に、FTP で接続します。
環境
- VPS : さくらVPS 1G SSD
- OS : CentOS 7.3
- その他 : vsftpd 3.0.2
vsftpd のインストール
ここでは、vsftpd(Very Secure Ftp Deamon) をインストールします。vsftpd は安全性とパフォーマンスにすぐれ安定した FTP サーバのひとつです。
1# yum install vsftpd
設定ファイルを編集する
vsftpd.conf を環境に応じて編集します。
1# vi /etc/vsftpd/vsftpd.conf
匿名ユーザーによるログインを無効にする
YES の場合、匿名ユーザーによるログインか可能になるため NO に変更します。
/etc/vsftpd/vsftpd.conf1- anonymouns_enable=YES 2+ anonymouns_enable=NO
FTPコマンドログを有効にする
xferlog_std_form=NO, log_ftp_protocol=YES
の場合、すべての FTP コマンドと応答がログに記録されます。
/etc/vsftpd/vsftpd.conf1- xferlog_std_format=YES 2+ xferlog_std_format=NO 3+ log_ftp_protocol=YES
ASCII モードでの転送を有効にする
Windows からファイルをアップロードしたときに、不要な改行コードをつけないために、先頭の#を削除して有効にします。
/etc/vsftpd/vsftpd.conf1- #ascii_upload_enable=YES 2- #ascii_download_enable=YES 3+ ascii_upload_enable=YES 4+ ascii_download_enable=YES
接続時のバナー表示を設定する
デフォルトでは、vsftpd のバージョンを表示するため #
を削除して設定します。
/etc/vsftpd/vsftpd.conf1- #ftpd_banner=Welcome to blash FTP service. 2+ ftpd_banner=Welcome to blash FTP service.
上位ディレクトリの参照を可能にする
chroot_list に記載したユーザーについては、ホームディレクトリより上位のディレクトリを参照できるように設定します。
/etc/vsftpd/vsftpd.conf1- #chroot_local_user=YES 2- #chroot_list_enable=YES 3- #chroot_list_file=/etc/vsftpd/chroot_list 4+ chroot_local_user=YES 5+ chroot_list_enable=YES 6+ chroot_list_file=/etc/vsftpd/chroot_list
ls -R
での参照を許可する
ディレクトリを再帰的に参照するように変更します。巨大なサイトでは多くのリソースを消費します。
/etc/vsftpd/vsftpd.conf1- #ls_recurse_enable=NO 2+ ls_recurse_enable=YES
GMT ではなくローカルタイムを表示する
ローカルタイムを表示するため行を追加します。
/etc/vsftpd/vsftpd.conf1+ use_localtime=YES
リスト内のユーザーのみアクセスを許可する
NO を指定すると、userlist_file で指定したファイルに名前がないユーザーのアクセスを禁止します。
/etc/vsftpd/vsftpd.conf1+ userlist_deny=NO
SSL による暗号化通信を設定します
SSL による暗号化通信を有効にして、データの盗聴を防ぎます。サーバ証明書の作成はこちら。
/etc/vsftpd/vsftpd.conf1+ rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem 2+ ssl_enable=YES 3+ ssl_ciphers=HIGH
パッシブモードを有効にする
pasv_promiscuous=YES
にすると、同一の IP アドレスを起源とすることを確認するためのチェックをおこないません。
/etc/vsftpd/vsftpd.conf1+ pasv_promiscuous=YES 2+ pasv_min_port=50000 3+ pasv_max_port=50030
サーバ証明書の作成
SSL 通信のためにサーバ証明書を作成します。
1# cd /etc/pki/tls/certs/ 2# make vsftpd.pem 3 4Country Name (2 letter code) [XX]:JP 5State or Province Name (full name) []: 6Locality Name (eg, city) [Default City]: 7Organization Name (eg, company) [Default Company Ltd]: 8Organizational Unit Name (eg, section) []: 9Common Name (eg, your name or your server's hostname) []: 10Email Address []:
- Country Name (2 letter code) [XX] : 国コードを入力します。日本の場合は「JP」です。
- State or Province Name (full name) [] : 都道府県名を入力します。
- Locality Name (eg, city) [Default City] : 市区町村名を入力します。
- Organization Name (eg, company) [Default Company Ltd] : 組織名を入力します。
- Organizational Unit Name (eg, section) [] : 部署名を入力します。
- Common Name (eg, your name or your server's hostname) [] : 名前またはサーバホスト名を入力します。
- Email Address [] : メールアドレスを入力します。
vsftpd の自動起動設定
サーバ起動時に、vsftpd を自動起動するように設定します。
1# systemctl enable vsftpd
vsftpd 起動
vsftpd を起動します。
1# systemctl start vsftpd
ファイアウォールの設定
FTP 接続のために、firewalld (ファイアウォール)を設定します。パッシブモード用にポートを許可します。
1# firewall-cmd --add-service=ftp --permanent 2# firewall-cmd --add-port=50000-50030/tcp --permanent 3# firewall-cmd --reload
FTP クライアントからサーバに FTP 接続できれば成功です。