Rocky Linuxサーバーを構築する手順|最小インストールから初期設定・Webサーバー公開まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, Linuxサーバー構築(Rocky Linux/RHEL9) > Rocky Linuxサーバーを構築する手順|最小インストールから初期設定・Webサーバー公開まで
「Rocky Linuxでサーバーを構築したいけど、どこから手をつければいいのかわからない」
「CentOSからの移行先として選んだはいいが、初期設定の手順が頭に入っていない」

そんな疑問を抱えているエンジニアは多い。Rocky LinuxはRHELと完全互換のディストリビューションとして急速に普及しているが、「インストールしたらまず何をするか」を体系立てて解説した記事は意外と少ない。

この記事では、Rocky Linux(9系)を最小構成でインストールするところから、SSH鍵認証・firewalld・SELinux・Apache公開までの一通りの初期設定手順を実機ベースで解説する。CentOS後継を探しているエンジニアにも、Rocky Linuxを初めて触る方にも、そのまま使える実践的な手順書として書いた。

この記事のポイント

・Rocky Linux 9はRHEL9と完全互換で、CentOS後継として法人環境でも安心して使える
・最小インストール後にSSH鍵認証・firewalld・SELinuxを設定するのが初期セキュリティの基本
・dnfでApacheをインストールしfirewalldで80/443を開放するだけでWebサーバーとして公開できる
・実機の出力例とともに各ステップの動作確認コマンドを掲載しているので手順をそのまま追える


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Rocky Linuxとは|CentOS後継として選ばれる理由

Rocky LinuxはRed Hat Enterprise Linux(RHEL)のソースコードをベースに、コミュニティが無償でビルドしているディストリビューションだ。

2021年にCentOS 8がサポート終了(CentOS Streamへの移行)を宣言し、企業の本番サーバーで使われていた多くのCentOS環境が移行先を求めた。その代表的な選択肢の一つがRocky Linuxだ。

・RHELとバイナリ互換(同じRPMパッケージが動く)
・Rocky Enterprise Software Foundation(RESF)が安定したリリースサイクルを維持
・2032年まで(Rocky Linux 9の場合)のセキュリティサポートが確保されている
・AlmaLinuxと並ぶCentOS後継の主流であり、コミュニティが活発

本記事で扱うバージョンはRocky Linux 9(2022年7月リリース、RHEL 9.xベース)。

インストール前の確認事項

1. ISOイメージの入手

公式サイト(https://rockylinux.org/download)からISOをダウンロードする。用途に応じて以下を選ぶ。

Minimal:GUIなし・最小構成。サーバー用途ではこれが基本
DVD(Full):オフライン環境でも各種パッケージをインストール可能
Boot:ネットワーク経由でインストール(ネット環境が必要)

本記事ではサーバー用途を想定してMinimal ISOを使う。

Rocky Linuxの構築手順を体系的に身につけたい方へ

現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。firewalld・SELinux・パーティション設計の考え方を図解で丁寧に解説しています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

2. インストール環境の要件

・CPU: 64bit(x86_64)
・メモリ: 最低1.5GB(推奨2GB以上)
・ディスク: 最低10GB(/は20GB以上推奨)
・仮想環境: VMware、VirtualBox、KVM、クラウド(AWS EC2など)でも問題なし

インストール手順|Minimal構成を選ぶ

1. インストーラー(Anaconda)の起動

ISOをDVD/USBに書き込んで起動するか、仮想マシンにISOをマウントして起動する。起動メニューが表示されたら「Install Rocky Linux 9.x」を選択する。

2. インストール概要画面での設定

Anacondaのインストール概要画面(Installation Summary)で以下を設定する。

Keyboard:Japanese(日本語キーボードを使う場合)
Language Support:日本語(Japanese)を追加
Installation Destination:ディスクを選択し「Automatic」で自動パーティション
Network & Host Name:IPアドレスを固定する場合はここで設定
Software Selection:「Minimal Install」を選択(Server with GUIは不要)
Root Password:rootのパスワードを設定
User Creation:作業用一般ユーザー(例: admin)を作成し「Make this user administrator」にチェック

3. インストール完了後の再起動

「Begin Installation」をクリックするとインストールが始まる。完了後に「Reboot System」でDVD/USBを外して再起動する。

初期設定の手順|セキュアなサーバーにするための8ステップ

1. OSバージョンとホスト名を確認する

ログイン後、まず環境を確認する。

# OSバージョンを確認 cat /etc/rocky-release # バージョン詳細 cat /etc/os-release | head -10 # ホスト名確認 hostname hostnamectl

実機の出力例:

Rocky Linux release 9.4 (Blue Onyx) Static hostname: rocky-web01 Icon name: computer-server Chassis: server Machine ID: a1b2c3d4e5f6g7h8i9j0 Boot ID: x1y2z3a4b5c6d7e8f9g0 Operating System: Rocky Linux 9.4 (Blue Onyx) CPE OS Name: cpe:/o:rocky:rocky:9::baseos Kernel: Linux 5.14.0-427.13.1.el9_4.x86_64 Architecture: x86-64

ホスト名を変更する場合は次のコマンドを使う。

# ホスト名を変更(staticホスト名として永続化される) hostnamectl set-hostname rocky-web01

2. パッケージを最新化する

インストール直後はパッケージが古い状態のことがある。最初にアップデートを済ませておく。

# パッケージを全て最新化 dnf update -y # カーネルアップデートがある場合は再起動 reboot

3. SSHの公開鍵認証を設定する

パスワード認証のままではブルートフォース攻撃のリスクがある。公開鍵認証に切り替えておく。

まず自分のPCで鍵ペアを生成する(既にある場合はスキップ)。

# 自分のPC上で実行(サーバー上ではない) ssh-keygen -t ed25519 -C "rocky-web01" # 鍵の保存先: ~/.ssh/id_ed25519(デフォルトのまま)

次に公開鍵をサーバーに転送する。

# 自分のPC上で実行 ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@192.168.1.10 # または手動でサーバー上に配置 # サーバー上で実行: mkdir -p ~/.ssh chmod 700 ~/.ssh vi ~/.ssh/authorized_keys # 公開鍵の内容を貼り付けてから: chmod 600 ~/.ssh/authorized_keys

公開鍵認証でログインできることを確認したら、パスワード認証を無効化する。

# sshd_configを編集 vi /etc/ssh/sshd_config # 以下の設定を変更・追記する: # PasswordAuthentication no # PermitRootLogin no # 設定を反映 systemctl restart sshd

重要:パスワード認証を無効化する前に、必ず公開鍵認証でログインできることを確認すること。確認前に無効化するとサーバーに入れなくなる。

4. firewalldでポートを管理する

Rocky Linux 9ではfirewalldがデフォルトで有効になっている。まず現状を確認する。

# firewalldの状態確認 systemctl status firewalld # 現在の許可ルールを確認 firewall-cmd --list-all

実機の出力例:

public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

デフォルトではSSH(22/tcp)が許可されている。WebサーバーとしてHTTP/HTTPSを追加する場合:

# http(80)とhttps(443)を許可(永続化) firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https # 設定を反映 firewall-cmd --reload # 確認 firewall-cmd --list-all

なお、firewalldコマンドの詳細な使い方はこちらで解説している。

5. SELinuxの状態を確認する

Rocky Linux 9ではSELinuxがデフォルトでEnforcingモードで動作している。

# SELinuxの状態確認 getenforce # 出力: Enforcing sestatus # 出力例: # SELinux status: enabled # SELinuxfs mount: /sys/fs/selinux # SELinux mount point: /sys/fs/selinux # Loaded policy name: targeted # Current mode: enforcing # Mode from config file: enforcing # Policy MLS status: enabled # Policy deny_unknown status: allowed # Memory protection checking: actual (secure) # Max kernel policy version: 33

SELinuxを安易に無効化しないこと。SELinuxはRocky Linux・RHELのセキュリティの要で、無効化すると本来の保護機能が失われる。問題が発生した場合は原因を調べてポリシーを調整するのが正しい対処だ。

テスト目的で一時的にPermissiveモードに変更する場合:

# 一時的にPermissiveへ(再起動で元に戻る) setenforce 0 # Enforcingに戻す setenforce 1

6. タイムゾーンと時刻同期を設定する

ログの時刻を正確に残すために、タイムゾーンとNTP同期を確認しておく。

# タイムゾーン確認 timedatectl # タイムゾーンをAsia/Tokyoに設定 timedatectl set-timezone Asia/Tokyo # NTP同期の有効化 timedatectl set-ntp true # 確認 timedatectl show # NTPSynchronized=yes となっていればOK

7. 必要なパッケージをインストールする

Minimal Installでは最低限のパッケージしか入っていない。運用に必要なツールを追加する。

# よく使うツール群 dnf install -y \ vim \ wget \ curl \ net-tools \ bind-utils \ lsof \ rsync \ unzip \ tar

8. 自動セキュリティアップデートを設定する

セキュリティパッチを自動適用する設定を入れておくと、管理の手間が減る。

# dnf-automaticをインストール dnf install -y dnf-automatic # 設定ファイルを編集(セキュリティアップデートのみ自動適用) vi /etc/dnf/automatic.conf # [commands] セクションの upgrade_type を security に変更: # upgrade_type = security # タイマーを有効化・起動 systemctl enable --now dnf-automatic.timer # 確認 systemctl status dnf-automatic.timer

ApacheでWebサーバーを公開する手順

1. Apacheのインストールと起動

# Apacheをインストール dnf install -y httpd # 起動して自動起動を有効化 systemctl enable --now httpd # 状態確認 systemctl status httpd

実機の出力例:

* httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled) Active: active (running) since Tue 2026-06-17 10:42:15 JST; 5s ago Docs: man:httpd.service(8) Main PID: 12345 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 4605) Memory: 28.1 M CPU: 263ms CGroup: /system.slice/httpd.service +-12345 /usr/sbin/httpd -DFOREGROUND +--...

2. テストページへのアクセス確認

ブラウザからサーバーのIPアドレスにアクセスして「Rocky Linux」のテストページが表示されれば成功だ。

コマンドラインで確認する場合:

# ローカルからHTTPアクセスを確認 curl -I http://localhost # 期待する出力(抜粋): # HTTP/1.1 200 OK # Server: Apache/2.4.xx (Rocky Linux)

3. ドキュメントルートとバーチャルホストの確認

デフォルトのドキュメントルートは `/var/www/html` だ。独自のコンテンツを配置する場合はここにファイルを置く。

# テストページを配置 echo "Hello, Rocky Linux!" > /var/www/html/index.html # SELinuxのコンテキスト確認(httpd_sys_content_tが正しい) ls -lZ /var/www/html/index.html # -rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 20 Jun 17 10:45 /var/www/html/index.html

SELinuxが有効な環境では、Webコンテンツのファイルコンテキストが `httpd_sys_content_t` である必要がある。`/var/www/html` 配下に配置すれば自動的に正しいコンテキストが付く。

RPMパッケージの管理とdnfの使い方

Rocky LinuxはRPMベースのディストリビューションなので、パッケージ管理には `dnf` コマンドを使う。CentOS 7での `yum` と互換性がある。

# インストール済みパッケージを確認 dnf list installed | head -20 # パッケージを検索 dnf search nginx # 特定パッケージの詳細情報 dnf info httpd # パッケージをインストール dnf install -y nginx # パッケージを削除 dnf remove -y nginx # キャッシュをクリア dnf clean all

RPMパッケージの詳細な確認・照会方法はこちらで解説している。

トラブルシュート|よくある問題と対処法

「firewalldが無効になっていてアクセスできない」

# firewalldが起動しているか確認 systemctl status firewalld # 停止していた場合は起動 systemctl start firewalld systemctl enable firewalld # HTTPが許可されているか確認 firewall-cmd --list-services

「Apacheが起動しない(SELinux関連)」

SELinuxのポリシー違反でhttpdが起動できないケースがある。

# SELinuxの拒否ログを確認 ausearch -m avc -ts recent | tail -20 # またはjournalctlで確認 journalctl -u httpd -n 50 # SELinuxのアラートを確認(audit2allowで対処方法を提案) audit2allow -a -l

「dnf updateが遅い・タイムアウトする」

ミラーサーバーが遅い場合はfastestmirrorプラグインを有効にする。

# fastestmirrorの確認(通常はdnf-plugins-coreに含まれる) cat /etc/dnf/dnf.conf | grep fastestmirror # 有効化(必要な場合) echo "fastestmirror=True" >> /etc/dnf/dnf.conf

「SSHに接続できない」

# sshdが起動しているか確認 systemctl status sshd # firewalldでSSHが許可されているか確認 firewall-cmd --list-services | grep ssh # SSHポートが開いているか確認 ss -tlnp | grep :22

本記事のまとめ

手順 コマンド/設定 ポイント
OSバージョン確認 cat /etc/rocky-release インストール後に最初に確認する
パッケージ更新 dnf update -y カーネル更新後は再起動
SSH鍵認証 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host 確認後にパスワード認証を無効化
firewalld設定 firewall-cmd --permanent --add-service=http --permanentで永続化、--reloadで反映
SELinux確認 getenforce 無効化せずポリシー調整が基本
タイムゾーン設定 timedatectl set-timezone Asia/Tokyo NTP同期も合わせて有効化
Apache起動 systemctl enable --now httpd 自動起動まで同時に設定
SELinuxコンテキスト ls -lZ /var/www/html/ httpd_sys_content_tが正しい値
Rocky Linuxはインストール自体はシンプルだが、firewalldとSELinuxがデフォルトで有効なため、設定を理解していないと思わぬところでつまずく。この記事で紹介した手順を一通り実施しておけば、本番利用に耐えるセキュアなベースラインが完成する。

次のステップとして、Let's EncryptでのSSL化やNginxのリバースプロキシ設定、RPMパッケージ管理の深掘りなども合わせて確認しておくことをすすめる。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。