【Synology NAS】ポート開放不要・QuickConnect不使用。TailscaleとWireGuardを軸にした要塞化ファイアウォール設計

自宅のSynology NASを運用するにあたり、インターネットからのブルートフォース攻撃や不要なログノイズに悩まされないためのファイアウォール構成と、それに伴うセキュリティ上の注意点の備忘録。

以前にファイアウォールの記事も書いたのですが、こちらは方向性が違う記事になります。

こっちの記事はLANとVPN以外は遮断という、かなり強固なパターンです。

この強固なファイアウォールのSynologyは、Webページなどを利用しないSynologyを使う人向きな設定です。

要するにこの記事を公開しているSynologyとは別に、何台かのSynologyを持っていまして、その中で、内向き(LAN)のサービスだけなんだけど、外からもLAN同様にあれこれしたい。と言う人向きです。

なので、このブログを公開しているSynologyDS1621+とは別のSynologyDS720+の設定の話しです。

1. はじめに

インターネットに接続するサーバやNASを運用していると、ログセンターに記録される不審なログイン試行(ブルートフォース攻撃)の多さに気づくと思います。

世間の初心者向け解説記事では「必要なポートを開け、国別フィルタ(GeoIP)で守る」「QuickConnectで手軽につなぐ」といったアプローチがよく紹介されていますよね。

しかし、そもそもNASの管理画面(DSM)や各種サービスを、不特定多数が往来するインターネット側に直接露出させる必要はあるのでしょうか?

自分の考えは、NO、露出しない、全閉、閉じまくる。としました。

QuickConnectのようなリレーサービスに依存する必要もないし、スマホアプリの互換性のためにDSMのデフォルトポート(5000/5001)をルーター経由で外に開けるなどもってのほかですね。

わざわざ、攻撃するところをこちらで用意する必要は無い。という考えです。

外出先からのアクセスにはTailscaleやWireGuardといったセキュアなVPN・メッシュネットワークを使えばよく、管理画面自体を外に晒すメリットはゼロである。という、かなり上から目線です。ww

そこで本記事では、「QuickConnectは一切使わず、インターネット側からの直接アクセス経路を完全に断ち、信頼されたVPNとローカルLANのみをホワイトリストで許可する」という、極限まで無駄を削ぎ落としたファイアウォール設計についてまとめてみました。

まぁ、昨今のセキュリティに関する問題に嫌になったので、自分なりに考えた結果と言う感じです。

ポートは開いてないよ。って図

ポートが空いてるからやられるので、閉じて使うにはどうすりゃいいんだ。という考えです。

2. ファイアウォール設定のポリシー

設計方針は極めてシンプル。

クイックコネクトは使わんぜ。っていう図
  • 外部に向けてポートを開けない(QuickConnectも不使用)
  • 信頼されたネットワークからの通信のみを許可する
    • 自宅ローカルLANからの通信
    • Tailscaleの通信網
    • 自身で制御しているWireGuardのVPNセグメント
  • 上記に合致しないすべての通信を遮断する

インターネット側に対してポートを開ける必要すらないため、不正アクセスの試行自体を物理的に発生させない環境を作る。

3. ファイアウォールの具体的なルール構成

DSMの [コントロールパネル] > [セキュリティ] > [ファイアウォール] から、以下の順序(上から評価)で規則を適用する。

これだけでいいのだ。の図
  1. Tailscale / VMM ネットワークからの通信 ➔ 許可
  2. 自宅LAN(192.168.0.0/24 等)からの通信 ➔ 許可
  3. WireGuard VPNセグメント(10.6.x.x 等)からの通信 ➔ 許可
  4. すべて ➔ 拒否

ファイアウォールは上から順に評価されるため、最後に「すべて拒否」を置くことで、許可したネットワーク以外のアクセスを完全にシャットアウトする。外部向けにサービスを一切公開していなければ、これだけで十分すぎるほどの堅牢性を確保できる。

4. DSM側の多層防御(アカウント保護)

ネットワークの門番を固めたら、NAS内部の認証レイヤーも締めておく。自分以外のユーザーがいないプライベート環境であっても、最低限以下の設定は入れておきたい。

過信しないで、2FAは必須としている。の図
  • 管理者アカウントへの2要素認証(2FA)の強制
    • 万が一のパスワード漏洩に備え、TOTP認証アプリによる2要素認証を必須化する。
ゆっくりクラックに対応してる。の図
  • 自動ブロックのシビアなチューニング
    • 総当たり攻撃対策として、自動ブロックの条件を以下のようにタイトに設定する。
      • ログイン試行回数:3 回
      • 期間(秒):86400 秒(24時間)
    • 短時間の連続失敗に対して即座にIP単位でブロックし、アタッカーの試行を完全に弾く。

5. 【重要】VPN(Tailscale / WireGuard)運用時の注意点

「外にポートを開けない=絶対に安全」とは言い切れない点に注意が必要。

今回の構成のキモはTailscaleやWireGuardといったVPN/メッシュネットワークの存在だが、逆に言えば「そのVPN側の認証が突破されたり、アカウントが乗っ取られたりした瞬間、要塞の門が完全に開く」ことを意味している。

  • Tailscaleアカウントの管理
    • 所属するTailscaleアカウント(Google/GitHub等のSSO)に多要素認証(2FA)を必ず有効化し、不要なデバイスがネットワークに参加していないか定期的に監査する。
  • WireGuardの鍵管理
    • 秘密鍵(Private Key)やピアの設定ファイルの管理を誤ると、外部から内部ネットワークへ不正侵入されるリスクがある。鍵のローテーションやアクセス権限の管理は厳重に行う必要がある。

VPNという「信頼された通路」自体が脆弱になっては元も子もないため、インフラの根幹であるVPNアカウントのセキュリティ管理こそ、最も気を引き締めるべきポイントといえる。

6. まとめ

用途が自分専用のプライベート環境であれば、無理にポートを開けて国別フィルタで頑張る必要はない。

ましてや、よく分からないリレーサービス(QuickConnect)や露出したDSMポートに怯えるくらいなら、「最初から外にポートを開けず、TailscaleやWireGuardなどのVPNで包み込む」ほうが、ログのノイズやリスクを根本から排除できるため圧倒的にスマートだ。

ただし、その安全神話の根幹であるVPN側の認証管理を疎かにすれば意味がない。

適切なVPNの管理とファイアウォールによる多層防御を組み合わせ、真に堅牢なプライベート環境を構築しよう。

という、感じで極端な例かもしれないですが、今風な設定になったのでは?と思います。

注意する点が、VPNの認証管理だけになった。という感じでしょうか。

この設定に、最終的にはVLANを設定するのが、当面の目標です。

そこまですれば、ほぼ、他への影響が無くなる、他からの影響もなくなる。ように思いますね。

あと、この内向き(LAN)での使用しているパッケージを載せておきますね。

ホント、さっぱりしてる。

Synology Drive Server、VMM、Container Manager、なんかは設定の時にLANで使う設定で行うように注意してくださいね。

QuickConnectが載ってますが、使ってはいないという感じです。

では、こんなストイックな設定の記事にお越しくださって、なおかつ最後まで読んでくださりありがとうございます。