デプロイしたOpenLiteSpeed × WordPress 環境を使いやすくするために、LiteSpeed Web Server(LSWS) の設定を少し追加と設定を行います。
具体的には「SWAP 領域の確保」「phpMyAdmin へのアクセス禁止」「ドメインへのリダイレクト設定」を行います。
SWAP 作成/削除
SWAP メモリの作成
※ 高性能のVM インスタンス タイプを利用している場合は、ここはスキップしていただいてOKです。
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