1. 基本コンセプト:二重防御(物理ファイアウォール + 仮想オーバーレイ)
本設計の最大の強みは、「FortiGate(物理)とHeadscale(仮想)による二重の防御壁」です。
FortiGate(境界ファイアウォール)
DMZ(172.16.1.0/24)からSERVER(192.168.2.0/24)への直接通信を100%拒否します。NTPやDNSのためといった例外的な穴あけポリシーは一切作りません。
Headscale(タグベースACL)
仮想的な暗号化トンネルである「Tailscale(Headscale)」を使用し、厳格な「タグ(Tag)ルール」でポリシー制御された通信だけを通過させます。
2. システム構成図
自宅インフラ全体は DMZ・SERVER・HOME の3セグメントで構成されています。AlmaLinux 9 は SERVER セグメント(192.168.2.0/24)で内部統合管理・可観測性基盤の司令塔を担っています。
172.16.1.0/24
192.168.2.0/24
192.168.1.0/24
AlmaLinux 9 ホスト(192.168.2.3)
Podman Macvlan による統合管理基盤Samba(192.168.2.3:445)
ホストOSのネットワークをそのまま使うコンテナ(Network=host)としてSMB共有を稼働。Headscale VPN経由でauthentik認証済み利用者による外部からの遠隔操作も達成済み。
macv0(192.168.2.99)
ホスト⇔コンテナ間通信用の仮想インターフェース
※ 本図は2026年8月時点の現行構成です。DMZ・HOMEの詳細はトップページの統合システム構成図を参照してください。
3. ネットワークアドレス・IP採番表
物理ホスト(2.3)のLANインターフェースから、Podmanの「Macvlan」機能を用いて、各コンテナに物理LANと同じセグメントのIPアドレスを直接割り振ります。
| IPアドレス | コンポーネント名 | 役割 / 使用ツール | 稼働形態 |
|---|---|---|---|
| 192.168.2.3 | mgmt-server (Host) | Samba(ファイル共有)/ Ansible | 物理ホストOS |
| 192.168.2.99 | macv0 (Host Virtual IP) | ホスト-コンテナ間通信用の仮想IP | 物理ホストOS(仮想) |
| 192.168.2.11 | Identity - DNS/NTP | キャッシュDNS(Unbound)/ 時刻(Chrony) | Macvlanコンテナ |
| 192.168.2.12 | Management - Monitoring | メトリクス収集(Prometheus/Grafana) | Macvlanコンテナ |
| 192.168.2.13 | Identity - Headscale | ゼロトラスト・コントロール(Headscale) | Macvlanコンテナ |
| 192.168.2.14 | Management - Syslog | ログ中継(rsyslog / Promtail) | Macvlanコンテナ |
| 192.168.2.15 | Management - Loki | ログ集約・検索(Loki) | Macvlanコンテナ |
| 192.168.2.16 | Identity - IDP | シングルサインオン/多要素認証(Authentik) | Macvlanコンテナ |
| 192.168.2.17 | Future - OpenZiti | (将来構想)サービス単位ZTNA(OpenZiti) | Macvlanコンテナ |
設計判断メモ
「DMZからSERVERへの直接の穴あけをしない」という境界原則を守るため、DMZのサーバー(172.16.1.x)はSERVER内の1.11相当(Unbound)には一切依存させません。DMZは外部の公開NTP/DNSを直接参照し、SERVER内のDNS/NTPは「SERVERセグメント専用」として構築します。
4. 構築フェーズ一覧
各フェーズの詳細な構築手順は、それぞれ専用ページにまとめています。ここでは全体の流れをご案内します。(AlmaLinux 9 一覧ページの「Zero Trust構築ロードマップ」と同じ項目です。どちらからでも同じ詳細ページへアクセスできます。)
インフラ基盤とホスト-コンテナ間通信
Macvlanでホストとコンテナが直接通信できない問題を解消(192.168.2.99 / macv0)
内部アイデンティティ(DNS / NTP)の確立
SERVER内専用のキャッシュDNS(Unbound)と時刻同期(Chrony)を構築(192.168.2.11)
Headscale + Caddy + Authentik(v5決定版)
PostgreSQL版Headscale・DMZ配置のCaddy・OIDC/MFA認証(Authentik)を統合構築
Phase 3 構築トラブルシューティング完全記録
Headscale構築時に実際に発生した4つの問題・原因・解決策の記録
ファイル共有と権限管理(Samba & SELinux)
物理ホスト上でSambaを直接運用(192.168.2.3 ホストOS)。LAN内DoD達成済み、Headscale+authentik連携による外部からの遠隔操作も確認済み
可視化とオブザーバビリティ(Prometheus / Grafana / Loki)
サーバーの健康状態とログを一元管理・可視化
Ansibleによる構築の自動化(IaC)
コンテナ・サーバー群を1台のコマンドラインから管理
5. 学習アドバイス
本ガイドで提示した構成は、すべてのコンポーネントがオープンソースかつ、企業の要件定義に耐えうる最新の構成(FortiGate、WireGuard技術、Loki、Ansible Roles、SELinuxポリシー)で組み立てられています。
まずは「Phase 1 の Macvlan制限の回避設定」を正確に行い、ホスト(2.3)と各コンテナの間で自由に行き来できる(AnsibleのSSHが届く)ネットワーク基盤を作ることが、最初の重要な関門となります。これさえ成功すれば、その後のコンテナ構築はすべて順理に展開可能です。