1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ProxmoxでVMを作成するときに何気なく指定している「あの」設定。危険です。

1
Last updated at Posted at 2026-04-27

あの設定、毎回何となく選んでいませんか?

Proxmoxで新しいVMを作成するとき、ネットワークの設定画面でこんな項目が出てきます。

Bridge: vmbr0

特に変える理由も思い浮かばないので、そのままNextを押す。
ほとんどの人がそうしています。筆者もそうしていました。
でも、この「そのまま」が積み重なると、気づかないうちに危険な構成が出来上がっています。


vmbr0って何をしているのか

vmbr0はProxmoxがインストール時に自動で作成するLinux Bridgeです。

物理的なスイッチに例えると分かりやすいです。スイッチにケーブルを挿すと同じネットワークに繋がるように、vmbr0に接続したVMは全て同じネットワークに繋がります。

vmbr0(スイッチのイメージ)
├── VM-A(Webサーバー)
├── VM-B(データベース)
├── VM-C(開発環境)
└── Proxmoxホスト自身の管理画面(8006番ポート)

ここで少し考えてみてください。

全部同じスイッチに繋がっているということは、全部が同じネットワークにいるということです。


「同じネットワーク」だと何が起きるか

普段使いでは何も問題ありません。VMからVMへのアクセスも、ホストの管理画面へのアクセスも、普通に動きます。

問題が起きるのは、この中の1台をインターネットに公開したときです。

例えばVM-A(Webサーバー)を外部に公開したとします。そのWebアプリに脆弱性があり、何者かにそのVMの中に入られてしまったとします。

入られた後、攻撃者は同じネットワーク上にいる他のホストを探し始めます。例えばLinuxではip nコマンドで簡単に表示できます。

VM-Aの中から見えるもの:
├── VM-B(データベース)→ 見える
├── VM-C(開発環境)  → 見える
└── Proxmox管理画面  → 見える ← ここが特にまずい

Webサーバーを1台公開しただけのつもりが、Proxmox自体の管理画面まで同じネットワークに晒されているわけです。

Proxmoxの管理画面を乗っ取られると、その上で動いている全てのVMを操作できます。つまり影響範囲は「そのWebサーバー1台」では済まなくなります。

それこそランサムウェアで攻撃されたら、全VM人質対象となることでしょう。このような場合、被害範囲の局所化は非常に重要になります。

上記例ではProxmoxホスト上のVMだけ記載していますが、実際にはvmbr0と同じネットワークに居る全ての他の機器も丸見えとなります。


「じゃあVLANで分ければいい?」

「VLANで分ければいいのでは」という話になりがちですが、スイッチの設定とかトランクポートとか、急に難しい話になります。「そんな難しいのは嫌だ、もっと簡単に分けられないの?」という人、安心してください。あります。

「じゃあ脆弱性試験しておけばいい?」

商用Webサイトでは当然必要です。ただ、開発環境で毎回そこまで実施するのは現実的ではありません。


Proxmoxに最初から入っている解決策

実はProxmox 8.x以降には、この問題を解決する機能が標準搭載されています。**SDN(Software Defined Network)**です。

SDNのVXLAN Zoneを使うと、vmbr0の隣に独立したL2セグメント(VNet)を追加できます。
シングルノード運用の場合はSimple Zoneでも、別のLinux Bridgeでも構いません。

vnetpub(公開VM専用)
└── VM-A(Webサーバー・外部公開)

vnetdev(開発・内部用)
├── VM-B(データベース)
└── VM-C(開発環境)

vmbr0(管理用)
└── Proxmoxホスト管理画面

これでVM-Aが侵害されても、適切にVNet間通信を遮断しておけば、vnetpubの外へ横展開しにくくなります。データベースも、開発環境も、Proxmoxの管理画面も、別のネットワークにいるので探索できません。

重要なポイント

  • 追加のスイッチや機器は不要。Proxmoxホスト1台で完結する
  • 一度VNetを作っておけば、VM作成時にBridgeの代わりにVNetを選ぶだけ。設定の手間はほぼ変わらない
  • VM内からネットワーク設定を変更しても隔離は崩れない。ホスト側のカーネルレベルで維持される
  • クラスター構成でも、VXLAN ZoneはノードをまたいでVNetを延伸できる
  • Bridge間またはVNet間の通信は、Proxmox Firewallで遮断ルールを設定しておく必要がある

既にvmbr0にVMを並べてしまっている場合は?

大丈夫です。VNetは既存のvmbr0構成の横に追加していく形で作れます。既存VMを止めずに、新しく作るVMから順番にVNetに移していけばOKです。今からでも遅くはありません。
既存VMも、Bridge設定をVNetに変更したうえで一度停止→起動すれば移行できます。


まとめ

項目 vmbr0フラット SDN(VXLAN Zone)
VM間の通信 デフォルトで可能 VNet間はホストFWで遮断
管理プレーンの分離 されていない vmbr0を管理専用に分離可能
1台侵害されたときの影響範囲 全VM + 管理画面 該当VNetのみ
追加ネットワーク機器 不要 不要
VM作成時の操作 Bridgeをvmbr0のまま作成 事前に作成したVNetを選ぶ

vmbr0のままでも動きます。でも「動く」と「安全に動かせる」は別の話です。

次にVMを作るとき、Bridge欄をもう一度見てみてください。


補足:考え方はシンプルでも、実際の設計は慎重に

ここまでの説明では簡単に見えますが、実際に安全な分離環境を作るには、VNetの設計、VXLAN GWの設計、IPアドレス設計、Firewallルール、管理プレーンへの到達制御、VPN経路、戻り経路などを慎重に確認する必要があります。

特に複数プロジェクト・複数メンバー・クラスタ構成では、「本当に意図した範囲だけ通信できるか」の検証も含めて、かなり神経を使う作業になります。


参考:この構成を自動化するツール

VNet・ファイアウォールルール・プロジェクト専用VPNをまとめて自動構築するツールとして MSL Setup を公開しています。

  • プロジェクト数分のVNet・ファイアウォールルールを自動生成
  • プロジェクトごとのPritunl VPNサーバーを自動プロビジョニング
  • スイッチなどの追加ネットワーク機器は不要
  • 約20分でマルチテナント対応のProxmox環境を構築可能

👉 zelogx.com
👉 GitHub(無料版)
👉 Proxmox マルチテナント構成の詳細手順
👉 まず試してみたい方はこちら

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?