web-dev-qa-db-fra.com

comment créer un serveur VPN

Je dois pouvoir connecter mes utilisateurs Windows à mon serveur Ubuntu via un VPN via Internet afin qu'ils puissent parcourir le dossier partagé une fois connecté au serveur. J'ai essentiellement 2 cartes réseau déjà installées. Voici ma configuration etc/network/interface FYI. J'ai 2 serveurs virtuels fonctionnant sur Ubuntu et un deuxième disque dur partageant mes fichiers.

auto lo
iface lo inet loopback

#The Primary network interface
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.2.100
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
dns-nameservers 208.67.222.222 208.67.220.220
dns-search google.com

bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_hello 2
bridge_maxwait 0
post-up ip link set br0 address 00:10:18:77:5e:46

#Secondary network interface
# auto eth1
# iface eth1 inet static
# address 192.168.2.150
# netmask 255.255.255.0
# network 192.168.2.0
# broadcast 192.168.2.255
# gateway 192.168.2.1
# dns-nameserver 192.168.2.1 8.8.8.8

Toute aide est très appréciée. Veuillez également noter que je ne suis pas un expert, mais un débutant.

2
Nilanga

Vous pouvez utiliser le logiciel OpenVPN pour créer un serveur VPN.

Sur Ubuntu, Sudo apt-get install openvpn.

Vous devez créer un fichier de configuration dans /etc/openvpn pour le serveur:

port 1194
proto tcp
dev tun
pkcs12 openvpn.p12
dh dh1024.pem
server 192.168.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun

Nommez simplement ce fichier server.conf par exemple et démarrez votre instance OpenVPN:

Sudo service openvpn start

Cela démarrera un serveur VPN utilisant un périphérique TUN s'exécutant sur toutes les adresses IP du serveur sur le port TCP 1194. Les tunnels VPN se trouveront dans le sous-réseau 192.168.10.0/24, où le serveur recevra 192.168. 10.1 adresse.
La compression LZO est activée et un fichier, ipp.txt, sera utilisé pour conserver l’adresse IP donnée aux clients afin de leur donner à tout moment la même adresse IP.

Pointé par le paramètre dh est un fichier que vous devrez générer vous-même à l'aide de la commande suivante:

openssl dhparam -out dh1024.pem 1024

La partie délicate de cette configuration est l'utilisation de certificats. Ici, j'utilise un fichier PKCS12 contenant une clé privée, son certificat et le certificat de l'autorité de certification.

Pour gérer les clés et les certificats et les exporter facilement, j'ai trouvé l'outil graphique tinyca2 que vous pouvez installer sur Ubuntu avec Sudo apt-get install tinyca2. Cet outil créera une autorité de certification locale et autonome que vous pourrez utiliser pour générer et exporter des clés privées et publiques et des certificats X.509.

Tous les fichiers mentionnés dans la configuration qui n'ont pas de nom de chemin absolu sont situés dans le répertoire /etc/openvpn.

Une fois que votre serveur OpenVPN est en cours d’exécution, vous devez télécharger la version OpenVPN pour Windows (gratuitement) et l’installer sur vos clients Windows.

Ces informations et logiciels sont disponibles sur le site Web OpenVPN .

2
Benoit

Vous devez accomplir plusieurs points:

1. Choisissez votre technologie

Choisissez les protocoles que vous utiliserez pour implémenter le VPN.

Les principales options sont: PPTP, L2TP/IPsec et OpenVPN.

PPTP

Le protocole de tunneling point à point existe depuis plus de 15 ans (Windows 95 avait déjà un client!). C'est un peu un remake de PPP par Microsoft. L'authentification et le chiffrement reposent sur PPP lui-même, de sorte qu'il peut prendre en charge plusieurs méthodes. Pour faire une longue histoire courte, ne l'utilisez pas . La sécurité peut être considérée cassé de nos jours.

L2TP/IPsec

Le protocole L2TP (Layer 2 Tunneling Protocol) ne fournit pas non plus le chiffrement. Il est fourni par IPsec à la place. Il s'agit d'une configuration bien prise en charge dans les environnements Windows. La configuration sous Linux peut parfois être gênante, mais cela pourrait être votre meilleur choix puisque vos clients exécutent Windows.

OpenVPN

Extrait de Wikipedia :

Il utilise un protocole de sécurité personnalisé qui utilise SSL/TLS pour l’échange de clés. Il est capable de traverser des traducteurs d'adresses réseau (NAT) et des pare-feu.

lors de la configuration d'OpenVPN, vous pouvez choisir de créer un adaptateur tun ou un adaptateur tap.

  • L’adaptateur tun fonctionne au niveau 3, ce qui signifie que vous pouvez lui attribuer une adresse IP et le considérer comme un routeur de saut suivant pour votre réseau VPN derrière le tunnel.
  • L’adaptateur tap fonctionne sur la couche 2, vous pouvez donc fusionner les deux extrémités du même réseau. Cela peut s'avérer très utile si vous avez besoin que vos demandes/réponses ARP (ou toute diffusion de couche 2) atteignent l'autre extrémité du tunnel VPN. L'inconvénient: plus d'utilisation de la bande passante.

Cette configuration est la plus simple et devrait couvrir la plupart des besoins des environnements GNU/Linux .

2. Configurez le serveur

Cela dépend bien sûr du choix que vous avez fait auparavant. Au lieu d’afficher une description complète, laissez-moi vous indiquer quelques guides utiles:

  • PPTP - Configuration d'un serveur PPTP sous Ubuntu Server 12.4. Ne devrait pas être très différent pour la version actuelle.
  • L2TP/IPsec - Vous devez configurer ici 2 sous-systèmes: La partie IPsec est gérée par Openswan , mais peut l'être par autres comme strongSwan ou ipsec-tools . 3 guides similaires à choisir: buntu Server 12.4 , buntu Server 14.04 et un générique . Tous comptent sur Openswan.
  • OpenVPN - C’est de loin le moyen le plus simple, mais son inconvénient majeur est de ne pas prendre en charge les fenêtres natives. Ce n’est pas un gros problème car il est également supporté par Windows, mais son installation n’est pas aussi transparente. Vous avez un excellent guide dans le wiki d'aide de la communauté.

En outre, vous devrez faire face à un autre défi: comment les clients s’authentifient, PSK ou PKI?

  • Clé pré-partagée (PSK): si vos clients ont des adresses IP dynamiques, ou si vous voulez qu'ils puissent se déplacer librement tout en restant en mesure de se connecter à votre serveur, tous les clients devront partager le même PSK. Cela signifie (du moins lorsque vous travaillez avec la solution IPsec) que le serveur ne pourra pas distinguer qui est qui (lors de la configuration du tunnel).
  • Infrastructure à clé publique (PKI): il s'agit de la configuration complexe, avec un certificat par client et une autorité de certification racine pour les gouverner toutes (ou sous-autorités de certification). . Juste au cas où vous choisiriez des certificats, laissez-moi vous indiquer ne autre ressource .

3. Configurez les clients

Le fait que PPTP et L2TP/IPsec soient natifs de Windows, cela ne signifie pas que vous ne rencontrerez aucun problème.

  • PPTP est une sorte d'héritage, vous ne devriez pas avoir de problèmes avec cela.
  • L2TP/IPsec : vous devrez copier le certificat racine et configurer la connexion pour l'utiliser ou configurer le PSK IPsec
  • OpenVPN : L’installation de Windows devrait être assez simple, mais elle "doit" être exécutée en tant qu’administrateur. Si vous ne voulez pas, ou ce n'est pas une option, il est possible de courir en tant que non-admin .

Conclusion

  1. N'utilisez pas PPTP.
  2. Même si L2TP/IPsec peut être le meilleur choix pour les environnements Windows, la configuration de superposition et la configuration peuvent vous empêcher de considérer cela faisable. Sans parler des avantages à double tranchant des protocoles Windows natifs: le côté client n'est pas toujours compatible avec Linux.
  3. OpenVPN n’est pas une solution standard, mais il est facile à installer et à configurer , il est assez étendu dans le monde Linux et supporté à la fois par les communautés Linux et Windows.
2
CijcoSistems