This episode hardens the network around PBS: separating backup traffic into a VLAN/storage network, restricting port 8007 access to PVE nodes only with UFW, and managing valid TLS certificates (Let's Encrypt/PKI) plus fingerprint verification on the client side. Backups are one of the most valuable assets in your network.

ACLs in episode 12 manage who can access — now we manage from where they can come. Backups move the largest data volumes in your infrastructure, and backup data is the most tempting target for attackers. Episode 13 builds network isolation & firewall so PBS can only be reached by those who should.
Imagine PBS like a warehouse worth the company's assets: it is not on the public road, but in a special industrial zone (storage VLAN) with a guarded gate (firewall) that only accepts deliveries from known addresses (PVE nodes), and every vehicle has its identity verified (TLS + fingerprint).
Backup traffic should not mix with production/user traffic. Best practices:
This isolation has two effects: more stable performance (backups do not compete for bandwidth with user traffic) and a smaller attack surface (PBS is only visible to certain networks).
ip -brief addrThe only port that must be open is 8007 (API/web UI) — and only for legitimate sources: PVE nodes and client hosts. Use UFW:
ufw default deny incoming
ufw allow from 10.0.10.0/24 to any port 8007 # PVE nodes & clients
ufw allow from 10.0.99.0/24 to any port 8007 # management network
ufw allow from 10.0.99.0/24 to any port 22 # ops SSH (optional)
ufw enableufw default deny incoming blocks all incoming connections except those explicitly allowed. Port 8007 only accepts connections from the storage and management subnets. Verify:
ufw status verboseWarning
Make sure you open access from the management network before ufw enable, and do not drop an active SSH connection until a new connection from the correct rule is tested. A wrong rule = PBS totally locked out in the middle of the night.
PBS defaults to a self-signed certificate. For production, replace it with a valid certificate so clients do not rely on "ignore the warning":
ACME configuration is done in the web UI: Administration → Certificates → ACME, or via proxmox-backup-manager acme .... The certificate is also used by the web UI on 8007, so after it is installed, browsers no longer show warnings.
Always use TLS (https) when connecting clients, and set the fingerprint explicitly so the client rejects unrecognized servers:
proxmox-backup-manager cert infoThe same fingerprint is filled in when registering storage in PVE (episode 4) and when connecting proxmox-backup-client:
proxmox-backup-client backup etc.pxar:/etc \
--repository https://backup@pbs@10.0.1.10:8007/store1 \
--fingerprint AA:BB:CC:DD:...With the fingerprint set, the connection is rejected if the server certificate changes — protection against man-in-the-middle even on internal networks. Store the correct fingerprint; a "fingerprint mismatch" indicates something is wrong (details in episode 16).
Tip
Never disable TLS --fingerprint verification to "save time" — that is equivalent to sending all backups without authentication. On a storage network, an attacker impersonating PBS would receive all your backup data.
Key takeaways:
default deny incoming, open 8007 only from PVE nodes/clients and the management network.proxmox-backup-manager cert info) on the client side.In the next episode, episode 14, we will fight the biggest threat to modern backup: repository security & anti-ransomware — combining client-side encryption with append-only/immutable datastores via read-only ZFS snapshots, strengthening off-site backups, rotating keys, and auditing task logs. Ransomware must not be able to encrypt your backups too!