OVH – PROXMOX – Réseau privé

Buts

  • Configurer des VM en réseau privé sous Proxmox chez OVH
  • Que les VM du réseau privé aient accès à internet
  • Que les VM du réseau privé soient cachées d’internet sauf pour des ports et protocoles bien définis
  • Que la connexion SSH depuis internet vers les VM du réseau privé soit directe sans rebond ou tunnel
  • Que le serveur dédié OVH/Proxmox n’ai pas à être configuré spécifiquement (réseau, iptables)
  • Les IP des VM du réseau privé sont de type 192.168.xxx.xxx

Contraintes

  • Configurer en frontal des VM du réseau privé une VM Gateway et reverse proxy (http/https) avec une IP Public fixe (1 euro à vie par IP chez OVH à ce jour)

Etape 1 : Sous PROXMOX

Créer 2 VM Debian Jessie : une pour le serveur frontal et un en réseau privé.

On n’explique pas ici l’installation d’une VM Debian sous PROXMOX.

Pré-requis sur la VM frontale :

  • openssh-server
  • iptables
  • NGINX (reverse-proxy)
  • accès root

Pré-requis sur les VM du réseau privé :

  • openssh-server
  • iptables
  • accès root

Caractéristique VM frontale :

Il s’agit d’une petite configuration qui n’héberge qu’un reverse Proxy (NGINX ou Apache)

  • 1 interface réseau en mode bridge – Une MAC adresse correspondant à l’IP fixe fournie par OVH

proxmox

  • 1Go de ram
  • 2 vcpu
  • 16Go de disque

Caractéristique des autres VM :

Est fonction des besoins applicatifs.

  • 1 interface réseau en mode bridge

Etape 2 : Dans la VM Frontale

Configuration de l’interface eth0 qui donne accès à Internet avec l’IP fixe de OVH :

Faire comme indiqué dans les documentations OVH : http://guide.ovh.com/BridgeClient

Dans « /etc/networks/interface » :

où:
xxx.xxx.xxx.xxx est l’IP fixe fournie par OVH pour cette VM
yyy.yyy.yyy.yyy est l’IP fixe de votre serveur dédié OVH/Proxmox

Dans « /etc/resolv.conf » :

Configuration d’un interface virtuelle eth0:0 qui donne accès aux autres VM du réseau privée :

Dans « /etc/networks/interface » :

Créer des règles Iptables et les rendre persistentes :

Installer le package « iptables-persistent »

Durant l’installation du package, il est proposé de sauver les règles afin qu’elles soient restaurées à chaque redémarrage du serveur.
Lors des futurs modifications des règles, exécuter les commandes suivantes afin de les rendre persistentes :

Activer le forwarding et rendre ce changement permanent :

Editer « /etc/sysctl.conf » et décommenter la ligne :

Executer la commande :

Redémarrer le service networking :

Etape 3 : Dans les VM du réseau privé

Configuration de l’interface eth0 qui donne accès aux autres VM du réseau privé et à Internet via la gateway de la VM Frontale :

Dans « /etc/networks/interface » :

Dans « /etc/resolv.conf » :

Redémarrer le service networking :

Permettre l’accès ssh directement à la cette VM du réseau privé en ssh via l’adresse IP de la VM frontale qui est la seule accessible d’internet :

Les 2 VM écoutent sur le port 22 pour SSH.

On accède à la VM d’un réseau privée en passant par un port différent de la VM frontale qui sera « forwardé » sur le port 22

ssh xxx.xxx.xxx.xxx -> accès SSH à la VM frontal

ssh xxx.xxx.xxx.xxx -p 22yyy -> accès SSH à la VM du réseau privé où 22yyy est un port différent pour chaque VM du réseau privé.

La règle iptables à exécuter sur la VM frontale est :

Mettre en place un reverse-proxy NGINX sur la VM frontale

Je ne documente pas cette partie, je vous redirige juste vers un des nombreux articles qui décrit cette configuration : http://homeserver-diy.net/wiki/index.php?title=Installation_et_configuration_d%E2%80%99un_reverse_proxy_avec_NginX

Un peu de sécurité

Vraiment un tout petit peu !

Vos serveurs (Proxmox, frontal et dans le réseau privé) sont vulnérables sur le port 22. Je conseille à minima :

  • d’y installer fail2ban bloquer les attaques en force brute
  • de n’autoriser en ssh que les connexions avec clée privée / public.

Je ne documente pas cette partie, je vous laisse trouver des tutos pour cela.

Commandes utiles

iptables

Ajouter une règle NAT de port forwarding

Lister les règles NAT avec numéro de ligne

Supprimer une règle NAT par son numéro de ligne

SSH

Monter un tunnel ssh avec mapping de port

Le but est par exemple d’accéder à une console d’administration web hébergée sur le serveur distant depuis son poste en local (phMyAdmin ou console Solr par exemple) :

par exemple :

permet dans un navigateur en local d’accéder au serveur web distant sur le port 80 avec une url http://localhost:8080/

Références

One Response

  1. bibi32 7 juillet 2016

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *