Fullmoon System

Rocky Linuxインストールガイド:9.8のUEFI起動と初期セキュリティ設定

EdwardMoon

このガイドでは、Rocky Linux 9.8のISOを検証してUEFIで起動し、ストレージ、ネットワーク、管理者アカウント、セキュリティの基本設定を行います。初めてでも進められるように、事前のバックアップから最初の更新とサービス確認までを一連の手順にまとめました。

本番サーバーでは、最新版という理由だけで導入せず、アプリケーションとの対応関係を確認してください。Rocky Linux公式のバージョン一覧で現在のリリースとサポート終了日を確認し、仮想マシンで同じインストール手順を先に再現すると安全です。

Rocky Linuxのインストール手順:ISO検証、UEFI起動、ストレージとネットワーク、導入後のセキュリティ確認
公式ISOの確認からSELinux、ファイアウォール、時刻同期の検証までの9.8導入手順

インストール前の準備

準備項目推奨構成注意点
インストールメディア公式Rocky Linux 9.8 ISOチェックサムと署名を確認
ファームウェアUEFI、可能ならSecure BootLegacyとUEFIを混在させない
ディスクバックアップを確認して対象を特定別のディスクを初期化しない
ネットワークIP、DNS、ゲートウェイ、NTPを準備遠隔サーバーではコンソールを確保
アカウント個人管理者アカウントとsudorootの共有ログインを避ける

手順1:ISOとチェックサムを取得する

curl --fail --location --remote-name   https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.8-x86_64-minimal.iso
curl --fail --location --remote-name   https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM

sha256sum Rocky-9.8-x86_64-minimal.iso
grep 'Rocky-9.8-x86_64-minimal.iso' CHECKSUM

インストールメディアは公式ミラーから取得します。ブラウザーのダウンロード完了表示だけで判断せず、SHA-256値を比較してください。可能な環境では、Rocky Linux公式の署名鍵でCHECKSUMの署名も検証します。

Rockyの署名鍵を確認する

curl --fail --location --remote-name   https://download.rockylinux.org/pub/rocky/RPM-GPG-KEY-Rocky-9
gpg --show-keys --with-fingerprint RPM-GPG-KEY-Rocky-9

# 公式サイトに掲載されたフィンガープリントを目視で照合してからインポート
gpg --import RPM-GPG-KEY-Rocky-9

手順2:起動用USBを作成する

WindowsではFedora Media WriterやRufusなどの実績あるツールを使用します。Linuxのddは出力先ディスクを間違えると直ちにデータを消してしまうため、モデル、容量、マウント状態を確認してから実行してください。

lsblk -o NAME,PATH,SIZE,MODEL,TRAN,FSTYPE,MOUNTPOINTS
sudo umount /dev/sdX? 2>/dev/null || true

# /dev/sdXが実際のUSB全体のディスクであることを確認してから実行
sudo dd if=Rocky-9.8-x86_64-minimal.iso of=/dev/sdX   bs=4M status=progress conv=fsync
sync
sudo eject /dev/sdX

/dev/sdXは例です。パーティションではなくUSB全体のディスクを正確に特定できなければ、ddを実行しないでください。既存データのバックアップも先に確認します。

手順3:UEFIで起動する

  1. サーバーの遠隔コンソールまたはローカル画面を確保する。
  2. ファームウェアでUEFI起動モードを選ぶ。
  3. 可能ならSecure Bootを有効なまま使用する。
  4. USBのUEFI項目を選ぶ。
  5. Test this media & Installを選択し、先にメディアを検査する。

Legacy BIOSでインストールしたディスクを後からUEFIに切り替えると、起動パーティションとブートローダーの構成が合わなくなる場合があります。インストール時から、運用標準のファームウェアモードを統一してください。

手順4:言語、時刻、キーボードを設定する

管理チームがログや自動化で使う言語を考慮してシステム言語を選びます。この構成ではタイムゾーンをAsia/Seoul、ハードウェアクロックをUTCとし、インストール後にchronyの同期を確認します。

手順5:対象ディスクとLVMを設定する

初めての場合は自動パーティション構成とLVMから始められます。ただし、/varにログ、コンテナ、データが集中するサーバーでは、容量の増加と障害の分離を考慮し、独立した論理ボリュームを設計してください。UEFIシステムにはEFI System Partitionが必要です。

  • EFI System Partition:起動ファイルを保存する。
  • /boot:カーネルとinitramfsを置き、空き容量を確保する。
  • LVMルート:運用中に拡張できる。
  • /varまたはデータボリューム:サービスの特性に応じて分離する。
  • Swap:メモリーとダンプの方針に合わせて決める。
  • LUKS暗号化:物理ディスクの盗難リスクがある場合、鍵の復旧手順とともに使用する。

手順6:ネットワークとホスト名を設定する

固定IPが必要な場合は、アドレス、プレフィックス、ゲートウェイ、DNSを入力して有効化します。ホスト名はDNSの正引き・逆引きと組織の命名規則に合わせてください。遠隔サーバーでは、設定ミスに備えてコンソールを維持します。

ip -br address
ip route
getent hosts repo.rockylinux.org
hostnamectl status
nmcli connection show --active

手順7:管理者アカウントと認証を設定する

個人管理者アカウントを作成し、wheelグループに所属させます。rootはロックするか、強固な専用パスワードで保護してください。SSH公開鍵ログインを確認してからパスワードログインの制限を適用します。

id opsadmin
sudo -l -U opsadmin
getent group wheel

# 別のセッションで公開鍵ログインが成功することを先に確認
ssh -o PreferredAuthentications=publickey opsadmin@server.example.com
sudo sshd -t

手順8:ソフトウェアを選ぶ

サーバーはMinimal Installを基本とし、必要なパッケージだけを追加します。GUIが必要な管理用ワークステーションとサーバーを区別し、開発ツール一式やデバッグパッケージは用途がある場合にのみ導入してください。

手順9:インストール後に最初の更新を行う

cat /etc/rocky-release
uname -r
sudo dnf repolist --enabled
sudo dnf upgrade --refresh -y
sudo dnf check
sudo reboot

カーネルや主要ライブラリを更新したら再起動します。再起動後にバージョン、稼働中のカーネル、失敗したunitを再確認し、更新が実際に反映されたか判断してください。

手順10:SELinux、ファイアウォール、時刻同期を確認する

getenforce
sudo sestatus
sudo firewall-cmd --state
sudo firewall-cmd --list-all
systemctl is-active chronyd
chronyc tracking
timedatectl status

問題の解決を目的にSELinuxやファイアウォール全体を無効化しないでください。拒否ログと必要なポートを確認し、最小範囲のポリシーやサービスルールで解決します。

必要なサービスだけをファイアウォールに追加する

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

手順11:SSHの基本セキュリティを設定する

sudo install -d -m 0755 /etc/ssh/sshd_config.d
sudo tee /etc/ssh/sshd_config.d/20-hardening.conf >/dev/null <<'CONF'
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
MaxAuthTries 4
CONF

sudo sshd -t
sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication|kbdinteractiveauthentication) '
sudo systemctl reload sshd

パスワードログインを無効にする前に、別の端末で公開鍵ログインが成功することを確認し、コンソールへのアクセスを維持します。組織で中央認証やMFAを使用している場合は、その方針を優先してください。

手順12:状態とログを検証する

sudo systemctl --failed --no-pager
sudo journalctl -p err -b --no-pager
sudo ss -lntup
df -hT
df -i
findmnt
sudo dnf check
sudo rpm -Va | sudo tee /root/rpm-verify-baseline.txt >/dev/null

インストール記録と自動化資料を保管する

Anacondaが生成するKickstartの記録には、アカウントのハッシュやストレージ情報が含まれる場合があります。管理者だけが読める状態で保管し、秘密情報を除いたテンプレートをバージョン管理して、次回のインストールの基準にします。

sudo install -d -m 0700 /root/install-baseline
sudo cp -a /root/anaconda-ks.cfg /root/install-baseline/
sudo chmod 0600 /root/install-baseline/anaconda-ks.cfg
sudo rpm -qa --qf '%{NAME}|%{VERSION}-%{RELEASE}|%{ARCH}\n'   | sort | sudo tee /root/install-baseline/packages.txt >/dev/null
sudo find /root/install-baseline -maxdepth 1 -type f -exec sha256sum {} \;

公式資料と関連記事

まとめ

完了の基準は、公式ISOとチェックサムの確認、UEFI起動、正しいディスクの選択、最小限のパッケージ、個人管理者アカウント、導入後のセキュリティ検証です。最新パッケージへ更新し、新しいカーネルで再起動してから、SELinux、ファイアウォール、時刻同期、ログ、実際のサービスを確認してください。