🐙

RHEL9の環境構築

に公開

概要

このガイドでは、Red Hat Enterprise Linux 9(RHEL9) を手元の Windows PC 上に構築して触ってみたい方向けに、セットアップ手順をまとめています。

  • 仮想化には Hyper-V を使用するため、Windows 10/11 Pro などの Hyper-V が使える環境が必要です。
  • 「RHEL9 ログイン」まで完了すれば、基本的な動作確認やリモート接続ができる状態になります。
  • 記事中の {{ }} で囲まれた部分(例:{{Redhat Account ID}})は、ご自身の環境にあわせて適宜読み替えてください

RHEL9 本体のダウンロード

https://developers.redhat.com/products/rhel/download


最下部Explore other Red Hat productsから、適当なverのx86_64 boot isoをDownload
※ サブスクリプションにアカウント紐づけが必要なのでアカウントはあらかじめ作成しておくこと[1]

Hyper-V 設定

Hyper-Vは有効化しておく[2]

仮想マシンの新規作成ウィザード

Hyper-Vマネージャー → 操作 → 新規 → 仮想マシン

  • 名前:RHEL9.6-Template
    ※ 適当に命名
  • 世代の指定:第二世代(デフォルト)
    ※ 既存のドライブ割り当てたりなどの要件がなければ、第二世代でよさそう
  • メモリの割り当て(デフォルト)
    ※ RHELとしてはデフォルトで充足
    • 起動メモリ 4096MB
    • 動的メモリ有効
  • ネットワークの構成
    ※ 接続がないとインターネットに出れない。Default Switchを選択
    • 接続:Default Switch
  • 仮想ハードディスクの接続(デフォルト)
    ※ ディスク配置先を別ドライブ等にしたい場合は、場所を変えること
  • インストールオプション
    ※ 事前にDLしたイメージファイルを指定
    • ブート CD/DVD-ROM からオペレーティングシステムをインストールする
      • イメージファイル(.iso):{{イメージファイルの場所}}\rhel-9.6-x86_64-boot.iso

仮想マシンの起動前設定

Hyper-Vマネージャー → 作成された仮想マシンを右クリック → 設定

  • セキュリティ:セキュアブート:無効(有効のチェックを外す)
    ※ 無効にしないと立ち上がらない
  • メモリ:動的メモリ:最大RAM: 8192
    ※ 事故って食いつぶすのを防止。ホストPCの1/4程度を上限に設定。
  • プロセッサ:仮想プロセッサの数:4
    ※ 事故って食いつぶすのを防止。ホストPCの1/4程度を上限に設定。
  • チェックポイント:無効(有効のチェックを外す)
    ※ ディスク容量削減したいのと、チェックポイント管理が面倒なので無効化
  • 自動停止アクション:ゲストオペレーティングシステムをシャットダウンする
    ※ 整合性周りに不安が残るので、仮想マシンの状態保存は実施しない。

RHEL9 インストール

Hyper-Vマネージャー → 作成された仮想マシンを右クリック → 接続 → 起動 → 下画面のInstall

  • インストール時に使用する言語:日本語
  • キーボード:英語(US)(日本語を削除)
    ※ 自分が利用しているキーボード環境に合わせる
  • Red Hatに接続:{{Redhat Account ID}}/{{Redhat Account Password}}
    ※ 接続しないとパッケージインストールなどが止まる。登録したアカウントを入力。
  • rootパスワード:{{RHEL root path}}
    • パスワードによるroot SSHログインを許可:チェック
  • インストール先:自動構成(デフォルト)
  • kdump:無効(有効のチェックを外す)
    ※ ガチ解析は要らない。リソース節約したいので無効化
  • ソフトウェアの選択:最小限のインストール

RHEL9 ログイン

  • インストール後の再起動でrootログイン → ip aで表示されるeth0のIPアドレスをメモ(図の場合、172.23.249.132)
  • ホストOSのコマンドプロンプトを起動し、sshでログイン
ssh root@172.23.249.132
root@172.23.249.132's password:{{RHEL root path}}

RHEL9 設定

優先度順に記載

SELINUX 無効化

grubby --update-kernel ALL --args selinux=0
  • SSHつながらなくなった。やはり害悪感あるので無効化しておく。
  • 直接config弄ったら起動しなくなった。8までとやり方変わってるので注意。[3]

よく使うPackageのインストール

yum -y install cifs-utils vim jq perl tcpdump wget tar

ホスト名設定

hostnamectl set-hostname RHEL9-hogehoge

サブスクリプションの再適用[4][5]

subscription-manager clean
subscription-manager register --username={{Redhat Account ID}} --password={{Redhat Account Password}} --auto-attach

SSH接続設定

  • 現状の設定確認
[root@localhost ~]# cat /etc/ssh/sshd_config | grep -v ^# | grep -v ^$
Include /etc/ssh/sshd_config.d/*.conf
AuthorizedKeysFile      .ssh/authorized_keys
Subsystem       sftp    /usr/libexec/openssh/sftp-server
[root@localhost ~]# cat /etc/ssh/sshd_config.d/* | grep -v ^# | grep -v ^$
PermitRootLogin yes
Include /etc/crypto-policies/back-ends/opensshserver.config
SyslogFacility AUTHPRIV
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
PrintMotd no
  • 設定変更
# 公開鍵の投入
cat <<'EOF' >> /root/.ssh/authorized_keys
{{SSH公開鍵}}
EOF
chmod 600 /root/.ssh/authorized_keys

# 公開鍵設定の有効化
cat <<'EOF' >> /etc/ssh/sshd_config
PubkeyAuthentication yes
EOF

# パスワードログインの無効化(公開鍵ログイン疎通を確認してから実施)
rm /etc/ssh/sshd_config.d/01-permitrootlogin.conf

fstab設定

※ 要:接続先ファイルサーバ

mkdir /sf
cat <<'EOF' >> /etc/fstab
# ファイルサーバへの接続設定
//RHEL9-FS/SRC_LINUX /sf/ cifs user={{FS USER}},password={{FS PASS}},defaults 0 0
EOF

rsyslog 送信設定

※ 要:接続先syslogサーバ

cat <<'EOF' >> /etc/rsyslog.conf
# 送信先サーバ設定
*.* @@RHEL9-Management:514
EOF

通信ログ出力設定(dnsmasq, conntrack)

# dnsmasq インストール
dnf install -y dnsmasq

# dnsmasq 設定(最小構成)
cat << 'EOF' > /etc/dnsmasq.conf
log-queries
log-facility=daemon
listen-address=127.0.0.1
resolv-file=/run/NetworkManager/no-stub-resolv.conf
EOF

# NetworkManager 設定(DNSをdnsmasqへ向ける)
nmcli con mod eth0 ipv4.dns "127.0.0.1"
nmcli con mod eth0 ipv4.ignore-auto-dns no
nmcli con up eth0

# dnsmasq 起動
systemctl enable --now dnsmasq


# Outboundアクセスログ出力設定(conntrack)
dnf -y install conntrack-tools

cat <<EOF > /etc/sysctl.d/99-conntrack.conf
net.netfilter.nf_conntrack_acct=1
net.netfilter.nf_conntrack_events=1
EOF
sysctl --system

cat << 'EOF' > /etc/systemd/system/conntrack-destroy-log.service
[Unit]
Description=Conntrack DESTROY event logger
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/conntrack -E -e DESTROY -o timestamp,extended
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=conntrack-destroy

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable --now conntrack-destroy-log.service
脚注
  1. https://tech.sadari.co.jp/server-os/linux-server/linux-rhel-dev-free/ ↩︎

  2. https://liglogdev.com/windows10-hyper-v-activation/ ↩︎

  3. https://tech-lab.sios.jp/archives/31392 ↩︎

  4. https://access.redhat.com/ja/solutions/757123 ↩︎

  5. https://lab.tricorn.co.jp/morikawa/5562 ↩︎

Discussion