無料で学ぶサーバー構築:『Linuxサーバー構築標準教科書』実習ガイド

「Linuxで実際にサーバーを立てて動かしたい。でも最初の一歩でつまずく…」
そんな人に最短ルートを示してくれるのが、Linuxサーバー構築標準教科書です。

この教材は、無料で入手できる公式テキスト。
仮想マシンの準備から、Web(Apache/Nginx)/DNS(BIND)/メール(Postfix)自分の手で構築し、
curldig、ログ確認で動作検証するところまでを、実習中心で案内します。

  1. 本記事の対象
    1. この記事で得られること
    2. まず知っておきたいポイント
  2. 『Linuxサーバー構築標準教科書』とは
    1. 教材の概要・想定読者
    2. 提供形態とライセンス
    3. 到達点(学び終えるとできること)
  3. 章立てと“できること”早見表
    1. まず押さえるコア演習(Web → DNS → メールの順)
  4. はじめかた:演習環境の作り方
    1. どれを選ぶ?WSL2・VM・実機(比較)
    2. 推奨:VirtualBox+AlmaLinux 9(ミニ手順)
    3. SSHで楽に作業する(Windows含む)
    4. WSL2で始める場合の最小セット
    5. ネットワークの基本設定(VM)
    6. ファイアウォールは“必要最小限”
    7. 安全に学ぶための運用メモ
    8. 実習開始チェックリスト
  5. 実習の進め方(サービス別ガイド)
    1. Webサーバー(Apache または Nginx)
      1. A. Apache(httpd)
      2. B. Nginx
    2. DNSサーバー(BIND / named)
    3. メールサーバー(Postfix)
    4. 切り分けの“共通リズム”
  6. 7日・14日・21日プラン
    1. 7日速習プラン(合計目安 10〜15時間)
    2. 14日標準プラン(合計目安 20〜30時間)
    3. 21日じっくりプラン(合計目安 30時間〜)
    4. 日々のルーティン(10–40–40–10)
  7. つまずきポイントと解決の型
    1. よくある症状と“最初の3手”
    2. ログの“読み始め”ポイント
    3. 権限・SELinuxの基本確認(HTTPで多い)
    4. DNSゾーンの文法・権威チェック
    5. メール配送の三段切り分け(ローカル配送)
    6. チェックリスト(短く早く回す)
  8. LinuCとの関係(レベル2のサーバー領域に効く)
    1. 章 → 出題領域の対応イメージ
    2. こう効く(具体例)
    3. 学習フロー(レベル2受験を前提に)
    4. 合格のための使い分け
  9. 他教材との使い分け(入門・構築・運用)
    1. 役割とゴールの違い(早見表)
    2. 迷ったらこの順番(王道ルート)
    3. 動機優先ショートカット
    4. 併用のコツ(往復学習)
    5. 目的別レコメンド
  10. よくある質問(FAQ)
    1. Q1. WSL2だけで最後まで学べますか?
    2. Q2. ApacheとNginx、どちらで進めるべき?
    3. Q3. 家のネットワークで外部公開しても大丈夫?
    4. Q4. AlmaLinuxでなくても学べますか?
    5. Q5. どのくらいの時間で一通りできますか?
    6. Q6. つまずいたら何から確認すればいい?
    7. Q7. 社内読書会や授業で使えますか?
    8. Q8. LinuCの勉強にも役立ちますか?
    9. Q9. 学習ログはどう残すと良い?
  11. 参考リンク
  12. まとめ(次のアクション)
  13. 関連記事

本記事の対象

  • サーバー構築がはじめての方
  • 一台を通す体験」を独学で積みたい方
  • LinuC 学習や新人研修の実践テキストを探している方

この記事で得られること

  • 教材の位置づけとゴール(どこまでできるようになるか)
  • 章ごとの狙いと、最短で動かすためのコア演習の順番
  • 演習環境の作り方(WSL2/VM/実機の選び方と手順)
  • 7日・14日・21日の学習プランと日々のルーティン
  • つまずきに効く切り分けの型とログの見方
  • LinuC(レベル2のサーバー領域)との関係と併用リソース
  • 姉妹教材(入門/運用)との効果的な使い分け

まず知っておきたいポイント

  • 実習前提:読むだけでなく、立てて・叩いて・確かめるの循環が基本
  • 検証までが一セット:ブラウザ/curldig/MTAログで正しく動いているかを確認
  • 壊して戻す:VMのスナップショット運用で、失敗を恐れず試行回数を増やす

以降、教材の全体像→章別の“できること”→環境づくり→サービス別実習の進め方
の順で、最短で「立てられる」状態までナビゲートします。

『Linuxサーバー構築標準教科書』とは

教材の概要・想定読者

LPI-Japan が無償公開している サーバー構築の入門〜初中級向け教材です。
仮想マシンを用意するところから始まり、Web(Apache/Nginx)/DNS(BIND)/メール(Postfix) といった代表的なサービスを 自分の手で立てて動かし、検証まで行う 流れで学べます。

想定読者の目安

  • Linuxの基本操作は一通り触ったことがある(コマンド・権限・vi など)
  • “サーバーを自分で構築する”のは初めて、もしくは体系立てて学び直したい
  • 学校の演習・社内読書会・新人研修などで手順が明確な教材を探している

ひとことで言うと、「まず一台を通す」ための地図
コマンドの暗記ではなく、サービスを起点に仕組みがつながるよう設計されています。

提供形態とライセンス

  • 形式:PDF/EPUB(無料)Kindle/製本(有償)
  • ライセンス:CC BY-NC-ND 4.0(表示・非営利・改変禁止)
    • 教育・個人学習での配布・利用に向く
    • 改変して再配布は不可(要旨引用は可)

利用イメージ

  • 独学:PDF+ターミナルを並べて実習
  • 移動中の復習:Kindle版でマーカー・しおり活用
  • 授業・研修:製本版を配布して同期学習

到達点(学び終えるとできること)

項目できるようになること
環境準備VirtualBoxで VM を作成し、AlmaLinux 9 をインストールして初期設定
WebApache/Nginx の導入・起動・自動起動、ドキュメントルートの配置、curl/ブラウザでの動作確認、基本的なログ読解
DNSBIND での正引き・逆引きゾーン作成、レコード設定、dig による検証、TTL などの基本概念
メールPostfix のインストール・ローカル配送、キュー確認、MTA ログの読み方、簡単なトラブル初動
ネットワーク/セキュリティ基本的なネットワーク設定、SSHでの遠隔操作、ファイアウォールの最小設定
検証と切り分け“動かす→叩く→ログを見る” の型で、原因を段階的に特定できる

学習後は、「自分の手でサーバーを立てて動かす」一連の体験を獲得できます。
ここで得た“つながりの理解”が、次の実践(応用構築/運用管理/資格対策)に効いてきます。

章立てと“できること”早見表

教材は、環境づくり → 主要サービス(Web/DNS/メール) → ネットワーク・セキュリティ の順で、
“立てて」「叩いて」「確かめる” を繰り返す構成です。
各章で 何を作り、どう検証するか を一目で把握できるようにまとめました。

学べること(要点)代表タスク検証のしかた所要目安
第1章 Linuxサーバーの概要サーバー種別/プロトコルの基礎用語と役割の整理主要ログとサービスの関係を図で確認20–30分
第2章 VirtualBoxとVM作成VM作成・NIC/ストレージ設定CPU/メモリ/ディスクの割当、ISO設定OSインストーラ起動まで到達30–60分
第3章 Linuxインストールと設定AlmaLinux 9 の導入と初期化dnf update、ユーザー+sudo、SSH有効化別端末からSSHログイン成功40–70分
第4章 Webサーバー構築Apache/Nginx の導入・起動ドキュメントルート配置、仮想ホスト最小設定curl http://<IP>/ で200応答、アクセスログ確認60–90分
第5章 DNSサーバー構築BINDで正引き/逆引きゾーンA/PTR/CNAME などレコード定義dig A example.local @127.0.0.1 で回答を得る60–120分
第6章 メールサーバー構築Postfix の基本・ローカル配送エイリアス設定、キュー確認/var/log/maillogpostqueue -p で配送確認60–120分
第7章 ネットワークとセキュリティ基本NW設定/SSH/FW最小化firewalld 最小開放、永続化ss -lnt で待受確認、外部から疎通確認40–90分

※ 所要は目安です。初回はスナップショットを切りながら、焦らず進めましょう。

まず押さえるコア演習(Web → DNS → メールの順)

この順番だと、依存関係が“下から上へ” 積み上がるので、切り分けが楽になります。

  1. Web(HTTP)
  • ねらい:最小構成で「サービスを立てて応答を返す体験」を最短で得る
  • やること:httpd または nginx を導入 → 起動・自動起動 → 簡単なHTML配置
  • 確かめる:curl -I http://<IP>200 OK/var/log/httpd/access_log を確認
  1. DNS(BIND)
  • ねらい:名前解決が分かると、以降の検証が人間に優しくなる
  • やること:正引き/逆引きゾーンを定義、レコード(A/PTR/CNAME)を配置
  • 確かめる:dig A www.example.local @127.0.0.1、TTLや権威の表示を読む
  1. メール(Postfix)
  • ねらい:複数要素(名前解決・待受・配送)の組み合わせ検証に挑戦
  • やること:ローカル配送→エイリアス/キュー → ログで配送経路を読む
  • 確かめる:postqueue -ptail -f /var/log/maillog、バウンス時の原因を特定

ミニ課題(仕上げに効く)

  • Web:仮想ホストで /status を別ホスト名に切り分け
  • DNS:サブドメインを委任し、dig +trace で解決経路を観察
  • メール:配送失敗ケースを意図的に作り、ログから三手で原因特定(名前解決/ポート/認可)

この“立てる→叩く→読む”の型を体に入れると、
以降の章や実務でも 「まずどこを見るか」 が自然と定まります。

はじめかた:演習環境の作り方

どれを選ぶ?WSL2・VM・実機(比較)

選択肢手軽さ再現性壊しても安全向いている用途
WSL2(Windows)△(NW章は工夫が必要)基本コマンドやWeb最小構成の体験
VirtualBox+VM◎(スナップショット)Web/DNS/メールまで章を忠実に再現
実機インストール余っているPCで本格運用を練習したい

最短で“通す”なら VirtualBox+AlmaLinux 9 を推奨。
WSL2で基本を触り、DNS/メールなどはVMで再現する二段構えもアリです。

推奨:VirtualBox+AlmaLinux 9(ミニ手順)

  1. VirtualBox をインストール
  2. AlmaLinux 9 の ISO を取得
  3. 新規VMを作成
    • CPU 2 / メモリ 4GB / ディスク 40GB 目安
    • ネットワークはまず NAT(安定)
  4. ISOから起動→インストール
  5. 初期設定(例)
    sudo dnf -y update sudo dnf -y install vim less git curl tar unzip rsync tree sudo systemctl enable --now sshd
  6. スナップショットを保存(「初期化直後」など分かる名前)

ヒント:章の前後でスナップショットを切ると、失敗してもすぐ戻れます。

SSHで楽に作業する(Windows含む)

  • 同一LANかポートフォワードを設定し、ホストからVMへ SSH 接続
  • Windowsは標準の ssh が使えます(PowerShellから) ssh user@<vm-ip>
  • 文字化けが気になる場合はターミナルの文字コードをUTF-8に

WSL2で始める場合の最小セット

wsl --install
# ディストリ導入後(WSL内で)
sudo dnf -y update || sudo apt -y update
sudo dnf -y install vim curl tree || sudo apt -y install vim curl tree

※ DNS/メールの章はWSL2だけだと再現しづらい場面があります。
その場合は該当章のみ VM に切り替えましょう。

ネットワークの基本設定(VM)

  • まずは NAT で安定検証(外へは出られる/外から入れない)
  • 外部端末からの疎通を試したいときは
    • ポートフォワード(NATのまま)
    • もしくは Bridged(同一ネットワーク上の独立端末として振る舞う)

確認の三点セット

ip a            # IPが想定どおりか
ss -lnt         # どのポートで待ち受けているか
firewall-cmd --list-services  # FWで開いているサービス

ファイアウォールは“必要最小限”

# 例:HTTPとDNSを最低限開ける
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

開けたら必ず 外から叩いて確認curl / dig)。
「開けたつもり」が一番ハマりやすいポイントです。

安全に学ぶための運用メモ

  • 日常作業は 一般ユーザー+sudo
  • 設定変更は バックアップ→変更→差分確認 の順 sudo cp -a /etc/httpd/conf/httpd.conf{,.bak} sudo diff -u /etc/httpd/conf/httpd.conf{.bak,}
  • ログを読む習慣(Web: /var/log/httpd/*、DNS: /var/named/data/*、Mail: /var/log/maillog
  • うまく動いたら スナップショット。戻して再現できたら理解が定着しています

実習開始チェックリスト

  • AlmaLinux を最新化した(dnf update 済み)
  • SSHで入れる
  • vim で設定を開ける・保存できる
  • curldig が動く
  • スナップショット「初期化直後」を作成済み

ここまで整えば、サービス別の実習(Web → DNS → メール)に入る準備は完了です。

実習の進め方(サービス別ガイド)

ここからは Web → DNS → メール の順で、
「立てる → 叩く → ログを読む」の型を回していきます。
以下は AlmaLinux 9 を前提にした最小手順です(sudo 利用)。

Webサーバー(Apache または Nginx)

まずは 最短で“200 OK”を返す体験 を得ましょう。
Apache でも Nginx でもOK。どちらか一つで進めて大丈夫です。

A. Apache(httpd)

sudo dnf -y install httpd
sudo systemctl enable --now httpd
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

# 動作確認
curl -I http://127.0.0.1
# 期待: HTTP/1.1 200 OK

コンテンツ配置(最小)

echo '<h1>Hello Apache</h1>' | sudo tee /var/www/html/index.html

ログの場所

/var/log/httpd/access_log
/var/log/httpd/error_log

仮想ホスト(最小例)

# /etc/httpd/conf.d/example.conf
<VirtualHost *:80>
    ServerName www.example.local
    DocumentRoot /var/www/example
    ErrorLog logs/example_error.log
    CustomLog logs/example_access.log combined
</VirtualHost>
sudo mkdir -p /var/www/example
echo ok | sudo tee /var/www/example/index.html
sudo systemctl reload httpd

B. Nginx

sudo dnf -y install nginx
sudo systemctl enable --now nginx
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

curl -I http://127.0.0.1

最小サーバーブロック

# /etc/nginx/conf.d/example.conf
server {
    listen 80;
    server_name www.example.local;
    root /usr/share/nginx/example;
    access_log /var/log/nginx/example_access.log;
    error_log  /var/log/nginx/example_error.log;
}
sudo mkdir -p /usr/share/nginx/example
echo ok | sudo tee /usr/share/nginx/example/index.html
sudo nginx -t && sudo systemctl reload nginx

よくあるつまずき → 最初の3手

  1. ss -lnt で 0.0.0.0:80 待受の有無
  2. firewall-cmd --list-serviceshttp があるか
  3. error_log で具体的なエラー行を読む

ミニ課題:/status を別ホスト名で出す(仮想ホスト/server ブロックを追加)

DNSサーバー(BIND / named)

名前解決が分かると検証が一気に楽 になります。
まずはローカル専用の 正引き・逆引き を通しましょう。

インストールと起動

sudo dnf -y install bind bind-utils
sudo systemctl enable --now named
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

設定の最小化(例:example.local ドメイン)

# /etc/named.conf の末尾あたりにゾーン定義を追加
zone "example.local" IN {
    type master;
    file "example.local.zone";
    allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
    type master;
    file "0.168.192.rev";
    allow-update { none; };
};

ゾーンファイル(正引き)

# /var/named/example.local.zone
$TTL 300
@   IN SOA  ns1.example.local. hostmaster.example.local. (
        1 ; serial
        60 ; refresh
        60 ; retry
        1209600 ; expire
        300 ; minimum
)
    IN NS   ns1.example.local.
ns1 IN A    192.168.0.10
www IN A    192.168.0.20

ゾーンファイル(逆引き)

# /var/named/0.168.192.rev
$TTL 300
@   IN SOA  ns1.example.local. hostmaster.example.local. (
        1 60 60 1209600 300
)
    IN NS   ns1.example.local.
10  IN PTR  ns1.example.local.
20  IN PTR  www.example.local.

権限と文法チェック

sudo chown root:named /var/named/*.zone /var/named/*.rev
sudo restorecon -v /var/named/*
sudo named-checkconf
sudo named-checkzone example.local /var/named/example.local.zone
sudo named-checkzone 0.168.192.in-addr.arpa /var/named/0.168.192.rev
sudo systemctl reload named

動作確認(dig

dig @127.0.0.1 A www.example.local
dig @127.0.0.1 -x 192.168.0.20

ログの場所

/var/named/data/named.run   (または journalctl -u named)

つまずき → 最初の3手

  1. named-checkconf / named-checkzone が通るか
  2. firewall-cmd --list-servicesdns があるか
  3. dig +trace でどこで詰まっているかを見る

ミニ課題:サブドメイン dev.example.local を別ゾーンにして委任してみる

メールサーバー(Postfix)

まずは ローカル配送を確実に通す ところから。
外部配送はネットワーク要件が増えるため、最初はローカルでOKです。

インストールと起動

sudo dnf -y install postfix mailx
sudo systemctl enable --now postfix
sudo firewall-cmd --add-service=smtp --permanent
sudo firewall-cmd --reload

ローカル配送テスト

echo "hello" | mail -s "test" $USER
# 受信は /var/spool/mail/$USER など。ヘッダ確認:
tail -n +1 /var/spool/mail/$USER | head -n 30

エイリアス(例:root あてを自分へ)

sudo sh -c 'echo "root: youruser" >> /etc/aliases'
sudo newaliases
echo ok | mail -s "to-root" root

キューとログ

postqueue -p
journalctl -u postfix -n 100 --no-pager
# 旧来: /var/log/maillog

つまずき → 最初の3手

  1. ss -lnt:25 の待受があるか
  2. postqueue -p のステータス(Deferred か)
  3. journalctl -u postfix(相手の名前解決・到達・認証で失敗していないか)

ミニ課題:配送失敗を意図的に作り、名前解決/ポート/認可 の順で切り分け台本を作る

切り分けの“共通リズム”

  1. 待受ss -lnt(ポート開放)+ firewall-cmd(サービス許可)
  2. 名前解決dig でA/PTR、権威・TTLを確認
  3. アプリ検証curl / postqueue などで層を上げて確認
  4. ログ:最終的な頼みの綱。エラー行を読む→仮説→再現 の循環

このリズムを体で覚えると、以降の学習も実務も 怖くなくなります

7日・14日・21日プラン

7日速習プラン(合計目安 10〜15時間)

“まず一台を通す”ための短期集中。細部は追わず、200 OK/digで応答/ローカル配送の三点を最短で体験します。

やること目標(検証ポイント)
1第1–3章:VM作成→AlmaLinux 9導入→SSH有効化ssh user@vm で接続/スナップショット作成
2第4章:Apache または Nginx を最小構成で起動curl -I http://<IP>200 OK/アクセスログ確認
3第4章:仮想ホスト(serverブロック)を1つ追加www.example.local で別コンテンツ表示
4第5章:BINDインストール→正引きゾーンdig A www.example.local @127.0.0.1 が応答
5第5章:逆引きゾーン追加→権限・TTL確認dig -x <IP> @127.0.0.1 が PTR 応答
6第6章:Postfix→ローカル配送/キュー確認postqueue -pjournalctl -u postfix で配送経路把握
7第7章:FW最小化・待受確認→全体通し復習ss -lntfirewall-cmd --list-services で最小開放を整える

ポイント

  • 各日の最後にスナップショット。戻して再現できたら理解が定着
  • 失敗時は「待受→名前解決→アプリ検証→ログ」の順に切り分ける

14日標準プラン(合計目安 20〜30時間)

各章をじっくり一巡。“立てる→叩く→ログ読む” の型を固めます。

やること目標(検証ポイント)
11第1–2章VM準備完了/スナップショット「初期化」
2第3章SSH接続・更新・一般ユーザー+sudo運用
3第4章(Web最小)200 OK/アクセスログ・エラーログの場所を説明できる
4第4章(仮想ホスト)別ホスト名で別コンテンツを出し分け
5仕上げ課題(Web)/status を別ホスト名に切り出し/FW開放の整合
6予備日(復習)3〜5日のやり直し+メモ整備
7休養/まとめ進捗メモ・疑問整理
28第5章(正引き)dig で権威・TTLを読める
9第5章(逆引き)dig -x でPTR応答/ゾーン文法チェック習得
10第6章(Postfix基礎)ローカル配送→postqueuemaillog の読解
11第6章(エイリアス・キュー)失敗例を作り、三手で原因特定
12第7章(FW/NW最小)ss -lntfirewalld の整合を説明できる
13全体通しWeb→DNS→Mail の依存関係を言語化
14予備日(復習)口頭試問(自分に説明)+チートシート化

21日じっくりプラン(合計目安 30時間〜)

半章ずつ+再現練習。失敗→復旧のリズムを身体化します。

  • 平日:半章+演習(30〜60分)
  • 週末:復習+再現(スナップショットからやり直し)
  • 週ごとに「原因 → 対処 → 再発防止」を一枚にまとめる

仕上げ課題の例

  • Web:404/403 を意図的に起こし、ログから原因特定→修正
  • DNS:サブドメイン委任+dig +trace で経路観察
  • Mail:配送失敗3ケース(名前解決/ポート閉塞/認可)を再現→切り分け台本化

日々のルーティン(10–40–40–10)

  • 10分 復習:前日のメモを声に出して要約
  • 40分 実習:手順→検証→ログ確認
  • 40分 追試:一度壊して戻す(スナップショット活用)
  • 10分 記録:実行コマンド/エラー/直し方を1行ずつ残す

チェックアウト(毎回)

  • いま何が待ち受け、何が開いていて、何が名前解決できるか」を1分で説明できるか
  • ログのエラー行を三つ読み、仮説→検証を言語化できたか

このプランで進めると、“分かった気がする” ではなく “動かせる・直せる” まで到達できます。

つまずきポイントと解決の型

学習中に遭遇しやすい“ハマり”を、最初の3手で素早く切り分けます。
合言葉は 待受 → 名前解決 → アプリ → ログ

よくある症状と“最初の3手”

症状まずやること①(待受)②(名前解決)③(アプリ検証)
HTTPに繋がらないss -lnt:80 の待受確認、firewall-cmd --list-serviceshttp があるかdig A www.example.local @127.0.0.1(IPが正しいか)curl -I http://<IP>curl -H 'Host: www.example.local' http://<IP>
www名で開けないss -lnt はOKかゾーンの A/CNAME が正しいか、TTLの伝播待ちではないか仮想ホスト/serverブロックの ServerName が一致しているか
403/404が出る待受OKならスキップ名前解決OKならスキップドキュメントルート/SELinuxコンテキスト/権限を確認(ls -Zchown
DNSが応答しないss -lun:53(UDP)/ :53(TCP)待受、FWにdnsnamed-checkconfnamed-checkzone で文法確認dig @127.0.0.1 example.local(権威やSOAが返るか)
逆引きが失敗待受OKか逆引きゾーン名(*.in-addr.arpa)と PTR の書式dig -x <IP> @127.0.0.1 で実際に引けるか
メールが届かないss -lnt:25、FWにsmtp相手/自ホストの名前解決(A/PTR)が整合しているかpostqueue -pjournalctl -u postfix で配送経路を読む

ログの“読み始め”ポイント

  • Apache/Nginx
    • access_logステータスコード(200/403/404/500)と リクエストパス
    • error_logPermission deniedNo such filevirtual host mis-match
  • BIND (named)
    • journalctl -u named(もしくは /var/named/data/named.run
    • zone load failNXDOMAINCNAME loop などのキーワード
  • Postfix
    • journalctl -u postfix/var/log/maillog
    • Deferred の理由(Host not foundConnection refusedRelay access denied

ログはエラー行を3つ拾って、共通の単語(denied/refused/not found)を頼りに仮説を立てるのが近道。

権限・SELinuxの基本確認(HTTPで多い)

# 所有権・権限
ls -l /var/www/example
# SELinuxコンテキスト
ls -Z /var/www/example
# 必要なら(例)
sudo chcon -R -t httpd_sys_content_t /var/www/example

**403は大抵「ファイルに到達できていない」**のサイン。
順に (1)パス(2)UNIXパーミッション(3)SELinux を確認。

DNSゾーンの文法・権威チェック

sudo named-checkconf
sudo named-checkzone example.local /var/named/example.local.zone
sudo named-checkzone 0.168.192.in-addr.arpa /var/named/0.168.192.rev
dig @127.0.0.1 SOA example.local +short
dig @127.0.0.1 NS  example.local +short

SOA/NSが正しく返ることが、他のレコードが“正しく載っている”前提になります。

メール配送の三段切り分け(ローカル配送)

  1. 名前解決dig <peer> Adig -x <ip>
  2. 到達性ss -lnt | grep ':25'、相手へ telnet <host> 25(学習環境内)
  3. 認可:ログの Relay access deniedHelo command rejected をキーワードに設定見直し

チェックリスト(短く早く回す)

  • ss -lnt(待受)/firewall-cmd --list-services(開放)
  • dig A / -x(名前解決)
  • curlpostqueue -p(アプリ)
  • journalctl -u <service>(ログ)

この4点セットを“呼吸するように”回せると、
つまずきは 「怖い」→「手順通りに直せる」 に変わります。

LinuCとの関係(レベル2のサーバー領域に効く)

この教材は、LinuC レベル2(201/202)のうち、サーバーサービス系の出題領域を手を動かしながら固めるのに向いています。

LinuCとはLinux技術者認定のことです。LinuCについての範囲や学習方法などはこちらの記事でまとめています → LinuC

直前の“問題演習書”ではありませんが、実機で動かした経験があると設問の意図が読みやすくなります。

章 → 出題領域の対応イメージ

教科書の章関連するLinuC領域(例)学べる/確認できるポイント
第2章 VM準備仮想化の基礎・検証環境受験期の“安全な実験場”を用意する手順
第3章 OS導入・初期設定システム初期化・パッケージ管理dnf更新、sshd、一般ユーザー+sudo運用
第4章 WebサーバーWebサービス(Apache/Nginx)インストール→起動/自動起動→仮想ホスト→ログ読解
第5章 DNSサーバーDNS(権威/再帰・ゾーン設計)正引き/逆引き、SOA/NS、named-check*dig検証
第6章 メールサーバーメール(MTA/MDA・配送経路)Postfix基礎、エイリアス、キュー、maillog読解
第7章 NW/セキュリティネットワーク・基本セキュリティss -lntfirewalld最小化、SSH到達性の確認

※ 網羅対策は問題集で補完しつつ、**“動く/動かないの境目を説明できる”**状態を目指すのがコツです。

こう効く(具体例)

  • Web
    「仮想ホストの動作条件を選べ」の設問で、ServerNameHost ヘッダの関係を自分の手で確認済みだと迷いません。
    ログ設問も、access_logerror_log読み始めの勘所が分かります。
  • DNS
    SOA/NS、A/PTR、委任の動作が**digで体感**できていると、名前解決の正誤判定やTTLの解釈問題が速くなります。
  • メール
    「配送失敗の理由を選べ」系で、Deferred の代表因(名前解決/到達性/認可)をログから切り分ける癖が役立ちます。

学習フロー(レベル2受験を前提に)

  1. この教材で“通す”体験(7〜14日)
    Web→DNS→メールの順に“立てる→叩く→ログ”を一巡
  2. 試験範囲の棚卸し
    シラバスを眺め、未学習項目に付箋(TLS設定や細かいオプション等)
  3. 問題演習でギャップ埋め
    不明点は実機で再現→ログ確認の往復で暗記を避ける
  4. 仕上げ
    「待受・FW・名前解決・アプリ・ログ」のチェック表を1枚にまとめ、口頭で説明練習

合格のための使い分け

  • 基礎の語彙と操作感:『Linux標準教科書』
  • サーバー領域の実機感:本教材(本記事)
  • 運用・初動対応の型:『Linuxシステム管理標準教科書』
  • 出題網羅と直前演習:問題集・模試

手で通した経験 × 演習が、レベル2の理解スピードと正答率を底上げします。

他教材との使い分け(入門・構築・運用)

三教材は役割がハッキリ分かれています。
イメージは 入門=触る/構築=立てる/運用=回す

役割とゴールの違い(早見表)

教材役割できるようになること向いている人
Linux標準教科書入門(触る)基本コマンド、vi、権限、入出力、プロセス・ネットワークの超基礎Linuxが初めて/黒画面に不安がある
Linuxサーバー構築標準教科書(本記事)構築(立てる)Web/DNS/メール を自分で構築→検証→ログを読むまず一台を通す体験がほしい
Linuxシステム管理標準教科書運用(回す)ユーザー・権限・サービス・FS・バックアップ・トラブル初動現場の“型”を身につけたい/LinuC Lv2も視野

迷ったらこの順番(王道ルート)

  1. Linux標準(2週間)
  2. サーバー構築(2週間)
  3. システム管理(2〜3週間)

基礎の語彙と手の感覚サービスを立てる体験回し続ける型、の順で迷いなく積み上がる導線です。

動機優先ショートカット

  • まず“動くサイト”を出したい
    → サーバー構築 →(必要に応じて)標準で基礎補完 → システム管理
  • 既存サーバーの保守を任された
    → 標準(速習) → システム管理 → サーバー構築(不足分だけ)

「成果先行」でやると成功体験が早く得られ、学習が続きます。
ただし基礎の抜けは標準で都度埋め戻しましょう。

併用のコツ(往復学習)

  • 標準で覚えた用語を、構築の実習で**“手の記憶”**に変換
  • 構築で起きた不具合を、システム管理の切り分け・ログ読解で解決
  • もう一度構築に戻り、再現→復旧を短時間で回す

この往復で、分かる→できる→直せるに進化します。

目的別レコメンド

  • 転職・現場配属が近い:標準(速習)→ サーバー構築(Web/DNS優先)→ システム管理(ログ・初動)
  • LinuCレベル1から着手:標準 → 問題演習(Lv1)→ サーバー構築/システム管理で実機感を補強
  • 授業・社内読書会:標準で全員の底上げ → サーバー構築で成果発表(HTTP/DNS) → システム管理で障害対応演習

まとめ:
「触る」→「立てる」→「回す」 の三段ロケット。
本記事の教材(サーバー構築)は、その第二段として最短で“立てられる人”にしてくれます。

よくある質問(FAQ)

Q1. WSL2だけで最後まで学べますか?

基本操作とWebの最小構成まではOK。ただし DNSやメールの章はVMのほうが再現しやすいです。
おすすめは、WSL2で基礎を触る → VirtualBox+AlmaLinux 9で章を忠実に再現の二段構え。

Q2. ApacheとNginx、どちらで進めるべき?

どちらでも到達できます。最短で成果を得たいなら

  • Apache:情報量が多く、教材の手順に沿わせやすい
  • Nginx:設定がシンプルで高パフォーマンス
    まずは片方で“200 OK”まで通し、慣れてからもう一方を試すのが効率的。

Q3. 家のネットワークで外部公開しても大丈夫?

学習段階では外部公開は非推奨。まずは NAT+ポートフォワード同一LAN内だけで検証してください。
公開したい場合はFW設定・パッチ適用・不要ポート遮断・ログ監視を徹底のうえ、踏み台化のリスクを理解してから。

Q4. AlmaLinuxでなくても学べますか?

学べます。パッケージ管理や設定ファイルの場所がディストリによって違うため、
教材の手順をなぞりつつ、自分の環境に置き換えメモを残しましょう(dnfaptなど)。

Q5. どのくらいの時間で一通りできますか?

目安は以下。

  • 7日速習:10〜15時間(最小構成でWeb/DNS/メールを一巡)
  • 14日標準:20〜30時間(実習+ログ読解+復習)
  • 21日じっくり:30時間〜(失敗→復旧の再現練習込み)

Q6. つまずいたら何から確認すればいい?

待受 → 名前解決 → アプリ → ログの順で切り分けます。
ss -lnt(ポート)→ firewall-cmd --list-services(開放)→ dig(A/PTR)→ curl / postqueuejournalctl -u <service>4点セットが基本。

Q7. 社内読書会や授業で使えますか?

CC BY-NC-ND 4.0なので、非営利の範囲なら利用・配布OK(改変不可)。
配布時は出典表記を忘れずに。進行は「章前後でスナップショット」「成功例の通し発表」が効果的です。

Q8. LinuCの勉強にも役立ちますか?

レベル2(201/202)のサーバー領域の理解が深まります。
ただし試験対策本ではないため、問題集・模試で網羅と直前調整を行ってください。

Q9. 学習ログはどう残すと良い?

script -a session.log で作業を丸ごと録画、設定はバックアップ→差分(diff -u、章ごとにGitでコミット
何をして/どう壊れて/どう直したか」を1行で残すだけでも再現性が跳ね上がります。

参考リンク

まとめ(次のアクション)

  1. 教材を入手:公式ページから PDF/EPUB をダウンロード
  2. 環境を用意:VirtualBox+AlmaLinux 9(初期化後にスナップショット
  3. Web → DNS → メール の順で最小構成を“通す”
  4. 検証まで一体運用curldigpostqueueログ を必ず見る
  5. 学習ログを残す:実行コマンド・エラー・直し方を1行でも記録
  6. 余力が出たら 7日/14日プラン を回し、再現→復旧の練習で定着
  7. 次の一歩:目的に合わせて 標準(基礎)/システム管理(運用) に進む

“立てる→叩く→ログを読む” を習慣化できれば、
サーバー構築は怖さよりも楽しさが勝ってきます。
今日から、一台めを通していきましょう。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする