How Proxmox VE firewall rules limit lateral movement between guests
The Proxmox VE distributed firewall enforces traffic rules at the virtual network interface of each guest and at the host, so you can restrict which guests may reach each other even when they share a node and a bridge. A team needs this when guests of different sensitivity, such as a payment service beside a developer test VM, run on the same cluster and a compromise of one should not give an attacker a path to the others. The risk being limited is lateral movement: an intruder who controls one guest tries to reach neighboring guests, the hypervisor or management interfaces. Firewall rules reduce the paths available for that movement, but they work best alongside deliberate workload placement.
Isolating individual guests means writing rules that govern one guest's traffic, usually by naming allowed peers through security groups and IP sets. Because the policy is attached to the guest, it follows that guest when it moves to another node. Separating network segments is a different job. Guests are placed on different bridges, VLANs or software-defined network zones, so they have no Layer 2 or routed path to each other in the first place. The two controls answer different questions. Segmentation decides which networks exist, and guest rules decide which flows are allowed within and across them.
Firewall rules are one layer of a segmentation design, not the whole design. Before writing rules, decide which level each policy belongs to: datacenter rules that apply cluster-wide, host rules for node services such as management ports, and guest rules for each VM or container. Confirm in the current Proxmox VE firewall documentation how default policies at each level combine and which traffic is always permitted, because a permissive default at one level can override a restrictive rule written at another. Plan the other layers as well, including access control for the management interface, separate storage networks, logging of dropped traffic and host hardening.
Start by listing guests by sensitivity and by the flows each one needs, including backup servers, storage traffic and monitoring agents. Then decide which guests need their own network segment and which can be separated by rules alone. For each proposed rule, ask the team to name an owner, a business reason and a test that proves a blocked flow stays blocked. Run those tests from a guest that behaves as if it were compromised, not only from an administrator's workstation, and record the results. Plan for drift: rules go stale as guests are added, and a moved guest keeps its intended protection only if its security groups and IP sets stay current.
Which firewall level and object fits each isolation goal
This table maps each Proxmox VE firewall level and object to the isolation goal it serves and the main trade-off it brings. Start from the goal, then choose the narrowest scope that still keeps rules manageable. Confirm exact field names, defaults and availability for your version in the Proxmox VE administration guide before you build rules.
| Level or object | Fits when | Main trade-off |
|---|---|---|
| Datacenter rules | One policy must apply to every node and guest in the cluster, such as a default baseline or shared management access. | Consistent central control, but a broad rule affects everything and is harder to tune per workload. |
| Host (node) rules | You need to protect the hypervisor itself, such as management access to each node or host-level services. | Protects node services directly, but per-node rules can drift apart unless reviewed together. |
| Guest rules (VMs and containers) | A specific workload needs its own allow list, such as a database that accepts traffic from one application tier only. | Most precise scope, but every guest adds rules to maintain, test and review. |
| Security groups | Several guests share a role and the same rules, such as a set of web servers. | One change updates every member, so a mistake reaches all members at the same time. |
| IP sets | Many addresses or networks are referenced by several rules, such as administrator workstations or a monitoring subnet. | Membership is edited once for all rules, but the set must be kept current as addresses change. |
| Aliases | A single address or network needs a readable name so reviewers can understand rules quickly. | Improves readability, but a name can hide the underlying address if it is not documented. |
| Cluster-wide versus per-node scope | Configuration should be identical on every node, or a node has a documented reason to differ. | Cluster-wide settings replicate to all nodes, while per-node settings stay local and can intentionally or accidentally diverge. |
How datacenter, host and guest rules stack in one cluster
The first design decision is which level should own each rule, because the three levels, datacenter, host and guest, are not interchangeable. Datacenter rules apply cluster-wide and are the place for baseline policy that every node and guest should share, such as management access from approved administrator networks. Host rules are scoped to a single node and cover what that node itself exposes, including the Proxmox VE web interface and SSH. Guest rules attach to a VM or container and filter its network interfaces. Before you write any policy, confirm in the documentation for your exact Proxmox VE version how these levels are evaluated against each other and whether a lower level can override or only add to a higher one. Behavior in this area is the kind of detail that changes between releases, so do not rely on memory or on older forum posts.
Cluster configuration in Proxmox VE is held in the Proxmox Cluster File System, which replicates it to every node in real time. That replication is why a change to the datacenter firewall rules reaches all nodes without a separate push step. Host firewall configuration is different in practice: it is stored per node, so a rule added on one host stays on that host and does not appear on its peers. Guest configuration follows the guest, so it moves with the VM or container when it is migrated or recovered by high availability. For the operations team, this means shared baselines belong at datacenter level, node-specific exceptions belong at host level, and every change should be recorded with its level. Ask the vendor or your own testing to show which settings replicate and which stay local on your version.
The default policy decides what happens to traffic that no explicit rule matches, so it interacts directly with your allow rules. A default drop policy is the usual goal for microsegmentation, but it takes effect immediately and can cut off the path you use to manage the cluster. The safe sequence is to write explicit allow rules for management networks, cluster communication between nodes, and any required service traffic first, verify them, and only then change the default policy. Keep out-of-band console access to every node before you enable filtering, because a mistake at datacenter level can affect all nodes at once. Also check how the default policy applies at each level, since a default set at one level may not match the default at another. Write down the intended outcome for a sample of flows and test each one.
Verification should happen in a non-production cluster before any change reaches production. The Proxmox VE no-subscription repository is described as suited to testing and non-production use, which makes it a practical place to build a lab that mirrors your node count, network layout and management paths. Build the lab with the same rule levels you plan to use, then test allowed and denied flows from each network segment, including traffic between guests on the same node and across nodes. Record which rules matched, confirm that a change made at datacenter level appears on every node, and confirm that host and guest exceptions behave as intended after a migration. Only after these checks should you decide on the production rollout order and the rollback steps for each level.
Setting up the Proxmox VE firewall from baseline to tested rules
This sequence moves a Proxmox VE cluster from an unfiltered state to a tested firewall with datacenter, host and guest rules. Each step closes with a check your team can record, and the access controls and console safeguards are in place before any drop rule becomes active.
Inventory guests and assign roles
List every virtual machine and container on each cluster node, with its owner, business function, data sensitivity and the network flows it must receive and initiate. Group guests into roles such as web, application, database, management and backup, so each rule maps to a role that a reviewer can understand. Ask each application owner to confirm the ports their role needs. Done when the inventory is signed off, matches what the cluster reports, and every guest belongs to exactly one role.
Define IP sets and aliases
Create IP sets for management workstations, backup servers, monitoring hosts and the address range of each role, then define aliases for the services the rules will name. Use set names that match the inventory roles so a reviewer can trace every rule back to a business function. Have the network team confirm each address and VLAN before any rule references it. Done when each set resolves to the expected addresses from a test host and a reviewer has matched the names to the inventory.
Restrict who can edit firewall rules
Decide which authentication realm holds firewall administrators. Where possible, use the directory your identity team already governs, such as LDAP, Active Directory or OpenID Connect, and use the Proxmox VE authentication server only for a small team. Grant firewall permissions to a small named group and confirm the permission roles in the user management documentation for your version. Enroll a second factor, such as TOTP, WebAuthn or a YubiKey OTP, for every editor, and keep recovery keys under the control of two people. Done when a test editor signs in with the second factor and changes a test rule, and a read-only account cannot.
Confirm out-of-band access before any drop
Before enabling any drop rule, confirm a path to each node that the firewall will not filter. This is usually the server's out-of-band management controller or a physical console, and it should be tested with the stored credentials. Write down the console steps that disable the firewall on each node, and assign who may run them during a change window. Done when a team member has completed a test login through the out-of-band path and the rollback steps are in the change runbook.
Set the datacenter baseline
Define datacenter-level rules for what every host needs: administrator access from the management IP set, cluster communication between nodes, and traffic to backup and monitoring servers. Review how the default incoming policy behaves in your Proxmox VE version before you set it, and confirm that the accept rules are in place first. Enable the datacenter firewall while a management session stays open, then check from the management network that the web interface still responds. Done when the baseline rules are documented and the cluster reports all nodes healthy after the change.
Enable host and guest firewalls in stages
Enable the host firewall on one node, verify cluster health and management access, then repeat on each remaining node one at a time. Once the hosts are stable, enable the guest firewall on the network interface of a non-critical guest first, then extend it to the other roles in order of risk. Keep the console path open during every change. Done when each guest answers from its expected sources, the cluster stays healthy, and monitoring shows no new failures caused by the change.
Add security groups and test flows
Create security groups that match the inventory roles, reference the IP sets and aliases, and attach each group to its guests. Build a test matrix listing each expected allowed and blocked flow between roles, run the probes from test hosts, and record each result beside the rule that governs it. Review the firewall log for unexpected drops if logging is enabled in your setup. Done when every row of the matrix matches, and any mismatch leads to a rule change followed by a full retest.
Designing microsegmentation with security groups and IP sets
Start microsegmentation with a grouping model before writing any rule. Sort guests into groups along the lines that change how they are allowed to communicate: tier (web, application, database), data class (public, internal, regulated) or application (a service and its helpers). Pick one primary axis so every guest belongs to exactly one group that the rules can reference. Mixed schemes, where a database is grouped by tier and also by application, produce overlapping rules that are hard to audit later. Record the model in a table with guest IDs, owners, data class and group membership. That table becomes the source for the security groups and IP sets you define at datacenter level, and it is the first artifact an assessor will ask to see.
Next, map the required flows between groups. For each pair, record the protocol, port and direction the application needs, and treat everything else as denied. Application owners usually name more flows in interviews than appear in architecture diagrams, so confirm the map against observed traffic in a test window before you enforce it. Then decide where each rule lives. A shared security group suits a role that many guests hold, such as every web frontend accepting HTTPS from a load balancer, because one change updates all members. Per-guest rules suit exceptions, such as one guest that needs a management port from a single jump host. Keep exceptions few. Each per-guest rule is a place where the group model stops being true, and each one adds to the review burden.
Several dependencies break isolation in practice, often without any rule change. IP addresses are the most common cause. Rules and IP sets that reference addresses fail silently when a guest is re-addressed, so assign addresses from a documented plan and reserve them. DHCP makes this worse: a guest that receives a different lease can fall outside its group or match another group's set. For guests that carry rules, prefer fixed reservations, and confirm which MAC and IP filtering options your Proxmox VE version offers in the firewall chapter of the administration guide. Bridge and VLAN design also matters, because the firewall only protects traffic that passes through its managed interfaces. Tenant network design belongs in the SDN topic, but this isolation model depends on it. High availability adds one more case. A guest restarted on another node must keep its addresses and rules, so every node needs the same datacenter definitions and bridge names before you test failover.
Before enforcement, run a failover test in a non-production cluster that matches the production bridge names and node configuration. Move a guest between nodes, confirm it keeps its address, confirm the group rules still allow its approved flows, and confirm that a guest outside the group is still refused the same flow. Then test a DHCP renewal and a deliberate address change on a staging guest. Record the results beside the grouping table, and name an owner for each group who approves changes. Ask any implementation partner to show the test cases and evidence they will use for these checks. Also confirm that your cluster meets the HA guidance of at least three nodes for reliable quorum, because failover results from a two-node lab will not show how the rules behave under a real quorum loss.
Security risks of distributed rules and how to control them
Distributed rules at datacenter, host and guest levels let many people and paths change traffic policy, so one edit can open or block a segment. The risks below come from who can edit rules, how changes are reviewed and recovered, where configuration is stored, and which repository patches production nodes. Each card names a risk and the control to put in place before rules reach production.
Broad rights to edit cluster rules
Datacenter-level rules apply across every node, so an administrator with broad privileges can open a path between tenants or disable a guest's isolation in one edit. Limit that power with role-based access: give most staff roles that can read firewall state, and reserve rule-editing roles for a small named group. Review permission assignments on the datacenter path after each staff change. Require two-factor authentication for every administrator, using TOTP, WebAuthn or YubiKey OTP, and keep recovery keys stored offline.
Unreviewed rule changes
Firewall edits can reach production as soon as they are saved, so a change nobody reviewed can take effect within moments. Route every rule change through a written request that states the source, destination, port and reason, and require a second engineer to approve it before it is applied. Illustrative: a request to allow a database connection should name the exact IP set and the single port. Keep approved rule sets in version control where your process allows, and record who applied each change.
Drift between cluster, host and guest rules
Rules exist at datacenter, host and guest levels, so a host or guest rule added as a quick fix can quietly contradict the policy set at datacenter level. Over time the effective policy drifts from the documented one. Maintain a single written policy, review the effective rules on each node and guest after every change, and limit guest-level rule editing to named owners. Confirm the evaluation order in your own test cluster before relying on it.
Lockout during rollout
A default-deny rule applied at the wrong level, or one that blocks the management network, can cut off the web interface and SSH from the administrators who would fix it. Protect the rollout by keeping console or out-of-band access to each node, allowing management addresses explicitly before enabling restrictive rules, and applying changes to one node or one guest group first. Write the rollback steps before the change, and test them in a non-production cluster.
Firewall configuration outside backups
Guest backups protect virtual disks and guest settings, but firewall policy lives in cluster-level files that may not return with a single guest restore. Confirm what your backup jobs capture in your own environment. Schedule exports of datacenter, host and guest rule files to storage outside the cluster, and restore them into a test cluster to prove they work. Record the export time and the restore result so the evidence is available for audit.
Update source for production nodes
Production nodes should receive updates from the enterprise repository, which requires a valid subscription key. The no-subscription repository is described for testing and non-production use, so a firewall-related package taken from it on a production node may fall outside the recommended path. Configure separate repository settings for test and production, record subscription key status for each node, and verify the update source before applying firewall-related package changes.
Whether to adopt the nftables-based proxmox-firewall preview
Treat the nftables-based proxmox-firewall as a preview for planning purposes. Adopt it in production only if the release notes for the exact Proxmox VE version you run state that the features your rules depend on are covered and not limited to testing. Until that check passes, keep the stable firewall as the production default. A preview can change between releases, so a plan that works today may need retesting after each update, and your change calendar should reflect that.
Compare the two firewalls feature by feature before any lab work starts. Build a matrix with one row for each element your design uses: datacenter, host and guest rules, security groups, IP sets, aliases, rule ordering, and the logging behavior your monitoring depends on. For each row, record whether the stable firewall implements it, whether the preview does, and how the release notes describe that status. Use the stable firewall documentation in the Proxmox VE administration guide as the baseline. Where the preview documentation is silent, mark the feature as unconfirmed, and get the gap confirmed in writing from the vendor or your implementation partner. Do not assume parity from the component name alone.
Run the lab test on a cluster that matches production in Proxmox VE version and node layout. Use the no-subscription repository for the lab, since the vendor describes it as suited to testing and non-production use. Export the production rule set from every level, import it into the lab, and enable the preview on a test node. Then verify guest-to-guest isolation between security groups, management access to the hosts, IP set updates, rule persistence after reboot, behavior of guests with rules during HA failover and live migration, and the firewall log output your SIEM expects. Record the result of each case against the matrix from the previous step.
Set the go or no-go criteria before the test starts. Go requires that every rule in the inventory produces the same allow and deny outcome as the stable firewall, that HA failover and migration keep rules attached to the guests, that logs contain what your monitoring needs, and that the release notes list the features you use as covered for your version. Confirm your support route as well. Access to the enterprise repository requires a valid subscription key, and ticket entitlements differ by tier, with the Community tier including no support tickets. Ask what vendor support covers for a preview feature. Any failed case means no-go until the case is retested and passes.
Define the rollback path before any shared environment is touched. Export the stable firewall configuration at every level and store the copies outside the cluster. Write down the steps to disable the preview and restore the stable rules on one node, then rehearse them in the lab, including confirming that the node stays manageable from the cluster interface during the change. Plan to roll back one node at a time so that a fault does not affect the whole cluster at once. Record the rehearsal result and the go or no-go decision together, so the team knows exactly which state to return to if the preview causes a fault.
Limits to confirm before relying on guest isolation
Guest isolation is only as strong as the features, version support and limits beneath it. The items below are the points to verify in your target environment before a rule design goes into production. Check each one against current Proxmox VE documentation, then confirm it in a lab test on the exact version you plan to run.
Feature support in your version
Confirm which firewall features your chosen Proxmox VE version supports, including datacenter, host and guest rule levels, security groups, IP sets and any use of the proxmox-firewall preview. Feature behavior can change between major releases, so check the release notes for the exact version you will run. Keep the results in a support matrix that your change process can reference. Treat anything still marked as a preview as unsuitable for controls you must evidence to auditors.
Support window for the version
Proxmox VE versions receive support at least as long as the matching Debian release has Debian security support, roughly three years. Proxmox VE 8 on Debian 12 reached end of life in August 2026, so a rule design built on it now needs a migration plan before it can be maintained. Ask your vendor or support provider which dates apply to the version you select, and schedule upgrade windows around them before you write the rules.
SDN zones and HA migration behavior
Test how firewall rules attach to guests in software-defined networking zones, since zone type and VNet placement can change which rules apply to a flow. Then confirm how rules follow a guest during high-availability recovery or manual migration, including whether IP sets and security group references are present on the target node. Use a lab cluster with the same zone configuration as production before you depend on the design.
Rule count and performance limits
Ask for documented guidance on how many rules, IP sets and security group references a node or datacenter can carry before rule evaluation slows traffic or the web interface becomes hard to manage. Measure throughput and latency with your own rule set in a lab, using representative traffic for your workloads. Record the rule count you tested so the limit is known for each release you adopt.
IPv6 handling
Confirm whether the firewall applies its rules to IPv6 traffic in the same way it does to IPv4, including neighbor discovery, router advertisements and any IPv6 addresses assigned to guests. A rule set written only for IPv4 can leave a guest reachable over IPv6 even when the IPv4 policy looks correct. Test both protocol families against the same expected outcomes, and document any gap as a residual risk with an owner.
Depth of firewall logging
Confirm which events the firewall logs, at what level of detail, and where those entries are sent. Check whether both accepted and dropped packets are recorded, whether each entry identifies the rule that matched, and how logs reach your central log platform. Without that detail, an investigation may be unable to show which rule allowed or blocked a flow. Test by generating known allowed and denied traffic and confirming that each event appears.
What does a Proxmox VE firewall project cost and how long does it take?
Who pays for what in a Proxmox VE firewall engagement?
DeployOpen works to a fixed scope agreed in writing before work starts, and the quote follows from that scope. The main one-time cost is the engagement itself: design, rule build, lab testing and documentation. The main recurring cost is the Proxmox VE subscription, which the Proxmox VE pricing page lists per CPU socket per year at 120 euros (Community), 370 euros (Basic), 550 euros (Standard) and 1,100 euros (Premium). All tiers include the same software features. The tiers differ in support entitlements and access to the enterprise repository, and the software can be used without a subscription, so confirm which tier your operations team needs before budgeting.
What drives the size of a Proxmox VE firewall project?
The main drivers are the number of guests, the number of flows that must be allowed, the number of segments, the compliance mapping you need and the lab testing required before production. Each guest adds rules to review, and each flow needs an owner, a justification and a test. Segments multiply the design work because datacenter, host and guest rules must agree with each other. Compliance mapping adds evidence work, and lab testing adds a test environment and test cycles. Ask for each driver to be counted in the written scope so you can see which items change the quote if the environment changes.
Which factors set the timeline for a firewall rollout on Proxmox?
The duration is set by the agreed scope and appears in the written plan, so ask for it there. Schedule drivers include the number of guests and segments, how quickly your change board approves rule sets, access to lab hardware and whether compliance evidence must be collected during the build. Client-side dependencies, such as application owners confirming their flows, often set the pace more than the technical build does. Ask the proposal to show each phase, the client inputs it needs and the dates that depend on those inputs.
What does our team need to provide during the engagement?
Your team provides access, decisions and knowledge. Expect to supply a list of guests and their owners, the services each guest must reach, current network and cluster details, and named approvers for rule changes. You will also need a lab or staging cluster for testing, a change window for enforcement and time from application owners to confirm flows. DeployOpen designs and implements the rules, runs lab testing and prepares documentation within the agreed scope. Ask the proposal to list every client input with an owner and a date, because missing inputs delay the work that depends on them.
Can our own staff build a Proxmox VE firewall policy?
Yes, if your team has the skills and capacity, and the Proxmox VE documentation covers the three rule levels: datacenter, host and guest. Staff with Linux and virtualization experience can build a small policy in a lab first. Before going live, check whether they have time to inventory flows, write rules with named owners, test deny paths and keep documentation current. A partner is useful when the guest count is high, several teams own applications or evidence must map to a compliance framework. Confirm internal skills and capacity honestly before deciding.
Does a firewall design on its own satisfy compliance requirements?
No, a firewall design does not satisfy compliance requirements on its own. It supports control objectives, but the assessor decides whether the evidence meets the requirement. DeployOpen prepares controls and evidence for compliance assessments, such as rule documentation, change records, test results and network diagrams. DeployOpen does not issue audit reports, attestations or certifications, which independent auditors and certification bodies provide. Ask your assessor which controls they expect to see evidenced, and map each firewall control to the requirement it supports before the build starts.
What should we ask for in a written firewall project quote?
Ask for the scope in writing with the counts behind it: guests, flows, segments, mapped compliance controls and lab test cases. Request a phase list, the client inputs each phase needs, the planned duration and the acceptance criteria for each deliverable. Ask which items are one-time and which recur, such as subscription fees per CPU socket per year and any retainer for ongoing rule review. Confirm what happens if the counts change during the build and how changes are approved. Confirm whether your chosen subscription tier affects support response times, since the tiers differ on that point.
How DeployOpen scopes and tests Proxmox VE firewall policy
DeployOpen plans, implements, hardens and documents self-hosted open-source platforms inside your own infrastructure, including Proxmox VE clusters. For firewall and microsegmentation, the work starts with a written scope that maps guest and host isolation needs to datacenter, host and guest rule levels, then tests each policy before handover.
How we scope
- The written scope lists which guests, hosts and management interfaces need isolation and why.
- We map traffic flows between tenants, tiers and management networks before any rule is written.
- Fixed-scope engagements agree deliverables, test criteria and timelines in writing before work starts.
How we build
- Datacenter, host and guest firewall levels are configured in a defined order, with default policies stated explicitly.
- Security groups and IP sets let rules refer to named objects, which keeps policy readable as guests change.
- Each rule set is tested from allowed and denied source positions, with results recorded against the scope.
How we hand over
- Handover includes the rule inventory, object definitions and a map of which policy applies at each level.
- Test steps and recorded results are delivered so your team can repeat checks after later changes.
- Your team receives a change procedure covering rule edits, review and rollback on each cluster.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- Retainer work can include rule reviews after new guests, networks or Proxmox VE upgrades.
- Confirm in the quote whether re-testing is included when the proxmox-firewall preview status changes.

