広告

RockyLinux9.7で「WordPress環境構築「Vol-01」WindowsからのSSH接続でリモート管理

IT

ひと昔以上前のノートに、「ubuntu」入れてみたのが、2年前

Ubuntu24.04LTSでWorrPressを動作させる。インストール・SSH・ファイヤーウォール
「Ubuntu24.04LTS」に、「RHEL系、RockyLinux9」と同様の設定で、「WordPress」を動作させます。特に、「apache」の設定方法が違っているので戸惑いました。「RHEL」から移行の方には参考になると思います。

会社でもローカル環境にwordpressでのコミュニティサイトを検討しているので、wordpress環境構築作業に戸惑わないよう、コピペできるよう、まとめました。
せっかくなので、RockyLinux10で試してみましたが、筆者の10数年前のノートPCではインストーラさえ起動しませんでした
RockyLinux9.7であれば起動したので、クリーンインストールして再構築しました

広告

RockyLinux9.7 ダウンロード・インストール

ダウンロード・インストールの詳細はこちらを確認してください

RockyLinux9.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます
2023年、このサイトは、centOS7 で構築していますが、サポート終了が近づいてきました。centOS8のサポートも既に終了しています。今回、RockyLinux9.3で再構築した記録のインストール編です。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます

有線デバイスを認識しない

wifiを利用していたので、あまり意識しませんでしたが、wifiでのトラブルがあったので、有線LANを利用しようとしましたが、認識しない状況になりました。
AIに聞きながらどうにか解決したので、ここに覚書としてメモしておきます

インターフェースの確認:

通常、正常であればここに enp...eth0 といった名称のデバイスが表示されますが
リストに出てきませんでした。
AIに相談すると

リストにないということは、設定の問題ではなく「ドライバが読み込まれていない」か「ハードウェアが認識されていない」可能性が極めて高いです。
次の結果を教えてください

$ lspci -nn | grep -i net

08:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)

09:00.0 Ethernet controller [0200]: JMicron Technology Corp. JMC250 PCI Express Gigabit Ethernet Controller [197b:0250] (rev 05)

原因が特定できました。搭載されている有線LANコントローラー 「JMicron JMC250 [197b:0250]」 は、Rocky Linux 9 (RHEL 9) の標準カーネルではサポート(ドライバが同梱)されていません。

JMicron用ドライバのインストール

JMicron JMC250 [197b:0250]」 は、ELRepo リポジトリからドライバを提案してもらいましたが、結局、Rocky Linux 9 (EL9) 用には JMicron [197b:0250] のドライバが提供されていない ようです

「ELRepo-kernel」から最新カーネルを試す(成功率:中)

成功率は「中」ですが、新しいカーネルには、稀に古いドライバが復活していたり、汎用ドライバで動く可能性があるとの事なので、やってみます

再起動後に nmcli device を確認

DEVICE          TYPE      STATE            CONNECTION     
wlp8s0 wifi 接続済み aterm-e41133-g
lo loopback 接続済み (外部) lo
enp9s0f0 ethernet 切断済み --

認識されました

ethernetデバイスを接続する

接続は「nmcli device connect デバイス名」で接続できます

その他、ネットワーク設定は、下記を参考にしてください

RockyLinux9.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます
2023年、このサイトは、centOS7 で構築していますが、サポート終了が近づいてきました。centOS8のサポートも既に終了しています。今回、RockyLinux9.3で再構築した記録のインストール編です。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます

インストール直後の設定

ホームディレクトリの日本語表記を英語表記に変更

linux

特定のユーザーにsudo を可能にする

linux

visudo で、コメント行になっている、下記の「#」を外し有効にします
%wheel ALL=(ALL) NOPASSWD: ALL

linux

・
・
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

・
## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

その後、特定ユーザーを、「wheel」グループに追加すればそのユーザーはパスワードなしで「sudo」実行が可能になります

linux

SSH利用状況の確認

RockyLinux9では、ほとんどの選択でsshは自動起動している状態になっています。
動作は、「ssh」コマンドで確認できます

linux

usage: ssh [・・・・」のような
コマンドの使い方を示すヘルプメッセージが表示されれば動作しています
また、sshサービスはファイヤーウォールでの制限対象ですが、こちらも標準では許可されていますが、確認しておきます
詳細は、下記記事を参照してください

RockyLinux9.3で自宅サーバーを再構築V03・firewalldでアクセス制御
firewalldを少し詳しく調べていました。一例として、sshサービスを、LAN内(指定アドレス)からのみ接続可能な設定にしました。

ここでは、sshの許可状態だけ確認します

firewalldでのsshの確認

まず、「firewalld」の起動状態を確認してみます

linux

これで、active (running)になっていれば、起動しています


ファイヤーウォールのアクセスルール対象となるのはアクティブゾーンになります
まずは、アクティブゾーンを確認します

linux

public
interfaces: wlp8s0

アクティブゾーンは「public」のみと言うのがわかりました
今回は「ssh」の許可状態は「public」の設定で確認すればわかります

linux

public (active)
target: default
icmp-block-inversion: no
interfaces: wlp8s0
sources:
services: cockpit dhcpv6-client ssh
ports:

「services」に、「ssh」があるので、許可されています

SSHでリモート操作

上で確かめたように、RockyLinux9では、デフォルトでsshサービスもファイヤーウォールでの許可も利用可能な状態になっています。
「ssh」コマンドでアクセスしてみましょう。
windowslinux

ssh 「Linux側のユーザー@IPアドレス」 でパスワード入力で接続できます
「-p 22」は、ポート番号指定です。sshはデフォルトでは22番ポートです。
デフォルトであれば、省略できます。
「-p 22」はオプションですが、違うポート番号の場合は、その番号を指定します。
また以前ポート番号などを変更していたなどで接続できない事もあります
その場合には、標準ポート番号「22」を指定する事で接続できるようになります
windowsターミナルでも同じコマンドです
接続ができれば、windowsから、Linuxマシンを殆どリモートで設定できます 
ローカル内だけでの運用であれば、この設定でもいいかもしれませんが、後ほどポート番号変更と鍵認証方式に変更しようと思います

インストール後の設定2(SSHでも可)

まずは、パッケージのアップデート

sshアクセスができれば、windowsターミナルからでも操作できまます
インストール初期のアップデートで、依存関係の競合とかでエラーが表示される事があります
エラーメッセージでは、「--skip-broken」の付加のアドバイスが出ますが、ついでに「–allowerasing」オプションも追加したほうがいいようです

linux

SELinuxに強制させない設定

SELinuxはセキュリティをより強固にする機能で、RockyLinuxなどRedHat系では標準で有効になっていますが、思うように動作しないトラブルも多いようです。
ポリシーを読み込まず、無効的な状態にする方法もありますが、警告のみでポリシーを強制しない「Permissiveモード」に設定にしようと思います

linux

editor

・
・
#SELINUX=enforcing
SELINUX=permissive
・
・

linux

再起動後、確認

linux

「Permissive」が返ってくれば、設定されています

設定中に本体のGUIがクラッシュした

外部PCからsshで操作していて、たまに戻ると、画面がクラッシュしている場合があります
これはGUIのディスプレイマネージャー(gdm)がロックやスリープ状態になっているか、セッションがクラッシュしている場合に起こるようです

復旧方法:キーボードショートカットで復旧

私の状況は、マウスカーソルだけが動く状態だったので、その画面で:

  • Ctrl + Alt + F2(または F3〜F6)を押す → テキストコンソールに切り替え
  • ログイン後、以下を実行:

linux

Ctrl + Alt + F1(または F7)でGUI画面に戻る

恒久対策として:スリープ・省電力設定を無効化する

linux

このコマンドは、私の環境でSSH経由では、X11のDISPLAY環境変数がないとのエラーになりました
ssh経由の場合には、DISPLAY変数を指定して実行します

ssh

確認方法

linux

下記の結果がでれば、正常に反映されている

false
'nothing'

CUIモードをデフォルトにする

SSH経由でのリモートがほとんどになれば、CUIモードのほうがトラブルは少なそうなので、CUIモードに設定します

linux

これで、再起動後はGUIなしで起動します。
もし、GUIが必要になったら、

linux

再度GDMを停止させCUIに戻るには、サーバー機で操作できる場合には

Ctrl + Alt + F2

または、リモートも含めたコマンド操作の場合は

このコマンド操作で、画面が止まったように見える場合は、サーバー機で

上記の Ctrl + Alt + F2

SSHのセキュリティ向上対策

SSHを鍵認証方式で運用

「鍵認証方式」は、「秘密鍵」と「公開鍵」のペアの鍵を作成し、アクセスする側は「秘密鍵」が必要になり、アクセスされる(サーバー)側には、「公開鍵」を登録します
一般的には、アクセス側で鍵を生成し、「公開鍵」の登録をサーバーへお願いします
鍵生成は、windowsでもLinuxでも、「ssh-keygen」コマンドで生成できます
今回は、windowsターミナルで生成します

windowslinux

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\hogehoge/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again
Your identification has been saved in C:\Users\hogehoge/.ssh/id_ed25519
Your public key has been saved in C:\Users\hogehoge/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:o2ojnUu7UflR12VZq2yOcTY/Ky-VzibafGh/PJbPe6C hogehoge@hoge-Pc
The key's randomart image is:
+--[ED25519 256]--+
| .+.o|
| Oo|
| o + o . . |
| . Z . . o..|
| . o . *AC|
+----[SHA256]-----+

秘密鍵のアクセス権限を厳しく設定

下記のアクセス権の設定は、windowsターミナルでの操作コマンドです。
Linuxでの操作は、こららを参考にしてください

継承の無効化と権限のクリア

windows

ユーザーにのみ読み取り権限を付与

windows

「自分自身」以外のユーザー権限を削除

windows

エクスプローラの「プロパティ」⇒「セキュリティ」でも確認できます

公開鍵をサーバー側へコピー

作成した、「id_ed25519.pub」をサーバー側ユーザーの「.ssh」ディレクトリへコピー
・windowsの自分自身のホームの「.ssh」に移動
・scp コマンドへ、サーバー側ユーザーの「.ssh」へコピー

windows

サーバー側へsshでログインし操作

windows側から、sshログインし、「.ssh」ディレクトリへ移動し確認

windows

ログイン後、コピーされているか、確認

sshlinux

公開鍵を保存ファイル(authorized_keys)へ登録

コピーされた公開鍵を、保存用のファイルへ登録し、そのファイルのアクセス権は厳しくします
持ってきて、公開鍵は削除しておきます

sshlinux

再度、鍵を使って、SSHログイン

ssh に「i」オプションで鍵指定

windows

ログイン時、鍵生成時登録したパスフレーズを入力し、ログイン

鍵認証以外ではログイン拒否

鍵を使ってのログインが確認できたら、鍵以外でのログインは拒否する設定をしておきます
設定は、「/etc/ssh/sshd_config」ファイルの”PasswordAuthentication”を”no”に設定します
まずは、ファイルをバックアップして、編集します

ssh linux

editor



#PasswordAuthentication yes
PasswordAuthentication no


ついでにリモートからのROOTログインも拒否設定します

「/etc/ssh/sshd_config」ファイルの”PermitRootLogin”も”no”に設定

editor



#PermitRootLogin prohibit-password
PermitRootLogin no

さらに、ポート番号を変更

「ssh」のポートは「22番」が標準なので、自動スキャンなどのアタックが増えるので、違う番号に変更しておきます。
ポート番号も「/etc/ssh/sshd_config」ファイルの”Port”で設定します
ポート番号は登録済み番号などもあるので、49152–65535の範囲に設定します

editor



#Port 22
Port 55522

「22番」は「ssh」サービスのデフォルトなので、firewalldの設定でsshは「22番」になります
firewalld設定は、ポート番号を直接設定する事もできますが、やはりsshのポート番号を変更する方法がfirewalldは再起動だけで、設定は不要なのでスマートだと思います
デフォルト設定は、「 /usr/lib/firewalld/services/ ssh.xml 」に保存されているので、
そのファイルを「 /etc/firewalld/services /」にコピーして編集します。

ssh linux

editor



<port protocol="tcp" port="22"/>

<port protocol="tcp" port="55522"/>

sshとfirewall サービスを再起動して、アクセスにはポート番号を明示します

ssh linux

ここまでで、RockyLinux9.7のインストールと、やっておきたい初期設定を解説しました
「ssh」の設定も完了しているので、windowsターミナルからでも実行できます


WordPress環境構築まとめ

タイトルとURLをコピーしました