Secure Steady
サーバーハードニング - サーバーハードニング の使い方・オプション・サンプル

サーバーハードニング - サーバーハードニング

サーバーの攻撃対象領域を最小化するセキュリティ強化プロセス。不要なサービスの無効化、パッチ管理、アクセス制御の適切な設定を含む。

概念図

サーバーハードニング diagram

実例

不要なサービスを無効化

bash
sudo systemctl disable bluetooth
sudo systemctl disable cups

SSH のルートログインを禁止

bash
sudo chmod 600 /etc/ssh/sshd_config
sudo sed -i "s/#PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config

ハードニングの主要な対策

サーバーハードニングは攻撃対象領域(Attack Surface)を最小化することが目的です。

  • 不要なサービスの無効化: インストール時にデフォルトで有効になっているサービスを精査し、不要なものを停止・無効化する
  • パッチ管理: OS やミドルウェアのセキュリティパッチを迅速に適用する。自動更新の設定を検討する
  • ユーザー管理: 不要なアカウントを削除し、root の直接ログインを禁止する。sudo を適切に設定する
  • ファイルシステムの保護: 重要なファイルのパーミッションを制限し、SUID/SGID ビットが不要なファイルから除去する
  • カーネルパラメータの調整: sysctl で IP フォワーディングの無効化やSYN Cookie の有効化など

ハードニングチェックリスト

  • SSH: パスワード認証を無効にし、鍵認証のみ許可する。ポート番号を変更する
  • ファイアウォール: デフォルト拒否ポリシーを設定し、必要なポートのみ開放する
  • SELinux / AppArmor: 強制アクセス制御(MAC)を有効にする
  • 自動セキュリティ更新: unattended-upgrades(Debian/Ubuntu)等を設定する
  • CIS Benchmark: Center for Internet Security のベンチマークに沿って設定を検証する
  • 監査ログ: auditd を設定し、重要なファイルやコマンドの実行を記録する

関連トピック