Ryuji Goto
IT Engineer
自宅サーバーを、どこまで堅牢にできるか。
IT Engineer
自宅サーバーを、どこまで堅牢にできるか。
Raspberry Pi 5 でオンプレ Google Photo・テレビ録画・ファイル共有サービスを運用しています。外からの入口は 2 つだけ。
Web は Caddy → Authelia(パスキー)を通り、ファイル共有とルーター管理は WireGuard を通らないと到達できません。
方針は「入口を減らし、入口にはパスキー、裏口は VPN、毎晩検査する」。
ルーターが外に開けているのは HTTPS と VPN のみ。SSH は家の中と VPN からだけ、鍵認証のみ。ファイル共有は外に出していません。
すべての Web アプリはリバースプロキシ Caddy を通ります。証明書は Let's Encrypt から DNS 認証で自動取得・自動更新、HSTS 付き。公開サーバーは静的ファイルだけ。
認証は Authelia に集約。Face ID / Touch ID のパスキーで 1 タップ、パスワードだけでは何にも入れません。Immich も同じ認証を OIDC で使い、連続失敗は自動ロック。
WireGuard を端末ごとの鍵+事前共有鍵で。家の Wi-Fi では自動オフ、外では家宛ての通信だけトンネルに乗るオンデマンド接続。ファイル共有とルーター管理は VPN 経由のみ。
ufw は入る方も出る方も既定拒否で、Pi から外へは DNS・HTTP/HTTPS・NTP しか出られません(侵入後の外部通信を防ぐ)。AppArmor でプロセスとコンテナを閉じ込め、使わないカーネルモジュールとサービスは無効化。コンテナは新しい特権を取れず、Samba はゲスト禁止・ロックアウト・監査ログ。設定は CIS ベンチマーク で毎晩点検。
02:00 に HDD を丸ごとバックアップ、03:30 にコンテナを最新化、04:30 にセキュリティ監査。結果は Slack に届き、録画中は TV の更新を見送ります。
毎晩 04:30 に、設定の堅牢さ・改ざんや侵入の兆候・既知の脆弱性・マシンヘルスを別々の道具で調べ、1 枚にまとめます。結果は下に公開し、異常があれば Slack に届きます。