Je continue l’exploitation des usages du petit routeur/pare-feu ZeroShell. Toutefois, cette distribution est utilisée à titre d’exemple et l’implémentation présentée dans le cadre de cet article n’est en en aucun cas limité à ce produit. L’objectif est de faire tourner 2 VM avec des adresses IP non publiques en leur donnant accès à Internet.
Dans le cadre de cet article, nous allons poser le contexte suivant :
- Je dispose d’un serveur physique équipé d’une seule carte réseau Eth0. Cette carte réseau est reliée à l’internet.
- Ce serveur physique est équipé de la distribution PROXMOX V2.
- Je souhaite héberger deux serveurs distincts qui seront des machines virtuelles gérés par PROXMOX.
Les machines virtuelles VM101 et VM102 appartiennent à des réseaux distincts (192.168.0.0/24 & 192.168.1.0/24) et le routeur/pare-feu ZEROSHELL installé dans la VM100 va gérer l’accès à l’internet de ces deux VM. Le filtrage des échanges entre VM101 & VM102 ne sera pas abordé car il a déjà été détaillé dans un précédent article.
La VM103 fait tourner un LIVECD Ubuntu dont je me sers uniquement pour accéder à l’interface graphique de ZEROSHELL.
La VM100 est impérativement une VM utilisant la technologie KVM. Pour rappel, PROXMOX propose des VM KVM et OpenVZ. KVM supporte un éventail de distribution plus large et simplifie grandement le travail de gestion de la partie réseau que nous allons utiliser dans cet article. KVM nécessite un processeur intégrant les options de virtualisation. Si vous souhaitez utiliser exclusivement OpenVZ, je vous invite à lire cet article.
Vous trouverez ci-dessous le résumé graphique de cette configuration.
Au final, voici la représentation graphique des VM dans l’interface de PROXMOX.
Configuration de PROXMOX
La configuration des réseaux PROXMOX va comporter 3 cartes réseau :
- Une carte réseau de production nommée « vmbr0 » qui sera utilisée pour administrer PROXMOX
et assurera le lien vers l’internet . Ce sont là des réglages par défaut qu’il convient de modifier pour des raisons de sécurité évidentes. Dans ma maquette, cette carte réseau récupère une IP dynamique – 192.168.254.131 – fournie par mon routeur à la carte réseau Eth0 de mon serveur PROXMOX
. - Deux carte réseaux virtuelles « vmbr1 » et « vmbr2 » qui sont rattachée au périphérique réseau virtuel « lo »). Chacune de ces cartes possède une IP statique que j’ai choisi aléatoirement : 192.168.0.131 & 192.168.1.131.
Au final, voici la représentation graphique des réseaux dans l’interface de PROXMOX.
Configuration de la VM ZEROSHELL
La Vm « 100 » faisant tourner l’OS ZEROSHELL est une VM utilisant la technologie de virtualisation KVM et ayant 3 cartes réseaux :
- « Net0 » – il s’agit du sous-réseau d’administration de ZEROSHELL
(« vmbr1 ») auquel sont également raccordée les VM 101 & 103. - « Net1 » – il s’agit du sous-réseau vers l’internet (« vmbr0 »)
- « Net2 » – il s’agit du sous-réseau privé auquel est la VM 102
Au final, voici la représentation graphique de la configuration de VM100 dans l’interface de PROXMOX.
Configuration de la VM de gestion de ZEROSHELL
La VM103 est utilisée pour configurer au travers de l’interface WEB ZEROSHELL. Cette VM utilise la technologie de virtualisation KVM et fait tourner une LiveCD Ubuntu. Elle est raccordée au réseau « vmrb1 ».
Au final, voici la représentation graphique de la configuration de VM103 dans l’interface de PROXMOX.
Voici le détail de la configuration de la carte réseau de la VM103 dans l’interface GNOME de Ubuntu.
Configuration de ZEROSHELL
Vous retrouvez ci-dessous le détail de la configuration des trois cartes réseaux dans le routeur/pare-feu ZEROSHELL
Pour des raisons de simplicité, j’ai configuré deux serveurs DHCP dans ZEROSHELL.
Le premier dessert le sous-réseau 192.168.0.0/24.
Le premier dessert le sous-réseau 192.168.1.0/24.
ZEROSHELL est uniquement configuré pour autoriser le trafic des 2 sous-réseaux vers internet. Pour un paramétrage plus complexe, je vous invite à lire cet article.
Configuration de la première VM de test
La VM101 est utilisée pour tester l’accès à l’internet au travers de ZEROSHELL. Cette VM utilise la technologie de virtualisation OpenVZet fait tourner une distribution Ubuntu. Elle est raccordée au réseau « vmrb1 ».
Au final, voici la représentation graphique de la configuration de VM101 dans l’interface de PROXMOX.
Voici le fichier de configuration en client DHCP de la carte réseau « eth0 » au sein de cette VM.
Il faut relancer le service « networking » pour activer cette configuration réseau.
On peut maintenant valider que cette VM accède bien à l’internet au travers du routeur ZEROSHELL.
Configuration de la seconde VM de test
La VM102 est utilisée pour tester l’accès à l’internet au travers de ZEROSHELL. Cette VM utilise la technologie de virtualisation OpenVZet fait tourner une distribution Ubuntu. Elle est raccordée au réseau « vmrb2 ».
Au final, voici la représentation graphique de la configuration de VM101 dans l’interface de PROXMOX.
Voici le fichier de configuration en client DHCP de la carte réseau « eth0 » au sein de cette VM.
Il faut relancer le service « networking » pour activer cette configuration réseau.
On peut maintenant valider que cette VM accède bien à l’internet au travers du routeur ZEROSHELL.
Conclusion
Cette solution permet bien d’héberger deux serveurs virtuels dans un serveur physique au sein d’un hyperviseur simple à gérer grâce à la distribution PROXMOX. Toutefois, si cette approche est assez simple à mettre en œuvre, elle reste assez basique en terme de sécurité notamment parce que tous les trafics réseaux de VM circule sur une même carte réseau virtuelle « lo ».
Néanmoins, cet article a été une approche intéressante et n’hésitez pas à me faire part de vos remarques car je ne suis pas un spécialiste des réseaux. Il y a peut-être une façon plus intelligente d’utiliser ZEROSHELL
Merci pour cet article, par contre je suis confronté à un problème lors de la création de la vmbr2, il manque le package openswitch-switch, j’ai tenté de l’installer avec un apt-get install sans succès, sûrement un problème de repository ?
Je pense que ce n’est pas possible (ou pas souhaitable) avec 1 seule adresse IP… En tout cas, pour ma part je n’ai pas réussi et j’ai 1 adresse IP supplémentaire…
bonjour
Pourriez vous m’aiser s’il vous plait
j’ai un serveur Kimsufi avec une seule Ip publique et je veux l’installer sous proxmox et créer ensuite des vms qui peuvent causer avec l’exterieur et securisés par un routeur zeroshell.
comment créer ou activer les interfaces virtuelles lo ou bridger les interfaces vmbr1 et vmbr2 .
merci
Il faudrait nous faire un schema le plus precis possible de l.installation et le fichier de conf reseau. A envoyer a webmaster@synergeek.fr
Bonjour,
Je n’arrive pas à connecter mon zeroshell à internet.
Je suis chez ovh. J’ai installé un proxmox depuis leur interface. j’ai installé un zeroshell en suivant ce tuto.
Mon problème est que je n’arrive pas depuis zeroshell à accéder à internet. j’ai tenter un ping 8.8.8.8 sur la machine virtuel zeroshell, mais j’ai que des erreur.
J’ai modifier mon fichier /etc/network/interface comme dans le précédent commentaire (en remplacent les “192…” en “94…” correspondant à l’IP de ma machine), mais ça ne marche pas.
Est-ce que quelqu’un à le même problème que moi ou peut me donner un coup de main ?
Je peux fournir plus de détail si nécessaire !
Merci
j’ai trouver plus facile sur le site de proxmox
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.2
netmask 255.255.255.0
gateway 192.168.10.1
post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
auto vmbr0
iface vmbr0 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s ‘10.10.10.0/24’ -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s ‘10.10.10.0/24’ -o eth0 -j MASQUERADE
en faite tu fais juste une liaison entre eth0 est vmbr0
il te suffit quand tu as crée ta vm de mettre une adresse en 10.10.10.X est de mettre en passerelle 10.10.10.1
voila
eu au lieu de relancer ton network tu peut faire un ifup
ifup “eth0”
pour deco
ifdown “eth0”
Merci Olivier de t’être penché sur ce sujet. Et de l’extérieur, qu’est ce que cela donne. Les VM sont elles accessibles ? et comment ?