U activeert de Proxmox-firewall op een knooppunt dat toegankelijk blijft via de webinterface en SSH. De privé-VM kan echter geen verbinding maken met het internet. Een ontbrekende route, de uitgaande verzending uitgeschakeld of een ontbrekende MASQUERADE veroorzaken hetzelfde symptoom.
Voordat u een regel aanpast, controleer de route, de NAT en de regel MASQUERADE, en dan de DNS. Controleer vervolgens de policy_out van de VM en de specifieke situatie van de conntrack-zones op fwbr+. De officiële correctie geldt niet voor alle NAT-montages, dus houd de terugrol paraat.
Identificeer het juiste scenario voordat u regels aanpast
De diagnose is gericht op een VM of CT die op een privénetwerk is geplaatst. De brug heeft geen directe fysieke publieke poort en de gast maakt verbinding via het publieke adres van het Proxmox-knooppunt met een masqueradingregel.
Hier zijn de stappen die u moet volgen voordat u enige wijzigingen aanbrengt:
- bevestig dat de gast een privé-adres en een standaardroute heeft;
- bevestig dat de NAT op het knooppunt bestaat en dat de IPv4-vereiste is ingeschakeld;
- bevestig dat de firewall actief is terwijl de webinterface en SSH van het knooppunt toegankelijk blijven.
Als de VM nog nooit een functionele uitgaand verbinding heeft gehad, ga dan eerst terug naar de brug, de virtuele kaart en de gastinterface. Het artikel Herstellen van het netwerk van een Proxmox-VM, van de brug naar de gast behandelt deze tak van de diagnose.
Lees de route en de NAT voordat u de firewall beschuldigt
U moet eerst begrijpen of het pakket daadwerkelijk de VM verlaat. Zoek in de gast naar een regel default met:
ip route
ping -c 3 1.1.1.1
Een ontbrekende standaardroute verklaart een onmogelijke uitgaand verbinding. Een mislukte ping naar het test-IP bewijst dus nog niet dat de firewall de VM blokkeert.
Controleer op het knooppunt de uitgaande verzending en de POSTROUTING-keten:
sysctl net.ipv4.ip_forward
iptables -t nat -S POSTROUTING
De Proxmox-documentatie beschrijft de masquerading voor privé-gasten met een regel van het type POSTROUTING. Het voorbeeld gebruikt 10.10.10.0/24, de uitvoerinterface eno1 en de actie MASQUERADE. Pas deze waarden aan de reeds bestaande configuratie aan, zonder willekeurig een regel te vervangen.
Een ip_forward=0, een ontbrekende NAT-regel of een verkeerde uitvoerinterface verplaatst het probleem buiten de firewall. Proxmox-firewall configureren zonder toegang te verliezen biedt een antwoord voor het geval dat de toegang tot het knooppunt zelf in het geding is.
Scheiding van IP-uitgang, DNS en APT-update
Test de lagen in deze volgorde. Een mislukte DNS-resolutie betekent niet automatisch dat er een blokkade van de firewall is.
ping -c 3 1.1.1.1
getent hosts deb.debian.org
curl -I https://deb.debian.org/
- de IP-ping mislukt: controleer route, uitgaande verzending en MASQUERADE;
- de IP-ping geeft antwoord maar
getentmislukt: controleer de gastresolver en een eventuelepolicy_outdie DNS blokkeert; - de resolutie geeft antwoord maar de HTTP-aanroep mislukt: controleer de HTTPS-uitgang, het beleid van de VM en de connectiviteit naar de repository;
- de netwerkuitgang werkt maar de APT-update mislukt: wijzig de NAT niet voordat u de repository en het gebruikte beeld heeft gecontroleerd.
De APT-test betreft Debian- en Ubuntu-images. Voor een andere distributie, gebruik de bijpassende pakketbeheerder en repository. Het verwachte resultaat blijft hetzelfde: onderscheid maken tussen een IP-storing, resolutieprobleem of repository-toegangsprobleem.
Controleer de OUT-policy en de Proxmox-logs zonder de brug te veranderen
Als de route en de NAT coherent zijn, ga dan naar de firewallzone van de gast. Proxmox scheidt de zones Host, VM/CT en VNet. Een regel van de VM wordt dus niet op dezelfde plaats gelezen als een regel die het knooppunt beschermt.
Controleer op het knooppunt de status en de compilatie van de regels:
pve-firewall status
pve-firewall compile
Controleer vervolgens de configuratie van de VM of CT in /etc/pve/firewall/<VMID>.fw. Zoek naar policy_out, log_level_out en de uitvoerregels die betrekking hebben op DNS, NTP of HTTP/HTTPS. Raadpleeg ook het Firewall-log van de Proxmox-interface als de logging is ingeschakeld.
pve-firewall simulate kan een bron, bestemming, poort en protocol simuleren. Het simuleert echter niet de routeringstabel van de kernel. Een positief resultaat valideert dus niet de volledige NAT-route.
Voor VM/CT-regels, de uitgaande beleidsregels en de logs, raadpleeg ook Proxmox-firewallregels voor een VM of CT. Wijzig de brug niet om een uitgaande policy te corrigeren.
Controleer de officiële casus van conntrack-zones op fwbr+
De Proxmox-documentatie geeft een specifieke situatie aan: met bepaalde masquerade-montages en de actieve firewall, kunnen uitgaande verbindingen de POSTROUTING van de VM-brug verkiezen boven de MASQUERADE. Een conntrack-zone kan dan nodig zijn om een blokkade van de uitgang te voorkomen.
Generaliseer deze correctie niet naar alle Proxmox NAT’s. Controleer eerst de aanwezigheid van een firewallbrug in de rauwe tabel:
iptables -t raw -S PREROUTING | grep 'fwbr'
Als het verkeer aan dit scenario voldoet, stelt de officiële documentatie deze twee regels voor in de betreffende netwerkconfiguratie:
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
De eerste regel voegt de zone toe bij het opstarten van het netwerk. De tweede verwijdert precies dezelfde regel bij het afsluiten. Voeg ze toe aan de bestaande stanza in /etc/network/interfaces die het betreffende netwerk bevat, na bevestiging dat de NAT goed werkt op dit pad.
Als de ruwe opdracht geen fwbr toont en de IP-uitgang al werkt, dwing dan geen zone 1 af. Zoek eerder naar de route, de NAT, de DNS of de OUT-policy die nog steeds mislukt.
Test de correctie zonder de toegang tot het knooppunt te verstoren
Voordat u het netwerk opnieuw laadt, houd de twee regels in de gaten en zorg voor een onderhoudsvenster als de externe toegang mogelijk kan worden onderbroken. Ik raad aan de console of een andere herstelroute te behouden voordat u /etc/network/interfaces aanpast.
Na de toepassing van de configuratie, controleer eerst de ruwe regel, en doe dan de drie tests opnieuw vanuit de VM:
iptables -t raw -S PREROUTING | grep 'fwbr'
ping -c 3 1.1.1.1
getent hosts deb.debian.org
curl -I https://deb.debian.org/
De IP-uitgang moet reageren voordat u de DNS beoordeelt. De resolutie moet antwoorden geven voordat u op de HTTP-toegang of het APT-repository concluderen. Als het symptoom terugkomt, verwijder dan de twee toegevoegde post-up en post-down richtlijnen, en controleer of de regel CT --zone 1 niet meer verschijnt in iptables -t raw -S PREROUTING.
Let op: pve-firewall stop verwijdert actief de Proxmox-iptablesregels en kan de host zonder bescherming laten. Dit commando vervangt de diagnose niet en mag niet als normale oplossing voor een privé-VM worden gebruikt die zijn NAT-uitgang verliest.
De conclusie zal zeer concreet zijn: route, uitgaande verzending, MASQUERADE, DNS en OUT-policy moeten coherent zijn voordat u de firewall beschuldigt. Als de NAT via fwbr+ gaat, wordt de conntrack-zone een gerichte correctie, met een symmetrische terugrol. Anders, keer terug naar de diagnose brug of de VM/CT-regels.
Referenties: Proxmox-documentatie over NAT en masquerading, Proxmox VE Firewall-documentatie en officiële pve-firewallhandleiding.