OpenLiteSpeed:クイックスタート
WordPress をインストールしていない場合はOpenLiteSpeed クイックスタート画面が表示される。

【LSWS 初期設定】SWAP 作成&phpMyAdminのアクセス制限 など

WordPress 運用がしやすいように「SWAP 領域の確保」「phpMyAdmin へのアクセス禁止」を行います。f1-micro ではメモリ不足になるため、SWAP 領域で臓器します。また、セキュリティ対策として「phpMyAdmin へのアクセス禁止」も行います。

WordPress 運用がしやすいように「SWAP 領域の確保」「phpMyAdmin へのアクセス禁止」を行います。f1-micro ではメモリ不足になるため、SWAP 領域で臓器します。また、セキュリティ対策として「phpMyAdmin へのアクセス禁止」も行います。

デプロイした 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
ターミナル:メモリー状況を確認
メモリーが600M、SWAP が0 であることが確認できます。

次のコマンドを実行し、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
ターミナル:SWAP 領域の作成

この状態では 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
ターミナル:fstab :SWAP を自動マウント

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

swapon --show
ターミナル:SWAP 状況を確認
SWAP ファイルが表示されます。

以上で SWAP 領域の設定となります。

スワップ 削除

設定した SWAP ファイルを削除します。
次のコマンドを実行し、稼働した SWAP を停止します。

sudo swapoff -v /tmp/lshttpd/swapfile

次のコマンドを実行し、fstab ファイルを開いて記入した「/tmp/lshttpd/swapfile none swap sw 0 0」を削除します。

sudo swapoff -v /tmp/lshttpd/swapfile
ターミナル:fstab :SWAP を自動マウント

次のコマンドを実行し、SAWP ファイルを削除します。

sudo rm /tmp/lshttpd/swapfile

以上で SWAP ファイルの削除になります。


phpMyAdmin を非表示

OpenLiteSpeed のデフォルト設定では「http://IP アドレス/phpmyadmin」で phpMyAdmin へのアクセスができる状態になっています。
phpMyAdminを保護 するために LiteSpeed のコントロールパネルで phpMyAdmin をアクセス禁止(非表示)に変更します。

phpMyAdmin ログイン画面

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

sudo ufw allow 7080
ターミナル:ポート 7080 への接続許可

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

cat /home/ubuntu/.litespeed_password
ターミナル:OpenLiteSpeed の管理者 ID/PWの取得

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

OpenLiteSpeed のWeb管理画面

操作しやすいように上部バーの右側の English を日本語に変更します。

バーチャルホストを選択し、「wordpress」をクリックします。

OpenLiteSpeed コントロールパネル:バーチャルホスト

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

OpenLiteSpeed コントロールパネル:バーチャルホスト:コンテキスト

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

OpenLiteSpeed コントロールパネル:バーチャルホスト:コンテキストの設定

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

OpenLiteSpeed コントロールパネル:緩やかな再起動

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

OpenLiteSpeed:403 Forbidden

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

sudo ufw delete allow 7080
ターミナル:ポート 7080 への接続許可を削除

以上で phpMyAdmin をアクセス禁止(非表示)に変更が完了となります。

補足:phpMyAdmin へのアクセス制限

上記では phpMyAdmin 自体へのアクセス不可能にする設定でしたが、許可した IP アドレスのみをアクセス可能でそれ以外はアクセスができないようにする設定もあります。

同じようにLiteSpeed のコントロールパネル > バーチャルホスト > wordpress > コンテキスト > phpmyadmin に移動し、コンテキスト リストを編集します。

「アクセスが許可されました」にアクセスを許可するIP アドレス を設定し、「アクセスが拒否されました 」に* で設定します。
サブネットを利用する場合は IP アドレス/サブネット で設定できます。

OpenLiteSpeed のWeb管理画面:コンテキスト リストの編集:アクセス制限
アクセスが拒否されました の「*」は(許可されたアクセスを除き)すべてのアクセスを禁止します。

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


リダイレクト設定

IP アドレスをドメインにリダイレクト

IP アドレス には何も設定されていないので IP アドレスで検索するとそのままIP アドレスが表示されます。
「IP アドレス」「ドメイン」が同じサイトでも別サイトとしてインデックスされるので IP アドレスをドメインへのリダイレクトするように設定します。

LiteSpeed の管理画面にアクセスし、バーチャル ホストから「wordpress」をクリックします。

OpenLiteSpeed コントロールパネル:バーチャルホスト

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

OpenLiteSpeed コントロールパネル:バーチャルホスト: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のピリオドと認識させます。

OpenLiteSpeed コントロールパネル:バーチャルホスト:Rewrite ルールの編集
「35.240.201.78」を「http://vietnam.4watcher365.dev/」へとリダイレクト。

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

OpenLiteSpeed コントロールパネル:バーチャルホスト:IP アドレスをドメインへのリダイレクト設定

以上で 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
ターミナル:ポート 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 の記事

参考リンク