FTPを導入する

FTPサーバーを構築するには

基本的に、このWEBサイトは吉川のIT技術のポートフォリオですので、WordPressで構成しています。
なので、基本的にはサーバーへの文章や、文章中の画像の送り込みは全てWordPress経由なので、FTPは不要なのですが、サーバー技術として、FTPの構築も記事にしておきます。
FTP(File Transfer Protocol)は、FTPサーバーとFTPクライアントで、ファイルを交換する際の決まり事です。
WEBに関わる仕事を少しでもされた方は、切っても切れない必須の技術です。
WEB用のレンタルサーバーを借りたりすれば、必ずFTPのアカウントとパスワードが通知されます。
そのアカウントとパスワードをFFTP など、FTPクライアントに入力してレンタルしたサーバーに繋げると、自分で記述したhtmlファイルなどを送り込む事ができ、WEBサイトが構築できるというに、WEBに関わる殆どの場面で使用されます。

それでは早速、VPSサーバーにFTPサーバーをインストールしてみましょう。

# yum -y install vsftpd

インストールが完了したら、設定を行います。

# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES
↓
anonymous_enable=NO ← anonymousユーザーを無効化

#ascii_upload_enable=YES
#ascii_download_enable=YES
↓
ascii_upload_enable=YES
ascii_download_enable=YES ← asciiファイルの転送禁止を解除

#chroot_local_user=YES
#chroot_list_enable=YES
↓
chroot_local_user=YES
chroot_list_enable=YES ← chrootの有効化

#ls_recurse_enable
↓
ls_recurse_enable ← ディレクトリごと一括での転送機能を有効化

userlist_enable=YES ← デフォルトのまま
tcp_wrappers=YES ← デフォルトのまま

userlist_deny=NO ← 追加 ホワイトリスト化
userlist_file=/etc/vsftpd/user_list

# ssl settings ← SSL証明書を追加
ssl_enable=YES
rsa_cert_file=/etc/letsencrypt/live/yoshisyou.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/yoshisyou.com/privkey.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# other settings ← パッシブポート追加。公開する訳ではないので少数。
 pasv_enable=YES
 pasv_min_port=60001
 pasv_max_port=60003

 use_localtime=YES ← FTPファイル更新時間を日本時間に。
 allow_writeable_chroot=YES ← chroot権限設定
 force_dot_files=YES ← 隠しファイルも表示

 user_config_dir=/etc/vsftpd/user_conf ← ユーザー毎の設定ファイルの場所指定

sftpd.confを保存して閉じる。

# touch /etc/vsftpd/chroot_list ← リストファイル作成

# firewall-cmd --add-port=60001-60003/tcp  --zone=public --permanent

# mkdir -p /etc/vsftpd/user_conf ← ユーザーディレクトリ作成
# vi /etc/vsftpd/user_conf/user01 ← ユーザーのファイル作成
local_root=/var/www/user01  ← user01のルートディレクトリを、/var/www/user01にする。それより上のディレクトリは、chrootの設定により見えない。

# vi /etc/vsftpd/user_list ← 接続を許可するユーザーを記載


# systemctl start vsftpd ← vsftpdを起動

VPSサーバー上で作成したユーザーで、FTPログインできました。