GMO Conohaで動かしているサーバーを整理しています。
今まではブログサーバー、個人用Gitリポジトリ兼アプリ公開サーバーの2台のサーバーを運用していましたが、削れる費用は削りたいと言うことでサーバーを1台解約することにしました。
そして1core+512MBで動いていたブログを、2core+1GBのサーバーに移設するので、閲覧や編集もやりやすくなる見込みです。
Alma Linux9の初期設定
サーバーをレンタルしたらまずやりたいこと、それは初期設定です。以下の対応を行っていきます。
・一般ユーザーの作成
・rootユーザーの直接ログインの禁止
・一般ユーザーのパスワードでのログインを禁止
・SSHポートの変更
・ファイアウォール設定
実行したコマンドについて
・#で始まるもの:rootユーザー
・$で始まるもの:一般ユーザー
になります。
一般ユーザーを作る
後のrootユーザーのリモートログイン禁止の作業を行う前に、一般ユーザーを作っておきます。
(rootユーザーのリモートログイン禁止を行ってしまうと、作業に失敗した場合にサーバーに接続できなくなる可能性があるため)
参考にしたサイトはこちら
https://www.server-world.info/query?os=AlmaLinux_9&p=initial_conf&f=1
# useradd user
# passwd user
Changing password for user user.
New password: ←パスワードを入力、コピペも可、画面に入力内容は表示されない
Retype new password: ←同じパスワードを入力、コピペも可、画面に入力内容は表示されない
passwd: all authentication tokens updated successfully.
設定後にユーザー名とパスワードで接続できることを確認します。
rootユーザーの直接ログインの禁止
参考にしたサイトはこちら
https://qiita.com/shimon_haga/items/f6a95fa3f50e3a946d36
# vi /etc/ssh/sshd_config.d/01-permitrootlogin.conf
PermitRootLogin no ← yesからnoに変更してファイルを保存
# systemctl restart sshd
上記の設定でリモートからrootログインが行えなくなっていることを確認できました。
一般ユーザーのパスワードでのログインを禁止
一般ユーザーのパスワードでのログインを禁止し、鍵認証によるログインに限定します。
参考にしたサイトはこちら
https://yasatech.hatenablog.com/entry/2023/01/22/202258
$ ssh-keygen -t ed25519
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): ←パスフレーズを入力
Enter same passphrase again: ←パスフレーズを再度入力
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:1234567890monodon@xxx-xxx-xxx-xxx
The key's randomart image is:
+---[RSA 3072]----+
+----[SHA256]-----+
上記のような画面になると思います。実行するとユーザーのホームディレクトリ配下に.sshフォルダが作成されます。
更に操作を行います。
$ cd .ssh ←(作成された.sshの中に移動)
$ mv id_ed25519.pub authorized_keys
$ chmod 600 authorized_keys
パスワードでのログインを禁止するため、以下の変更を行います。
参考にしたサイトはこちら
https://www.server-world.info/query?os=AlmaLinux_9&p=ssh&f=4
# vi /etc/ssh/sshd_config
PasswordAuthentication no ← noに変更
KbdInteractiveAuthentication no ← noに変更
# systemctl restart sshd
ssh接続クライアント(MacでTermiusを利用しています)に、作成した秘密鍵を設定します。
ssh-keygenコマンドを実行したときに作成された「id_ed25519」の中身をPrivate key*のエリアに貼り付けます。
これで接続できれば鍵を利用した接続設定は終了です。
SSHポートの変更
ssh接続に利用する22番ポートを変更し、セキュリティを高めます。
指示があるまでsshdサービスを再起動しないでください。設定に失敗すると、ssh接続ができなくなります。
万が一接続できなくなったときのために、接続は複数開いておくことをおすすめします。
以下のサイトを参考にしました。
https://tech.yuzuyu.mobi/archives/157
# vi /etc/ssh/sshd_config
Port 22 ← ポート番号を変更
次にファイアウォールで変更したポート番号の通信を許可するように変更します。
# firewall-cmd --permanent --zone=public --add-port=[設定したポート]/tcp
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports: [設定したポート]/tcp ← 設定したポートが表示されていることを確認
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
ここまで行ったら、sshdサービスを再起動します。
# systemctl restart sshd
設定し直したポートでssh接続が出来ることを確認し、設定は完了です。
ファイアウォールの変更
次にファイアウォールで変更したポート番号の通信を許可するように変更します。
WordPressを動作させるため、http, httpsをファイアウォールから許可します。
以下のサイトを参考にしました。
https://note.com/_chibisuke/n/nac63cbc1eaf9
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --reload
WordPress引越し後のトラブル
ページや管理画面を開こうとすると重大なエラーが発生する
WordPressでよくある、画面が真っ白になってしまうエラーが出たので対処しました。
試したのは以下の解決方法です。
https://ja.wordpress.org/support/article/faq-troubleshooting/
こちらのページのすべてのプラグインを無効化(pluginsディレクトリの名前を一時的に変更)を試しました。
管理画面に移動できるようになったので、その後ディレクトリ名を元に戻し、必要なプラグインを再度有効化しました。
画像がアップロードできない
こちらはscpコマンド実行の影響でファイルパーミッションが変わっていたことが原因でした。
(scpしたときに-pオプションは付けたのだけど、だめだった)
引越し元のWordpressのグループとユーザーを確認すると、33:tapeという設定になっていたので引っ越しあとのファイル、ディレクトリについても合わせました。
wordpress関連ファイル一式と、mysqlのデータディレクトリ配下はパーミッションが異なるので、ファイルコピーするときに注意が必要(コピー元と合わせる必要があり メモメモ)
あとは「Invisible reCaptcha」を有効にすると管理画面に入れなくなってしまった(重大なエラーが発生)したため、一旦削除。
再インストールしても発生するので、結構根が深そう・・・ 後ほど再調査
利用していたプラグイン「indivisual recaptcha」を有効化するとダッシュボードを開くときに重大なエラーが発生してしまうので使用を停止。
wordpress_bike-wordpress_bike-1 | [Sat Aug 12 22:36:34.926098 2023] [php:error] [pid 572] [client xxx.xxx.xxx.xxx:0] PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /var/www/html/bike/wp-content/plugins/invisible-recaptcha/includes/utils/MchIPUtils.php on line 197, referer: https://sheltie-garage.xyz/bike/login/?loggedout=true&wp_lang=ja
長らくメンテも行われていないようなので、Advanced Google Recaptchaに変更
以上
ということで、久しぶりにサーバーを触ったら結構ハマったお話でした。
このあと少し様子を見てみて、動作問題なければ旧サーバーを解約します。これで月間500円の削減。
ブログに付いてもサーバースペックが上がったので表示速度も上がっていると思います。
管理画面などの動きを見ても、以前より軽くなっているのが実感出来ました。
SSD容量も30G → 100Gに増えたので、しばらくは容量を気にせずブログを書けそうです。