このブログが動いている自宅サーバーをCentOS7で立ち上げたのが、約4年半前。
CentOS7のサポートも、2024年6月までとなります。
2020年に、CentOS8でミラーを立ち上げてみましたが、CentOS8はすでにサポートは終了してしまいました。
さらに、現サーバーのハードウェアもかなりガタがきています。
そろそろ限界です、新しく再構築する必要があります。
CentOS9はリリースされないみたいなので、代替のOSを見つけなくてはいけません。
やはり、Redhat系のほうが慣れもあるので、検討した結果、Rocky Linuxで再構築する事にしました。
ただ、Redhat系では、8と9で若干の違いがあるようです。
https://www.tohoho-web.com/ex/rhel9.html
特に、今までは、「SELinux」を無効にしていますが、その方法も変わったようです。
このページの最後付近で説明しています。
RockyLinux9.3 インストール
CentOS8は、すでにミラーサーバとして動作していますので、RockyLinux8のほうが簡単ですが、RockyLinuxのサイトをみると2029年5月31日でサポート終了とあります。
変更点はいろいろありそうですが、せっかくなので、RocyLinux9に挑戦してみようと思います。
ダウンロード
RockLinuxのダウンロードサイトからダウンローできます。
Windows系マシンであれば、ほとんど「x86_64」でいいと思います。
「Boot」は別のソースからインストールする場合のようなので、通常は「minimal」か「DVD」の選択になります。
「minimal」は必要最小限のパッケージで、インストール後自分で追加インストールしたい場合に選択します。
「DVD」は、ほぼ必要なソフトが入っているパッケージで、一番手間いらずです。
GUI使用のサーバー環境を構築したい場合には、こちらになります。
ただし、「minimal」は1.5Gb程度なので、標準のDVD一枚に書き込めますが、「DVD」は9Gb近いサイズなので、USBに書き込む事になると思います。
ISO(イメージ)ファイルをメディアに書き込む
DVDに書き込む場合には、Windows10であれば、エクスプローラでISOファイルを右クリックし「ディスクイメージの書き込み」で作成する事ができます。
USBに書き込みたい場合には、別途書き込みソフトが必要ですが、私は「Rufus」を使っています。
使い方は簡単です、ダウンロードした「exe」ファイルを起動すると、「デバイスの変更許可」を聞いてくるので、許可して、書き込みたい「iso」ファイルを選択すると、デフォルトでオプションが設定されるので「スタート」を押すだけです。
インストール
インストールの詳細は、ネット上に沢山情報があるので、そちらを参照してください。
ここでは、筆者が気が付いたポイントを紹介します。
有線接続とISOイメージメディアはPC起動前に挿入しておく
ネットワーク接続設定は、インストール後でもできますが、インストール時に行ったほうが楽です。
特に、有線接続の場合では、ケーブルを接続しておくと、インストーラが見つけてくれます。
使用機種によって方法は違いますが、上記で作成した、ISOイメージからブートする必要があるので、ブートデバイスはISOイメージ元(USB、DVDなど)を最優先にします。
その場合、電源ON前に接続しておいた方が、パソコンが認識しやすくなります。
インストール概要
マークが付いている項目は、設定が完了していない項目なので、必ず設定が必要です。
また、自動的に設定が完了している項目もありますが、自分の希望の設定かは確認しておきます。
とくに、使用言語や地域やタイムゾーンは自分の環境に合わせます。
ソフトウェア選択
自分の希望する環境を設定します。
左側「ベース環境」で基本構成を、右側でその環境用のソフトウェアを選択します。
「最小限のインストール」でインストールし、後で必要なソフトを手動インストールする事も可能ですが、筆者はサーバー用途なので「サーバー」環境にし、さらに立ち上げ時にはGUIのほうが便利な場合もあるので「サーバー(GUI使用)」環境にしました。
その他のソフトウェアに関しては、「開発ツール」と「システムツール」にチェックしました。
インストール先
インストールするデバイスの選択です。
一つしかない場合には、すでにチェックが入っているようですが、USBイメージからインストールする場合など、ハードディスク側を選択する事になります。
デバイス名や容量で判断し、インストールするデバイスをクリックするとチェックが入ります
ストレージの設定として「自動設定」と「カスタム」がありますが、自分でパーティション設定したい場合には「カスタム」で設定してください。
「完了」で次へ進んで、領域が使用されている場合、「インストレーション」ダイアログ画面で「領域の再利用」をクリック
再利用するファイルシステムを選択して「削除」もしくは
ディスク全て使用する場合には「すべて削除」して「領域の再利用」
これで、インストール先のマークが消えれば、このデバイスにイントールされます。
ネットワークとホスト名
左下の「ホスト名」エディットボックスで「ホスト名」を設定できます。
任意でいいと思いますし、インストール後も変更可能です。
有線接続の場合には、「Ethernet」が有効になっています。
IPアドレスはデフォルトでは、自動(DHCP)になっていますが、サーバーとして設定する場合には固定アドレスにしたいので、右下の「設定」で変更します。
表示されたダイアログの「IPv4設定」タブで「メソッド」を手動に切り替えアドレスを設定します。
無線の場合には、「ネットワーク選択」で接続可能なwifiを設定できます。
また同様に「設定」で固定アドレスに設定します。
ユーザーの設定
「rootパスワード」と「ユーザーの作成」がになっていると思います。
このシステムの管理者であるユーザー名「root」のパスワードと、通常操作を行う一般ユーザーを登録します。
インストールの開始
すべてのが消えると、「イントール開始」ボタンが有効になるので、インストールを開始できます。
再起動
インストールが終了し、再起動でめでたくRockyLinux が立ち上がると、ログイン画面になります。
作成したユーザー名にパスワードを入れると、GNOMEデスクトップが立ち上げりますが、新しいデスクトップは慣れの問題か、私は使いづらかったです。
実は、以前のデスクトップに変更する事ができます。
ログイン画面のパスワードを入力する画面の、右下のギアアイコンをクリックすると、スタンダードの下に「GNOMEクラシック」が選択できます。
「GNUME クラシック」にすると、以前のデスクトップでログインできます。
ホームディレクトリの日本語表記を英語表記に変更
インストールは終了しました。
ただ、日本語環境選択でインストールすると、ホームディレクトリのディレクトリが日本語になってます。
ディレクトリ名が日本語になっていると、コマンド指令でトラブルが起きる事もあります。
ここで、日本語を英語表記に変換するコマンドを紹介しますが、変換時点でディレクトリ内が空でないとその日本語ディレクトリは残ってしまいます。
できればインストール直後のまっさらな状態でやっておきたいですね。
デスクトップの「アプリケーション」「端末」でターミナルが開きます。
また、通常のサーバー構築設定は「ssh」のリモートで行うのが一般的だと思いますが、このコマンドは、GNOMEのターミナルで行う必要があります。
$ LANG=C xdg-user-dirs-gtk-update
実は、リモートからでもコマンドは動作しますが、確認のダイアログはGUI上での確認が必要です。
ちなみに、日本語へ戻すには
$ xdg-user-dirs-gtk-update
「Don’t ask me this again」にチェックしてあると、変更できないようです。 変更できない場合には、「--foece
」オプションを付加します
$ xdg-user-dirs-gtk-update --foece
特定のユーザーにsudo を可能にする
「visudo」でエディタモードに入ります。
「%wheel ・・・」行の先頭のコメント文字”#”を削除し有効にします
特に、「%wheel ALL=(ALL) NOPASSWD: ALL」
を有効にすると、「wheelグループ」ユーザーはパスワードなしで
sudo を実行できるようになります。
# visudo
・
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
・
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
特定ユーザーを。「wheel」グループに追加します。
# usermod -aG wheel hogehoge
これで、ユーザー「hogehoge」は、パスワードなしで「sudo」制限コマンドを実行できます。
パッケージアップデート
ついでに、システムを最新に更新しておきましょう。
$ su
パスワード:
# dnf -y update
SELinux
RHEL9から、/etc/selinux/config による SELinux の無効化が廃止されたようです。
現サーバーはCennt7で立ち上げた時、トラブった事があったので、無効にしています。
セキュリティを考えると、やはり有効にしたほうがいいと思いますし、SELinux のパフォーマンスが向上したとの情報もあるので、少し運用して検討してみようと思います。
無効にする方法
こちらの方法で無効にできそうです。
まずは、現状の状態を調べると、有効になっています。
$ rpm -qa grubby
grubby-8.40-63.el9.x86_64
$ getenforce
Enforcing
無効にするには、下記で無効にできます。
ただ、RedHatでは、次に説明する「Permissiveモード」を推奨しています。
# grubby --update-kernel ALL --args selinux=0
# reboot
Permissiveモード
このモードは、SELinux有効で、ログは出力するが、アクセス制限は行わないモード、
「Permissiveモード」と言うのがあるようです。
RedHat でも、無効するなら、Permissiveモードを使う事を強く推奨していますので
まずは、こちらに設定して、みようと思います。
$ su
パスワード:
# vi /etc/selinux/config
#
#
# SELINUX=enforcing
SELINUX=permissive
#
#
# reboot
# getenforce
Permissive
ノートを閉じてもスリープ状態にさせない
ノートPCをサーバーにした場合、インストールが終了すると、ほぼメンテナンスは「ssh」経由でWindowsPCからのリモートメンテになってきます。
そうなると、ノートはほとんど閉じた状態になります。
スリープ状態になると、他のPCから「ssh」接続する場合、アクセスできなくなっています。
通常は、蓋を開くとスリープは解除されますが、それも面倒です。
Windowsであれば、電源管理で設定できますが、Linuxの場合どうすればいいのでしょうか?
調べたところ、見つかりました。
・HandleLidSwitch: バッテリー電源で動作しているとき
・HandleLidSwitchExternalPower: 電源コンセントに接続されているとき
・HandleLidSwitchDocked: ドッキング ステーションに接続されているとき
$ su
パスワード:
# vi /etc/systemd/logind.conf
[Login]
....
....
# HandleLidSwitch=suspend
HandleLidSwitch=ignore
#yHandleLidSwitchExternalPower=suspend
yHandleLidSwitchExternalPower=ignore
....
....
# systemctl restart systemd-logind.service
ネットワークの設定
インストール時に、ホスト名やIPアドレスの設定は行いましたが、後で変更したい場合には
「nmcli」コマンドで変更できます。
HOST名変更
ホスト名の設定には nmcliコマンドに、「general」「hostname」オプションに続けて名前を続けて指指定します。
# nmcli general hostname rocky9-server
IPアドレスの変更
まずデバイス名を確認し、そのデバイス名に対して設定します
・デバイス名確認
・手動でアドレス設定
・IPアドレスとサブネットマスク設定例:「192.168.0.210」サブネット「24ビット」
・DNSサーバーアドレス設定例:「192.168.0.1」
・ゲートウェイアドレス設定例:「192.168.0.1」
・自動接続有効設定
・設定更新
$ nmcli device status
DEVICE TYPE STATE CONNECTION
eno1 ethernet 接続済み eno1
lo loopback 接続済み (外部) lo
wlo1 wifi 切断済み --
$ sudo nmcli connection mod eno1 ipv4.method manual
$ sudo nmcli connection mod eno1 ipv4.addresses "192.168.0.210/24"
$ sudo nmcli connection mod eno1 ipv4.dns "192.168.0.1"
$ sudo nmcli connection mod eno1 ipv4.gateway "192.168.0.1"
$ sudo nmcli connection mod eno1 connection.autoconnect yes
$ sudo nmcli connection up eno1
ssh接続の場合には、「connection up」で接続が切断されるので、再度新しいアドレスで接続します。
変更の確認は、「ip a」や「ifconfig」や「nmcli device show」などで確認できます。
$ nmcli device show
GENERAL.DEVICE: eno1
GENERAL.TYPE: ethernet
・
・
GENERAL.CONNECTION: eno1
・
IP4.ADDRESS[1]: 192.168.0.210/24
IP4.GATEWAY: 192.168.0.1
・
IP4.DNS[1]: 192.168.0.1
・
・
サーバーは正確な時刻に設定する
chronydサービスの設定
サーバーは正確な時刻で運用されている必要があります。
通常はインストール時に設定されていますが、動作とNTPサーバーの設定を確認します。
RHEL9では、chronydサービスを使用します。
まずは、動作確認を行います。
$ chronyc tracking
・
・
Leap status : Normal
「Leap status」が「Nomal」なら、時刻同期されています。
同期させる「NTPサーバー」を変更するには、/etc/chrony.confを編集します
$ sudo vi /etc/chrony.conf
・
・
#pool 2.rocky.pool.ntp.org iburst
server ntp.nict.jp iburst
pool ntp.jst.mfeed.ad.jp iburst
・
筆者は、「ntp.nict.jp」と「ntp.jst.mfeed.ad.jp」に設定しました。
$ sudo systemctl restart chronyd
$ sudo systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; preset: enabled)
Active: active (running) since Mon 2024-01-03 21:54:36 JST; 8s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 5393 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 5396 (chronyd)
Tasks: 1 (limit: 48357)
Memory: 952.0K
CPU: 39ms
CGroup: /system.slice/chronyd.service
└─5396 /usr/sbin/chronyd -F 2
インストール終了
インストールは終了しました。
さらに、
・ホームディレクトリの日本語を英語に変換する方法
・パッケージのアップデート
・SELinux の設定
・ノートパソコンを閉じた時の処理
・ネットワーク設定
・時刻同期設定
などもやってみました。
今後、WordPress サイトの公開を目標にサーバー構築していきますが、通常の設定は、本機の端末よりも通常使用のマシン(筆者の環境は、Windows10)から、「ssh」リモート接続で行うのが一般的だと思います
次回からは、「ssh」のリモート環境を整備し、リモートで作業したいと思います。
そういう意味では、GUI環境は必要なかったかもしれませんが、ネットワーク設定や、USBやDVDなど他のメディアを利用したい場合など、CUIでもできなくはないですが、楽になると思います。
コメント