shintaro.info infra

Decision Log

作成: Shintaro / Acia
対象OS: Debian 13 (Sakura VPS)


目的

本ドキュメントは、VPS 上で Web / Mail サーバを構築・運用する際の「主要な判断・方針決定」を時系列で記録する。
技術的な手順や設定値そのものではなく、なぜその選択をしたのか(背景・意図) を明確化し、
将来の再構築・移行・トラブルシュートにおける再現性と透明性を高めることを目的とする。


記載ルール

  • 対象: 設定変更・採用技術・運用方針・ドキュメント構成など
  • 形式: 日付/対象/決定内容/理由・背景
  • 更新: 変更ごとに追記(古い記録は削除しない)
  • 優先順位: 手順よりも “なぜそうしたか” の記録を重視する

ログ一覧

日付対象決定内容理由・背景
2025-09-30ドキュメント構成00_top.md を起点に、Markdownベースの Runbook として管理開始VPS 構築の再現性とメンテナンス性を高めるため
2025-09-30Git 運用方針Git リポジトリを採用、main ブランチ保護を設定バージョン管理の一元化と安全性の確保
2025-10-05ドキュメント運用各章を構築順に並べ、分類ブロックを廃止実際の作業手順に沿った再現性を重視
2025-10-07ドキュメント構成01_index.md 初版作成、相対リンク方式を採用GitHub 上での参照性向上
2025-10-08初期設定ドキュメント02_initial-setup.md のユーザ名を抽象化公開性・汎用性と一貫性向上
2025-10-08ファイアウォール設定初期構築では SSH のみ許可に統一最小構成原則と安全性確保
2025-10-27SSH 設定方針(※後に撤回)/etc/ssh/sshd_config の直接編集方式を一時採用設定簡略化を試みたが、更新競合の懸念が判明
2025-10-27Fail2ban 導入[sshd] ジェイルを有効化(backend=systemd)SSH 総当たり攻撃に対する早期防御
2025-10-28Postfix 構成非SSL → TLS → SASL の段階構築方式に統一教材性・拡張性・移行性の両立
2025-10-28Dovecot 構成IMAPS+SASL 連携、Maildir 運用を採用安定性と互換性向上
2025-10-28メール認証方式SPF/DKIM/DMARC を段階導入(初期は p=none柔軟性と検証性を確保しつつ本番移行しやすくするため
2025-10-28SSH 設定方針(最終)sshd_config.d/override.conf 分離方式に確定アップデート時の競合回避・保守性向上・テンプレ展開のしやすさを優先
2025-11-21Dovecot メール保存方式Maildir に統一し mail_driver = maildir / mail_path = ~/Maildir を明示設定Debian 13 デフォルト mbox 設定との不整合により POP3S 受信エラーが発生したため、Postfix の Maildir 配送と完全整合させる方針に確定
2025-11-21UFW 方針Postfix/Dovecot 用ポート 25/465/587/993/995 を、UFW アプリ名プロファイル経由で正式開放サービス完成後に必要最小限のメール関連ポートのみを開放し、運用ミスと誤開放リスクを低減するため
2025-11-21PTR / 逆引き DNSPTR(逆引きホスト名)は当面さくらデフォルトのままとし、「必須ではなく推奨」扱いに整理現状の PTR でも送信成功性に致命的な問題がなく、まず SPF/DKIM/DMARC の整備を優先する方針としたため
2025-11-21メールサービス公開判定MXToolbox / open relay チェック / ImmuniWeb TLS テストの結果を踏まえ、インターネット公開 OK と判断不正中継なし・TLS1.2/1.3 正常・安全 Cipher のみ有効であり、現状構成で実運用に耐えることを確認したため
2025-11-27DMARC ポリシーSPF/DKIM/DMARC 全て pass を確認し、DMARCポリシーを p=quarantine に移行Gmail からのレポートにより正当メールがすべて pass していることを確認したため。段階導入の方針に沿い、p=none からのポリシー強化を実施

補足記録(詳細)

2025-10-08: UFW ドキュメント調整

  • ファイル名: 03_ufw.md
  • 主な変更点:
  • タイトルを「UFW (ファイアウォール)」に統一し、index.md との整合性を確保
  • 初期構築時は SSH のみ許可とし、Apache 関連手順を削除
  • 「将来ポート(計画)」を「今後開放予定のポート一覧」に変更し、開放タイミング・目的を明確化
  • 運用ノートに Fail2ban 連携や管理コマンド補足を追加
  • 決定理由:
  • ドキュメントを「初期構築」と「将来拡張」の 2 段階で整理するため
  • 将来的なサービス追加時に参照しやすくするため
  • 読者が意図を即時把握できる記述構成を重視

2025-10-27: SSH ドキュメント更新

  • ファイル名: 04_sshd.md
  • 主な変更点:
  • 設定を /etc/ssh/sshd_config.d/override.conf に分離
  • /etc/ssh/sshd_config 本体には手を加えない
  • 実行時構成確認は sshd -T にて実施
  • PasswordAuthentication no など既定値でも明示記述
  • 緊急対応手順では override.conf のみを編集対象とする
  • 決定理由:
  • 直接編集方式では dpkgopenssh-server 更新時に差分競合が発生するリスクがある
  • 分離構成は保守性・ドキュメント整合性が高く、再構築時に明快
  • Debian 13 では /etc/ssh/sshd_config.d/*.conf が既定で読み込まれるため、追加設定だけで完結する
  • 組織展開や VM 配布時のテンプレートとしても汎用性が高い

2025-10-27: Fail2ban 運用構成の確立

  • ファイル名: 05_fail2ban.md
  • 主な設定:
  • [sshd] ジェイルを有効化(enabled = true
  • backend = systemd, bantime = 1h, findtime = 10m, maxretry = 5
  • /var/log/auth.log を補助的に利用
  • 決定理由:
  • 総当たり攻撃が日常的に発生しており、自動遮断が有効に機能している
  • systemd バックエンドは Debian 13 標準構成として最も安定
  • Postfix/Dovecot 導入時の拡張(postfix / dovecot ジェイル追加)も容易であるため、基盤として先行適用

2025-10-28: Postfix / Dovecot / 認証設計の統合調整

  • ファイル名: 07_postfix.md / 08_dovecot.md / 09_mail-auth.md
  • 主な調整:
  • Postfix/Dovecot を段階構築形式に統一(非SSL → TLS/IMAPS → SASL)
  • 認証メール転送先に <MAIN_USER> 抽象記法を導入し、実運用への再利用性を確保
  • SPF/DKIM/DMARC については p=none 開始 → 段階強化という展開方針を明示
  • OpenDKIM を milter 連携とし、Postfix main.cf の milter_protocol = 2 を明示的に指定
  • 決定理由:
  • 初学者・中級者でも段階的に構築できる設計とし、教材性と拡張性の両立を図るため
  • TLS 証明書は Apache・Postfix・Dovecot 間で共用し、Let’s Encrypt 管理を一元化
  • メール認証技術の導入によるスパム・なりすまし対策の強化を意図

2025-11-21: Maildir 統一方針(重要)

  • ファイル名: 08_dovecot.md / 07_postfix.md
  • 主な内容:
  • Debian 13 の 10-mail.conf デフォルトが mail_driver = mbox であることを確認
  • Postfix 側の home_mailbox = Maildir/ と不整合があり、Sylpheed による POP3S 受信で「INBOX autocreate: Permission denied」が発生
  • 10-mail.conf の Debian defaults セクションを mail_driver = maildir / mail_path = %{home}/Maildir に変更し、mail_inbox_path をコメントアウトする設計に確定
  • 決定理由:
  • Postfix と Dovecot 間で Maildir の解釈が分かれていると、トラブルシュートが難しくなる
  • Maildir への統一により、将来のユーザ追加やバックアップ・移行手順が単純化される

2025-11-21: メールサービス公開テスト完了

  • 対象: メールサービス全体(Postfix / Dovecot / TLS / UFW / パケットフィルタ)
  • 実施した主な外部テスト:
  • MXToolbox SMTP Test(Open Relay なし / TLS 有効 / Hostname OK)
  • check.openrelay.org による不正中継テスト(全パターン拒否)
  • ImmuniWeb による TLS1.2/1.3・Cipher・PQC レポート(メール用途として十分な安全性を確認)
  • 決定理由:
  • 不正中継が完全にブロックされていること
  • SMTPS/Submission/IMAPS/POP3S で Let’s Encrypt 証明書が正常に利用できること
  • TLS1.2/1.3 および Forward Secrecy 対応 Cipher のみを提供していることを確認し、現行構成でインターネット公開に耐えると判断したため

他補足

  • ここに記載のない細部(UFW の個別ルール例、Fail2ban のログ例、Postfix/Dovecot の細かいパラメータなど)は、各章のドキュメント(03_ufw.md / 05_fail2ban.md / 07_postfix.md / 08_dovecot.md / 09_mail-auth.md)側で詳細管理する。
  • Decision Log では、あくまで方針・判断理由にフォーカスし、手順そのものは重複して記載しない 方針とする。

本 Decision Log は、過去の誤った判断も含めて記録し、将来の改善に活用する。
Maintained as a public runbook.