Malgré quelques solutions existantes ici et , j’ai opté pour un pare-feu spécifique afin de protéger mes serveurs virtuels sous Proxmox / OpenVZ. J’ai donc utilisé FirewallBuilder pour le générer.  Une template réutilisable est disponible au téléchargement en fin d’article.

Les serveurs virtuels (VPS) sont placés sur le réseau privé 192.168.0.0/24, où du NAT est appliqué pour la redirection de ports dans le cas où une seule IP publique est disponible. Ainsi, le bridge vmbr0 est utilisé pour l’accès public – vous y ajouterez vos IP publiques supplémentaires – et le bridge vmbr1 pour les communications entre les VPS et l’hôte.

De base, les flux sortants DNS / SMTP sont seulement autorisés pour l’hôte réel. Les VPS doivent donc utiliser le serveur DNS & SMTP de l’hôte réel. Par sécurité, j’ai mappé l’accès à l’interface Proxmox sur le port 4443 (le HTTPS standard étant alors récupéré par le VPS web). Une blacklist est configurée, que vous pouvez manipuler en éditant le fichier /etc/firewall-bad_hosts (règle n°0) afin de bloquer d’éventuels attaquants. N’oubliez pas de créer ce fichier !

Liste des interfaces réseaux :

  • eth0 : utilisée par vmbr0.
  • vmbr0 : bridge sur eth0, utilisé pour les IP publiques.
  • vmbr1 : bridge sans port, utilisé pour le réseau dédié aux VPS.
  • venet0 : interface réseau présente dans chaque VPS.

Listes des hôtes :

  • proxmox.my.domain (192.168.0.254) : IP privée de l’hôte réel, permettant aux VPS d’utiliser les services communs DNS et SMTP proposés par l’hôte réel.
  • vps-www.my.domain (192.168.0.1) : serveur virtuel dédiée aux sites Web.
  • vps-sql.my.domain (192.168.0.2) : serveur virtuel dédié au serveur SQL.

Listes des redirections de ports :

  • 80/TCP => vps-www.my.domain – 80/TCP
  • 443/TCP => vps-www.my.domain – 443/TCP
  • 2222/TCP => vps-www.my.domain – 22/TCP (accès SSH)
  • 4443/TCP => hôte réel 443/TCP (interface de gestion Proxmox)

Pour finir, une fois effectuées les adaptations à votre configuration réseau, je vous conseille de modifier la règle n°4 pour restreindre l’accès SSH + interface Proxmox à vos IP de connexion Internet. Une fois effectuée, vous pourrez d’ailleurs ajouter le flux VNC pour l’administration Proxmox.

Configuration réseau :

# cat /etc/network/interfaces
# network interface settings
auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
 address  80.80.80.80
 netmask  255.0.0.0
 gateway  80.80.80.1
 broadcast  80.255.255.254
 bridge_ports eth0
 bridge_stp off
 bridge_fd 0
 network 80.0.0.0

auto vmbr1
iface vmbr1 inet static
 address  192.168.0.254
 netmask  255.255.255.0
 bridge_ports none
 bridge_stp off
 bridge_fd 0

Template firewall pour Proxmox / OpenVZ : [Téléchargement introuvable]