Configuration de Port Forwarding pour NAT dans Proxmox

Dans notre précédent tutoriel intitulé “Création d’un Réseau Interne avec NAT dans Proxmox”, nous avons appris à isoler des machines virtuelles ou des conteneurs du réseau externe tout en leur permettant d’accéder à Internet via NAT. Cependant, il est parfois nécessaire d’accéder à ces machines depuis l’extérieur pour la gestion à distance (SSH), le transfert de fichiers, ou encore pour tester des services internes. Pour ce faire, nous allons utiliser le port forwarding sur Proxmox.
Ce tutoriel vous guidera à travers les étapes de configuration du port forwarding et expliquera comment le désactiver en modifiant les règles d’iptables.
Pour chaque machine virtuelle dans le réseau interne, il est recommandé de configurer un port différent pour éviter les conflits. Dans cet exemple, nous utiliserons le port 1022 pour la VM ayant l’adresse IP 172.16.2.10.

Étape 1 : Modifier le fichier de configuration réseau

Ouvrez le fichier de configuration réseau :

sudo nano /etc/network/interfaces

Ajoutez les lignes suivantes à la fin du fichier pour configurer le port forwarding, par exemple pour accéder à un conteneur via SSH :

post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to-destination 172.16.2.10:22
post-up iptables -A FORWARD -p tcp -d 172.16.2.10 --dport 22 -j ACCEPT
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to-destination 172.16.2.10:22
post-down iptables -D FORWARD -p tcp -d 172.16.2.10 --dport 22 -j ACCEPT

1022 : le port externe que vous utilisez pour accéder à Proxmox via SSH.
172.16.2.10:22 : l’adresse IP et le port de la VM ou du conteneur dans le réseau interne NAT.

 

Étape 2 : Appliquer les changements

Pour appliquer la configuration du port forwarding, redémarrez le service réseau :

systemctl restart networking

Étape 3 : Tester l’accès externe

Après la configuration, testez l’accès depuis l’extérieur en utilisant la commande suivante :

ssh -p 1022 user@<IP_externe_Proxmox>

Remplacez <IP_externe_Proxmox> par l’adresse IP publique ou l’adresse IP externe de votre serveur Proxmox.

Dans mon cas:

ssh -p 1022 oleks@192.168.0.9

 

Étape 4 : Désactiver la configuration de port forwarding

Pour désactiver le port forwarding, vous devez supprimer les règles correspondantes dans iptables et modifier le fichier de configuration réseau :
Ouvrez le fichier de configuration réseau :

sudo nano /etc/network/interfaces

Supprimez ou commentez les lignes relatives au port forwarding ajoutées précédemment.

 

Redémarrez le service réseau pour appliquer les changements :

systemctl restart networking

Remarque : Les règles iptables sont volatiles et disparaissent après un redémarrage du système, à moins qu’elles ne soient sauvegardées dans le fichier de configuration. Plus d’information vous pouvez trouver dans tutoriel Configuration IPtables

L’utilisation du port forwarding dans un réseau de test ou dans un Home Lab est utile, mais son utilisation en environnement de production comporte des risques de sécurité, car elle crée une ouverture vers le réseau interne.

En résumé, le port forwarding est pratique pour la gestion à distance et le dépannage, mais il doit être configuré avec précaution pour garantir la sécurité, surtout dans un environnement de production.

Bonne chance!