Instiq
第5章 · セキュリティ·v1.0.0·更新 2026/7/6·読了目安 約11分

変更要約: 初版(主題1.10・副主題1.10.1〜1.10.4に対応)

5.2ホストのセキュリティ設定

この節の要点

ホストの攻撃面を減らす設定を学びます。シャドウパスワードの役割と/etc/nologin によるログイン抑止、使用していないネットワークサービスの停止systemctl/etc/init.d/chkconfigservice、レガシーのinetdxinetd)、ファイアウォールの概要(iptablesfirewalld)を押さえます。

ホスト防御の第一原則は「動いていないものは攻撃できない」です。不要なサービスを止めて攻撃面を減らし、残った入口をファイアウォールで絞る——この2段構えの基礎を固めます。

5.2.1不要サービスの停止とログイン抑止

  • 現行=systemctlsystemctl stop(今止める)+ systemctl disable(次回起動から無効) の2段。systemctl list-unit-files --state=enabled で有効サービスを棚卸し。
  • レガシー=service start/stop・chkconfig(RHEL 系の自動起動管理)・/etc/init.d/ のスクリプト。古い環境の問題ではこちらが正解になる
  • inetdxinetd要求が来たときだけサービスを起動するスーパーサーバー(設定は /etc/inetd.conf/etc/xinetd.d/)。現代では systemd ソケットに置き換わったが、無効化すべきレガシー入口として出題される。
  • シャドウパスワード=ハッシュを /etc/shadow(root のみ可読)へ分離する仕組み(3.1 の復習)。/etc/nologinこのファイルが存在すると root 以外のログインを拒否(メンテナンス時の即席ゲート・中身は表示されるメッセージ)。

5.2.2ファイアウォールの概要

  • iptables=カーネルのパケットフィルタ(netfilter)をルールチェーン(INPUT/OUTPUT/FORWARD)で直接制御する伝統ツール。
  • firewalldゾーン(public・internal 等)とサービス名で管理する現行の高水準ツール(firewall-cmd --add-service=https --permanent--reload)。--permanent を付けないと再起動で消える
  • 基本方針=既定拒否+必要な口だけ許可(デフォルト拒否)。1.10.1 の「内 ss・外 nmap」の差分確認とセットで運用する。
試験ポイント

「stop(今)と disable(次回以降)は別物=恒久停止は両方」「/etc/nologin が存在すると一般ユーザーはログイン不可」「firewalld=ゾーンとサービス名・--permanent 必須」「xinetd=オンデマンドのスーパーサーバー(レガシー)」 が定番です。「iptables と firewalld の同時併用はしない」という運用注意も選択肢に出ます。

新規サーバーの堅牢化(ハードニング)を手順化しましょう。
systemctl list-unit-files --state=enabled有効サービスを棚卸し、要件に無いもの(例:使わない cups・avahi)を systemctl stop X && systemctl disable X現在と将来の両方止めます。
ss -tlnp で残った LISTEN を確認し、想定リスト(22/80/443 など)と一致するまで
①を繰り返します。
firewalld で既定ゾーンを絞り、firewall-cmd --add-service=ssh --add-service=https --permanent && firewall-cmd --reload のように必要な口だけ開けます——ここで --permanent を忘れると「再起動したら閉じていた/開いていた」事故になります。
④計画メンテナンスの際は echo "メンテナンス中 03:00 まで" > /etc/nologin を置けば、root 以外の新規ログインを一時停止でき、終わったら削除するだけです。試験では「サービスを止めたのに再起動後に復活した」→ disable を忘れている、が最頻出のシナリオです。

目的現行の手段レガシー/補足
サービスを止める(今)systemctl stopservice X stop
自動起動を無効化systemctl disablechkconfig X off
ファイアウォール管理firewalld(ゾーン・--permanent)iptables(チェーン直接)
一般ログインの一時停止/etc/nologin を作成中身が表示メッセージに
注意

ひっかけ: 「systemctl stop すればサービスは再起動後も止まったまま」は誤りです。stop は現在のみで、enabled のままなら再起動で復活します(恒久停止は disable も)。また「firewall-cmd --add-service=https だけで設定は永続化される」も誤り=--permanent+--reload が要ります。「/etc/nologin は root のログインも拒否する」も誤り(root は入れる=復旧手段を残す設計)です。

不要サービス停止→ファイアウォール→nologin という堅牢化手順の図。
動いていない物は攻撃できない

5.2.3この節のまとめ

  • 堅牢化=棚卸し→stop+disable→ss で確認→firewalld で既定拒否・必要な口だけ(--permanent)
  • nologin=存在すれば一般ログイン拒否(rootは可)・レガシー=service/chkconfig/init.d・xinetd はオンデマンド起動

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 使用していない cups サービスを、今すぐ止めたうえで再起動後も起動しないようにしたい。適切な手順は?

Q2. メンテナンスのため、root 以外のユーザーの新規ログインを一時的に拒否したい。最も簡単な方法は?

Q3. firewalld 環境で HTTPS の通信を恒久的に許可したい。正しいコマンドの組み合わせは?

理解度を確認第5章「セキュリティ」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。