これまでの作業でサーバーへのファイルアップロードは基本的にSSH接続でのファイル転送(SFTP)で行なっていました。ただしこのままですとFTP接続でのファイル転送ができないのでFTPサーバーのインストールと設定を行なっていきます。
1. FTPサーバーのインストールと設定
1-1. 下記コマンドでFTPサーバーをインストールします。途中で確認が入るので「y」を選択して進めていきます。
# yum install vsftpd
1-2. FTPサーバー(vsftpd)のインストールが完了したら「/etc/vsftpd/vsftpd.conf」のバックアップを取りvimエディタで編集していきます。
# vim /etc/vsftpd/vsftpd.conf
1-3. FTPサーバーの設定ファイルである「vsftpd.conf」の内容を下記の通り編集していきます。以下の表記は(変更前 → 変更後)になります。
// 匿名ユーザーのログイン無効化 anonymouns_enable=YES → anonymouns_enable=NO // FTPのコマンドログを出力 xferlog_std_format=YES → xferlog_std_format=NO log_ftp_protocol=YES // ASCIIモード転送の有効化 #ascii_upload_enable=YES → ascii_upload_enable=YES #ascii_download_enable=YES → ascii_download_enable=YES // FTP接続時のバナー表示 #ftpd_banner=Welcome to blash FTP service. → ftpd_banner=Welcome to blash FTP service. // 上位ディレクトリ参照の有効化 #chroot_local_user=YES → chroot_local_user=YES #chroot_list_enable=YES → chroot_list_enable=YES #chroot_list_file=/etc/vsftpd/chroot_list → chroot_list_file=/etc/vsftpd/chroot_list // ls -R コマンドの使用可 #ls_recurse_enable=YES → ls_recurse_enable=YES // ローカルタイムの適用 use_localtime=YES を追記 // リスト内のユーザーにアクセスを限定 userlist_deny=NO を追記 // SSL通信の設定 rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem を追記 ssl_enable=YES を追記 ssl_ciphers=HIGH を追記 // パッシブモードの有効化 pasv_promiscuous=YES を追記 pasv_min_port=50000 を追記 pasv_max_port=50030 を追記
1-4. 下記コマンドでSSL通信時の証明書を「/etc/pki/tls/certs/」に移動してから作成します。
# cd /etc/pki/tls/certs/ # make vsftpd.pem
1-5. 証明書ファイルである「vsftpd.pem」の作成が始まり、下記の項目を入力していくことになります。
Country Name → JP State or Province Name → osaka(都道府県名) Locality Name → osakacity(市区町村名) Organization Name → designsupply(組織名) Organizational Unit Name → devteam(所属部署名) Common Name → [NAME](名前もしくはサーバーホスト名) Email Address → [MAILADDRESS](メールアドレス)
1-6. 「/etc/pki/tls/certs/」配下に「vsftpd.pem」の証明書ファイルが生成されているかを確認します。
1-7. 「/etc/vsftpd/」配下に「chroot_list」ファイルを下記コマンドで生成します。(中は空っぽでOK)
# vim /etc/vsftpd/chroot_list
2. FTPユーザーの作成とfirewalldの設定
2-1. 下記コマンドでFTPユーザーを作成し、パスワードを設定します。
# adduser --home /var/www --shell /sbin/nologin [FTP_USERNAME] # passwd [FTP_USERNAME]
2-2. 作成したFTPユーザーを「/etc/vsftpd/user_list」へ追加します。vimエディタで開き、下記の通り追記します。
# vim /etc/vsftpd/user_list -------- # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. [FTP_USERNAME] // 追加したFTPユーザーを追記 --------
2-3. サーバー起動時に自動的にFTPサーバーが起動するように下記コマンドで設定し、引き続いてFTPサーバーを起動させる
# systemctl enable vsftpd # systemctl start vsftpd
2-4. 下記コマンドでFTP接続に関するfirewalldの設定を行います。
# firewall-cmd --add-service=ftp --permanent # firewall-cmd --add-port=20-21/tcp --permanent # firewall-cmd --add-port=50000-50030/tcp --permanent # firewall-cmd --reload
2-5. FTPクライアントツールでFTP接続し、ファイルの転送ができるかを確認します。
これでFTP及びFTPS接続でのファイル転送ができるようになりました。あまり使用するケースはないかもしれませんが、できるようにしておくと何かと便利ではないでしょうか。
(参考)
さくらVPSでFTPを使える様にした
さくらVPSにFTPで接続する(CentOS+vsftpd)
[shortcodefile file=’shortcode-developmentlab-001′]