Différences entre versions de « Mettre en place un Remote VPN avec VMware »

De Ikoula Wiki
Jump to navigation Jump to search
(Ajout catégorie VCD)
 
Ligne 341 : Ligne 341 :
  
 
[[Catégorie:VMWare]]
 
[[Catégorie:VMWare]]
 +
[[Catégorie:VCD]]

Version actuelle datée du 25 janvier 2023 à 11:12

Mettre en place un Remote VPN avec un infrastructure VMware Cloud Director

VMware Cloud Director propose la possibilité de mettre en place un VPN site à site mais ne propose pas de Remote VPN.

Nous avons donc utilisé les fonctionnalités d'un serveur VPN pour réaliser cette fonction.

Nous avons reproduit l'architecture suivante :


Schema.png


Dans cet exemple, le Serveur VPN est un serveur Ubuntu.


Configuration

Configuration de VMware Cloud Director

Dans un premier temps nous allons configurer la partie réseau de VMware Cloud Director.

Pour cela, il vous faut dans un premier temps configurer votre Edge (Pare-feu Vmware).

Pour cela, il vous faut aller dans votre VDC (Datacenter Virtuel)

Vmware.PNG

Il vous faut ensuite aller sur votre Edge.

Edge.PNG

Vous pourrez alors gérer les règles de pare-feu et de NAT à ce endroit.

Firewall.PNG

Vous pourrez créer de nouvelles règles de pare-feu selon vos besoins.

Firewall2.PNG

Dans cet exemple nous n'avons pas mis de restriction sur le pare-feu.

Les règles de pare-feu sont selon vos besoin, le mieux étant de restreindre au maximum les flux non désirés.

Pour ce qui est du NAT, nous avons mis en place le NAT suivant :

NAT.PNG

Les deux lignes importantes sont celle translatant votre IP publique vers l'IP de votre Serveur VPN.

Vous devez ensuite configurer le réseau :

Reseau.PNG

Il est important de choisir "Acheminé" ou "Routed" pour que l'IP publique de votre Serveur VPN soit accessible.

Reseau2.PNG

Il vous faut ensuite définir le Edge concerné.

Reseau3.PNG

Vous devez également définir votre réseau ainsi que les IP dont il dispose.

Reseau4.PNG

Reseau5.PNG

Vous pouvez sélectionner les DNS que vous souhaitez.

Reseau6.PNG

Et enfin un bref récapitulatif :

Reseau7.PNG

Pour ce qui est de la configuration de VMware, chaque machine créée sur ce réseau avec une IP du slash attribué devrait être joignable.


Configuration du Serveur

Passons maintenant à la partie configuration du serveur VPN. A ce stade, votre Serveur VPN doit être joignable sur son IP publique et être capable de communiquer avec d'autre machines du même réseau.

Pour cela, nous avons utilisé OpenVPN.

Dans un premier temps, vous devez éditer le fichier /etc/sysctl.conf et décommenter la ligne net.ipv4.ip_forward=1 pour permettre au serveur de transmettre les paquets.

Vous devez ensuite faire la commande :

sysctl -p

Un redémarrage du serveur peut être nécessaire pour rendre le VPN fonctionnel.


Une fois cette partie faite, vous devez ouvrir les ports de votre pare-feu avec les commandes suivantes :

ufw allow 22/tcp
ufw allow 1194/udp
ufw allow 51820/udp
ufw enable

Vous pouvez vérifier que ces commandes sont prises en compte avec :

ufw status verbose

Il faut en suite modifier le fichier /etc/default/ufw et remplacer DEFAULT_FORWARD_POLICY="DROP" par DEFAULT_FORWARD_POLICY="ACCEPT".

Puis éditer /etc/ufw/before.rules en y ajoutant le paragraphe suivant :

RulesVPN.PNG

Ici, 10.8.0.0/24 est le réseau de votre VPN et ens192 est l'interface de votre machine.


Vous devrez ensuite faire les commandes suivantes :

wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add -
echo "deb http://build.openvpn.net/debian/openvpn/<version> <osrelease> main" > /etc/apt/sources.list.d/openvpn-aptrepo.list

Il vous faut remplacer la version par l'une des suivantes selon votre choix :


stable: stable releases only - no alphas, betas or RCs

testing: latest releases, including alphas/betas/RCs

release/2.3: OpenVPN 2.3 releases

release/2.4: OpenVPN 2.4 releases, including alphas/betas/RCs

release/2.5: OpenVPN 2.5 releases, including alphas/betas/RCs

de même pour osrealease :

wheezy (Debian 7.x)

jessie (Debian 8.x)

stretch (Debian 9.x)

buster (Debian 10.x)

precise (Ubuntu 12.04)

trusty (Ubuntu 14.04)

xenial (Ubuntu 16.04)

bionic (Ubuntu 18.04)

focal (Ubuntu 20.04)

apt-get update && apt-get install openvpn
systemctl start openvpn.service
cd /root/
git clone https://github.com/OpenVPN/easy-rsa
cd easy-rsa/easyrsa3/
./easyrsa init-pki
./easyrsa build-ca

-> Sert à générer le certificat CA nécessaire à la création des certificats serveurs et clients. Il est important de noter les mots de passes renseigné lors de la création.

./easyrsa build-client-full

-> Sert à créer le certificat client

./easyrsa build-server-full

-> Sert à créer le certificat serveur

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
cd /etc/openvpn
gunzip /etc/openvpn/server.conf.gz

Vous pouvez ensuite modifier à votre convenance le fichier server.conf.

Nous sommes parvenu au résultat suivant :

port 1194
proto udp4
dev tun
ca /root/easy-rsa/easyrsa3/pki/ca.crt
cert /root/easy-rsa/easyrsa3/pki/issued/server.crt
key /root/easy-rsa/easyrsa3/pki/private/server.key  # This file should be kept secret
dh /root/easy-rsa/easyrsa3/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
client-to-client
keepalive 10 120
cipher AES-128-CBC
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1

Vous pouvez ensuite faire la commande openvpn server.conf afin de démarré le serveur VPN.

Vous devriez donc avoir une nouvelle interface tun0 avec une IP du slash choisi.


Configuration du client VPN

Nous avons choisi d'installer ce client sur un Debian, cependant, il est possible de l'installer sur tout système d'exploitation.

Pour l'installation, vous devez faire les commandes suivantes :

apt-get install openvpn
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
cd /etc/openvpn/
vi client.conf
mkdir easy-rsa
cd easy-rsa/
mkdir keys

Vous devez ensuite importer vos fichier ca.crt ainsi que le certificat et la clé privée du client sur le poste client VPN puis éditer votre fichier client.conf.

Dans notre exemple nous obtenons le résultat suivant :

client
dev tun
proto udp4
remote 178.170.34.2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/celien.crt
key /etc/openvpn/easy-rsa/keys/celien.key
remote-cert-tls server
cipher AES-128-CBC
verb 3

A partir de ce moment la configuration de votre VPN devrait fonctionner.

Vous pouvez démarrer le client VPN avec la commande : openvpn client.conf

Votre Client et serveur devraient à présent être capables de communiquer sur les IP liées au VPN.

Nous avons pu constater que pour que les machines présentes sur le réseau privé du serveur VPN, puissent communiquer, il est nécessaire d'ajouter une route comme celle-ci sur les machines :

route add -net <votre réseau VPN> netmask <votre masque> gw <l'IP du serveur VPN>

A présent chaque équipement devrait être capable de communiquer par le biais du VPN.