Parmi les fonctionnalités de Proxmox, la gestion du firewall pour les conteneurs LXC est souvent perçue comme un casse-tête. Pourtant, une fois qu’on a compris la logique (et évité les pièges), c’est presque aussi simple que de configurer un routeur grand public. Presque.
Pourquoi s’embêter avec le firewall des LXC ?
Par défaut, un conteneur LXC sous Proxmox hérite des règles du firewall de l’hôte. C’est bien… jusqu’à ce que ce soit insuffisant. Imaginez : vous hébergez un serveur web, une base de données et un outil de monitoring dans trois LXC différents. Si vous laissez tout ouvert, un attaquant qui compromet le serveur web peut se balader comme chez lui dans les autres conteneurs. Sympa, non ?
Le firewall intégré à Proxmox permet de définir des règles par conteneur, avec une granularité correcte. L’avantage ? Pas besoin de bidouiller iptables directement dans chaque LXC (ce qui, avouons-le, est aussi agréable que de marcher pieds nus sur des Lego). L’inconvénient ? La documentation officielle est aussi claire qu’un manuel d’assemblage Ikea écrit en suédois.
La méthode propre : utiliser le firewall de Proxmox
Proxmox propose une interface web pour gérer le firewall au niveau de chaque conteneur. Voici comment procéder sans se prendre la tête :
- Activez le firewall dans les options du conteneur (
Options > Firewall). - Ajoutez des règles dans l’onglet
Firewalldu conteneur. Par exemple, pour autoriser uniquement le trafic HTTP (port 80) et SSH (port 22) :
# Exemple de règles dans l'interface Proxmox (à adapter via l'UI) IN ACCEPT -p tcp --dport 22 -s 192.168.1.0/24 IN ACCEPT -p tcp --dport 80 IN DROP
Le IN DROP final est crucial : sans lui, toutes les connexions non explicitement refusées seront acceptées. C’est un peu comme laisser la porte de chez vous grande ouverte en espérant que les cambrioleurs soient polis.
Pour les règles sortantes (OUT), c’est la même logique. Si votre conteneur n’a pas besoin d’accéder à internet, bloquez tout sauf les flux nécessaires (mises à jour, DNS, etc.).
Les pièges à éviter
Proxmox utilise nftables en backend, mais son interface web génère des règles iptables. Si vous mélangez les deux, vous allez droit dans le mur. Voici les erreurs classiques :
- Modifier
iptablesdirectement dans le conteneur : Proxmox va écraser vos règles au prochain redémarrage. Si vous tenez absolument à bidouiller, utilisez plutôt leshookscriptsde Proxmox pour appliquer des règles persistantes. - Oublier les règles par défaut : Par défaut, Proxmox autorise tout le trafic entre les conteneurs du même hôte. Si vous voulez isoler vos LXC, ajoutez une règle
IN DROPet autorisez uniquement ce qui est nécessaire. - Ne pas tester les règles : Avant de déployer en production, vérifiez avec
iptables -L -n -vdepuis l’hôte que les règles sont bien appliquées. Untcpdumpsur l’interface réseau du conteneur peut aussi sauver des heures de debug.
Autre point sensible : les règles de NAT. Si votre conteneur est derrière un NAT (ce qui est souvent le cas), assurez-vous que les règles de redirection de ports (DNAT) sont correctement configurées sur l’hôte. Sinon, vous risquez de vous retrouver avec un conteneur accessible depuis internet alors que vous pensiez l’avoir verrouillé.
Alternative : le firewall dans le conteneur LXC
Si vous préférez gérer le firewall directement dans le conteneur, c’est possible, mais c’est plus risqué. Voici pourquoi :
- Proxmox peut interférer avec vos règles (surtout si vous utilisez aussi son firewall).
- Les mises à jour du conteneur peuvent réinitialiser les règles.
- Vous perdez la centralisation des règles au niveau de l’hôte.
Si vous tenez à cette approche, utilisez ufw ou firewalld dans le conteneur pour simplifier la gestion. Exemple avec ufw :
# Dans le conteneur LXC apt update && apt install ufw ufw allow from 192.168.1.0/24 to any port 22 ufw allow 80/tcp ufw default deny incoming ufw enable
Mais attention : cette méthode ne remplace pas une bonne configuration au niveau de l’hôte. C’est un peu comme mettre un cadenas sur une porte déjà blindée : ça peut aider, mais si la serrure principale est foireuse, vous êtes dans la merde.
Conclusion : moins de règles, plus de sécurité
Gérer le firewall des LXC sous Proxmox, c’est comme cuisiner un plat complexe : il faut doser les ingrédients (les règles) sans en mettre trop, sinon ça devient immangeable. L’interface web de Proxmox est un bon point de départ, mais elle a ses limites. Si vous avez besoin de règles avancées (comme du rate limiting ou des règles basées sur des groupes), vous devrez probablement mettre les mains dans le cambouis avec nftables ou des hookscripts.
La règle d’or : moins de règles, plus de sécurité. Chaque règle supplémentaire est une faille potentielle. Autorisez uniquement ce qui est nécessaire, testez, et surtout, ne partez pas du principe que