CentOS on Slicehostシリーズでは、基本的な設定をするところまでやりましたが、WordPress on CentOSでは、WordPressを動作させるために必要な環境を整えていきます。
先回MySQLをインストールし、最低限WordPressが動く環境は整いました。が、WordPressの便利な機能の1つ、自動アップグレードを利用するには、FTPも利用出来るようになっている必要があります。というわけで、今回はvsftpの設定をします。
WordPressの自動アップグレードにはFTPの他にSSHも使えるのです。が、SSHでアップグレード出来るようにするための設定が面倒くさかったので、ここではFTPにしてます。管理するのがめんどいので、基本的にyumで入れられるもの以外は入れない方針。。
さて本題に戻りまして。
ログインしたらrootに変身。さっそくyumでvsftpdをインストールします。
yum -y install vsftpd
vsftpの設定
vsftpの設定ファイルは、「/etc/vsftpd/vsftpd.conf」にあります。これを編集します。
vi /etc/vsftpd/vsftpd.conf
以下の項目を編集します。実際には各項目が設定ファイルの中に散らばって存在しているので、検索しながら設定して下さい。
anonymous_enable=NO
xferlog_std_format=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
また、PASV(パッシブ)やSSLで接続するために以下の設定を追記します。
use_localtime=YES
# for pasv setting
pasv_min_port=50000
pasv_max_port=50030
#for ssl setting
ssl_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
force_local_logins_ssl=NO
force_local_data_ssl=NO
このうち、pasv_min_portとpasv_max_portはそれぞれ、PASVでの接続時に使用するポート番号の最小値と最大値です。最小値と最大値の差は30くらいで、ポート番号は1024以上の値であれば何でも良いみたいです。
ホームディレクトリよりも上層へのアクセスを許可するユーザは「/etc/vsftpd/chroot_list」に登録します。
たとえば、ドキュメントルートを「/var/www/」等、ホームディレクトリではない場所にしている場合は、サイトの管理をするユーザをホームディレクトリよりも上層へアクセス出来るようにしておく必要があります。
以下のようにすれば追加されます。もちろん、viで開いて編集しても可です。複数ユーザある場合は1ユーザ毎に改行します。
echo demo >> /etc/vsftpd/chroot_list
以上、完了したらさっそくvsftpdを起動してみます。
service vsftpd start
この時、「Starting vsftpd for vsftpd: 500 OOPS: SSL: cannot load RSA certificate」というエラーが表示される場合は、設定ファイルに記述した「/etc/pki/tls/certs/vsftpd.pem」に存在していないことが考えられます。以下のようにしてvsftpd.pemを作成します。
cd /etc/pki/tls/certs/
make vsftpd.pem
作成時に以下の項目の入力を求められます。
- Country Name (国コード。日本はJP)
- State or Province Name (都道府県名)
- Locality Name (市町村名)
- Organization Name (組織名。会社名とか)
- Organizational Unit Name (部署名とか)
- Common Name (自分の名前とかサーバ名とか)
- Email Address (管理者のメールアドレス)
特にエラーが出なければファイルの作成は完了です。今度は普通に起動すると思います。
以上で設定は完了!
…と行きたいところですが、これではつながりません。iptablesの設定をいじって、FTPのためにポートを開けてあげる必要があります。
iptablesの設定
ポートを開けるには、iptablesの設定ファイル「/etc/sysconfig/iptables」を開いて、以下の記述(for vsftpd以下の2行)を追加します。記述する場所は、HTTPやSSHのためにポートを開けている部分の下あたりが分かりやすくて良いかと思います。
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
# for vsftpd
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 50000:50030 -j ACCEPT
書いたらiptablesを再起動。つづいて、vsftpを起動します。
service iptables restart
これでWordPressの自動アップグレード機能が利用出来るようになると思います。
普段はSFTP(SSHを利用したFTP)を利用する人の方が多いと思うので、利用していないときはvsftpを(ポートも)落としておいても良いと思います。むしろ、セキュリティ的には落としておいた方が安心かもです。
参考
標準テキスト CentOS 8 構築・運用・管理パーフェクトガイド [CentOS Stream対応]
- メーカー:SBクリエイティブ
- カテゴリ:Kindle版
- 発売日:2021/07/21