デプロイした OpenLiteSpeed × WordPress 環境を使いやすくするために、LiteSpeed Web Server(LSWS) の設定を少し追加と設定を行います。
具体的には「SWAP 領域の確保」「phpMyAdmin へのアクセス禁止」「ドメインへのリダイレクト設定」を行います。
SWAP 作成/削除
SWAP メモリの作成
※ 高性能の VM インスタンス タイプを利用している場合はスキップしてください。
LiteSpeed Web Serve では、最初から SWAP 領域が用意さていません。
高性能のマシンであれば問題はありませんが 600 MB の f1-micro ではメモリ不足で頻繁に VM インスタンスが落ちてしまいます。
f1-micro から高性能のマシンに変更すれば解決しますが Alway Free(無料枠)を利用するには f1-micro を使用しなければなりません。そこで f1-micro に HDD にメモリ領域を作成し、擬似的にメモリを増強するために SWAP 領域を用意します。
VM インスタンスに SSH 接続を行い、ターミナルを起動します。
次のコマンドを実行し、現在のメモリ状況の確認と SWAP 領域を確認します。
free -h -t

次のコマンドを実行し、SWAP 領域として使う 4G の swapfile ファイルを /tmp/lshttpd/ に作成します。
※OpenLiteSpeed では、スワップディレクトリは「/tmp/lshttpd/swap」で指定されています。
※ここでは SWAP 領域を 4G にしています。お好みの数値に変更してください。
sudo fallocate -l 4G /tmp/lshttpd/swapfile
次のコマンドを実行し、作成したファイルの権限を所有者のみの読み書きに変更します。
sudo chmod 600 /tmp/lshttpd/swapfile
次のコマンドを実行し、作成した swapfile ファイルを SWAP 領域として指定します。
sudo mkswap /tmp/lshttpd/swapfile
次のコマンドを実行し、swapfile ファイルを SWAP 領域を有効にします。
sudo swapon /tmp/lshttpd/swapfile

この状態では VM インスタントが再起動時にリセットされてしまうため、起動時に SWAP が自動マウントされるように fstab に追記します。
次のコマンドを実行し、fstab ファイルに「/tmp/lshttpd/swapfile none swap sw 0 0」を追記します。
echo '/tmp/lshttpd/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

次のコマンドを実行し、SWAP の使用状況を確認します。
swapon --show

以上で SWAP 領域の設定となります。
スワップ 削除
設定した SWAP ファイルを削除します。
次のコマンドを実行し、稼働した SWAP を停止します。
sudo swapoff -v /tmp/lshttpd/swapfile
次のコマンドを実行し、fstab ファイルを開いて記入した「/tmp/lshttpd/swapfile none swap sw 0 0」を削除します。
sudo swapoff -v /tmp/lshttpd/swapfile

次のコマンドを実行し、SAWP ファイルを削除します。
sudo rm /tmp/lshttpd/swapfile
以上で SWAP ファイルの削除になります。
phpMyAdmin を非表示
OpenLiteSpeed のデフォルト設定では「http://IP アドレス/phpmyadmin」で phpMyAdmin へのアクセスができる状態になっています。
phpMyAdminを保護 するために LiteSpeed のコントロールパネルで phpMyAdmin をアクセス禁止(非表示)に変更します。

VM インスタンスに SSH 接続し、ターミナルを表示させます。
次のコマンドを実行し、すべての IP アドレスがポート 7080 へのアクセスを許可します。
sudo ufw allow 7080

次のコマンドを実行し、LSWS のコントロールパネルの ID/PW を取得します。
cat /home/ubuntu/.litespeed_password

「http://{IP アドレス}:7080」で LiteSpeed の管理画面にアクセスし、取得した ID/PW を入力してログインします。

操作しやすいように上部バーの右側の English を日本語に変更します。
バーチャルホストを選択し、「wordpress」をクリックします。

コンテキスト タブを選択し、アクションから編集をクリックします。

アクセス可能 項目を「いいえ」に変更し、静的コンテキストの定義バーの「保存」をクリックします

変更を適用するには OpenLiteSpeed を再起動しなければなりません。
上部 右上の「緩やかな再起動」をクリックし、再起動を実行します。

アクセス禁止 の状態で phpMyAdmin にアクセスすると「403 Forbidden」と表示されます。

次のコマンドを実行し、ポート 7080 への接続を閉じて OpenLiteSpeed の管理画面にアクセスできないようにします。
sudo ufw delete allow 7080

以上で phpMyAdmin をアクセス禁止(非表示)に変更が完了となります。
補足:phpMyAdmin へのアクセス制限
上記では phpMyAdmin 自体へのアクセス不可能にする設定でしたが、許可した IP アドレスのみをアクセス可能でそれ以外はアクセスができないようにする設定もあります。
同じようにLiteSpeed のコントロールパネル > バーチャルホスト > wordpress > コンテキスト > phpmyadmin に移動し、コンテキスト リストを編集します。
「アクセスが許可されました」にアクセスを許可するIP アドレス を設定し、「アクセスが拒否されました 」に* で設定します。
サブネットを利用する場合は IP アドレス/サブネット で設定できます。

この変更を適用するために「緩やかな再起動」を実行し、変更を適用させます。
リダイレクト設定
IP アドレスをドメインにリダイレクト
IP アドレス には何も設定されていないので IP アドレスで検索するとそのままIP アドレスが表示されます。
「IP アドレス」「ドメイン」が同じサイトでも別サイトとしてインデックスされるので IP アドレスをドメインへのリダイレクトするように設定します。
LiteSpeed の管理画面にアクセスし、バーチャル ホストから「wordpress」をクリックします。

「Rewrite」タブを選択し、Rewrite ルールを編集します。

下記のコードをコピーし、IP アドレスとドメインを適当に変更して、保存を行います。
※ HTTP を HTTPS へのリダイレクト設定をすでに設定済みのため、http://35.240.201.78 でのアクセスはhttps://http://vietnam.4watcher365.dev/ へとリダイレクトされます。
RewriteCond %{HTTP_HOST} ^35\.240\.201\.78$
RewriteRule ^(.*)$ http://vietnam.4watcher365.dev/$1 [L,R=301]
※ 「. (ドット/ピリオド)」は正規表現で任意の1文字という意味を持っているため、「\(バックスラッシュ)」を付けることでURLのピリオドと認識させます。

この変更を適用するために「緩やかな再起動」を実行し、変更を適用させます。

以上で IP アドレスをドメインへのリダイレクト設定となります。
ルートドメイン または www ドメインをサブ ドメインへ
ルート ドメイン または www ドメインからのアクセスをサブ ドメインへリダイレクトさせるには、次の記述になります。
※ [OR] をつけていない場合、[AND] になり 両方が一致したときとなるため、ルート または www からのリダイレクトが起動しない。
RewriteCond %{HTTP_HOST} ^4watcher365\.dev$ [OR]
RewriteCond %{HTTP_HOST} ^www\.4watcher365\.dev$
RewriteRule (.*)$ https://vietnam.4watcher365.dev/$1 [R=301,L]
LSWS 管理画面を閉じた後は次のコマンドを実行し、ポート 7080への接続を閉じて OpenLiteSpeed の管理画面にアクセスできないようにします。
sudo ufw delete allow 7080

まとめ
今後、WordPress 運用がしやすいように「SWAP 領域の確保」「phpMyAdmin へのアクセス禁止」「ドメインへのリダイレクト設定」を行いました。
貧弱な f1-micro ではメモリ不足で VM インスタンスが度々落ちてしまいます。そこで SWAP 領域を作ることでメモリを擬似的に増強することで安定した運用が行なえます。所感ですが g1-small (vCPU x 1、メモリ 1.7 GB)であればSWAP 領域も作らず、安定した運用ができました。
高性能なマシン タイプを使用している場合は SWAP は作成しなくても大丈夫ですが「phpMyAdmin へのアクセス禁止」はどのマシン タイプであっても行っておくべきセキュリティ対策です。
デフォルトの phpMyAdmin ユーザー ID は root または wordpress です。パスワードも複雑で長いパスワードとはいえ、総当り攻撃で突破されてしまいます。また、総当り攻撃により、VM インスタンスへの負荷が明る可能性もあるのでアクセス禁止またはアクセス制限を掛けておくべき事項です。
関連する OpenLiteSpeed の記事
- 乗り換える前に知っておきたい、 NginxとLiteSpeedの比較テスト [素組]
- 【GCP】ワンクリックでOpenLiteSpeed×WordPressをデプロイ
- OpenLiteSpeed Web サーバーの初期設定
- OpenLiteSpeed のphpMyAdmin にログインする方法
- LiteSpeed Cache:QUIC.cloud CDN 接続設定
- LiteSpeed Cache プラグインのセットアップ方法:最適な設定
参考リンク
- LiteSpeed Technologies:Server General > Swapping Directory
- LiteSpeed Documentation:WordPress > How do I secure phpMyAdmin?
- YUSUKESAKAI.COM:【LiteSpeed】Swapを設定してGCEのf1-microサーバでも安定運用を目指す
Leave a Reply
View Comments