GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Le moyen le plus simple d'installer et de configurer le serveur OpenVPN sous Linux

Ce guide décrit comment installer et configurer le serveur OpenVPN dans les systèmes basés sur RPM et DEB. Dans ce guide, nous allons utiliser un script appelé openvpn-install qui automatise l'ensemble du processus d'installation et de configuration du serveur OpenVPN. Ce script vous aide à configurer votre propre serveur VPN en quelques minutes, même si vous n'avez jamais utilisé OpenVPN auparavant.

Commençons.

Installer et configurer le serveur OpenVPN sous Linux

Aux fins de ce guide, j'utiliserai deux systèmes fonctionnant avec l'édition CentOS 7 64 bits. L'un agit en tant que serveur OpenVPN, un autre agit en tant que client openVPN. Voici les détails de mes boîtes de test.

Serveur OpenVPN :

  • SE :CentOS 7 édition minimale 64 bits
  • IP :192.168.43.150/24
  • Nom d'hôte :vpnserver.ostechnix.local

Client OpenVPN :

  • SE  :CentOS 7 édition minimale 64 bits
  • IP :192.168.43.199/24

Tout d'abord, nous verrons la configuration côté serveur.

Installation et configuration du serveur OpenVPN

Téléchargez le script openvpn-install depuis sa page GitHub.

wget https://git.io/vpn -O openvpn-install.sh

Ensuite, exécutez le script à l'aide de la commande suivante en tant qu'utilisateur root :

bash openvpn-install.sh

Il vous sera demandé de répondre à une série de questions. Répondez-y en conséquence.

Assurez-vous que l'adresse IP du serveur VPN est correcte. Si vous utilisez plusieurs adresses IP, saisissez l'adresse IP de l'interface réseau que vous souhaitez qu'OpenVPN écoute.

Welcome to this quick OpenVPN "road warrior" installer

I need to ask you a few questions before starting the setup
 You can leave the default options and just press enter if you are ok with them

First I need to know the IPv4 address of the network interface you want OpenVPN
 listening to.
 IP address: 192.168.43.150

Sélectionnez le protocole que vous souhaitez utiliser. Je veux utiliser le port tcp, j'ai donc sélectionné le numéro 2.

Which protocol do you want for OpenVPN connections?
 1) UDP (recommended)
 2) TCP
Protocol [1-2]: 2

Entrez le numéro de port.

What port do you want OpenVPN listening to?
Port: 1194

Entrez les détails du serveur DNS que vous souhaitez utiliser avec le VPN. Je souhaite utiliser les résolveurs Google DNS, j'ai donc sélectionné l'option 2.

Which DNS do you want to use with the VPN?
 1) Current system resolvers
 2) Google
 3) OpenDNS
 4) NTT
 5) Hurricane Electric
 6) Verisign
DNS [1-6]: 2

Nous avons atteint la dernière étape. Saisissez le nom de votre certificat client. Le nom doit être composé d'un seul mot et ne doit contenir aucun caractère spécial.

Finally, tell me your name for the client certificate
Please, use one word only, no special characters
Client name: client

Appuyez sur la touche ENTRÉE pour lancer l'installation du serveur OPENVPN.

Okay, that was all I needed. We are ready to setup your OpenVPN server now
Press any key to continue...

Npw, ce script commencera à installer tous les packages nécessaires pour configurer le serveur OpenVPN. De plus, il créera toutes les clés et certificats nécessaires pour s'authentifier auprès des clients VPN. Cela prendra quelques minutes.

Enfin, le script vous demandera si vous avez une adresse IP externe. Si vous n'en avez pas, ignorez-le simplement en le laissant vide et appuyez sur la touche ENTRÉE.

If your server is NATed (e.g. LowEndSpirit), I need to know the external IP
If that's not the case, just ignore this and leave the next field blank
External IP: 

Finished!

Your client configuration is available at /root/client.ovpn
If you want to add more clients, you simply need to run this script again!

L'installation et la configuration du serveur OpenVPN sont terminées. Comme vous le voyez dans la dernière sortie, les détails de configuration du client sont stockés dans un fichier /root/client.ovpn . Vous devez copier ce fichier sur tous vos systèmes clients VPN.

J'ai copié le fichier client.ovpn sur mon client VPN

scp client.ovpn [email protected]:/etc/openvpn/

Ensuite, nous devons configurer le client OpenVPN.

Télécharger - Vidéo gratuite :"Cours de formation sur les méthodologies de test d'intrusion (une valeur de 99 $ !) GRATUIT"

Configuration du client OpenVPN

Assurez-vous d'avoir copié le fichier client.ovpn à partir de votre système de serveur VPN. J'ai déjà copié ce fichier dans le répertoire /etc/openvpn/ de mon système client VPN.

Installez le package OpenVPN à l'aide du gestionnaire de packages de distribution.

yum install openvpn

Ensuite, exécutez la commande suivante pour établir une connexion sécurisée avec le serveur VPN.

openvpn --config /etc/openvpn/client.ovpn

Exemple de résultat :

Wed Apr 5 18:50:44 2017 Unrecognized option or missing parameter(s) in /etc/openvpn/client.ovpn:14: block-outside-dns (2.3.14)
Wed Apr 5 18:50:44 2017 OpenVPN 2.3.14 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec 7 2016
Wed Apr 5 18:50:44 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Wed Apr 5 18:50:44 2017 Control Channel Authentication: tls-auth using INLINE static key file
Wed Apr 5 18:50:44 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Socket Buffers: R=[87380->87380] S=[16384->16384]
Wed Apr 5 18:50:44 2017 Attempting to establish TCP connection with [AF_INET]192.168.43.150:1194 [nonblock]
Wed Apr 5 18:50:45 2017 TCP connection established with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link local: [undef]
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link remote: [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TLS: Initial packet from [AF_INET]192.168.43.150:1194, sid=c6fb554e 362eb192
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=1, CN=ChangeMe
Wed Apr 5 18:50:45 2017 Validating certificate key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has key usage 00a0, expects 00a0
Wed Apr 5 18:50:45 2017 VERIFY KU OK
Wed Apr 5 18:50:45 2017 Validating certificate extended key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Wed Apr 5 18:50:45 2017 VERIFY EKU OK
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=0, CN=server
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Wed Apr 5 18:50:45 2017 [server] Peer Connection Initiated with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:48 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Apr 5 18:50:48 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0'
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: timers and/or timeouts modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ifconfig/up options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route-related options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Apr 5 18:50:48 2017 ROUTE_GATEWAY 192.168.43.1/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:28:98:6b
Wed Apr 5 18:50:48 2017 TUN/TAP device tun0 opened
Wed Apr 5 18:50:48 2017 TUN/TAP TX queue length set to 100
Wed Apr 5 18:50:48 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Apr 5 18:50:48 2017 /usr/sbin/ip link set dev tun0 up mtu 1500
Wed Apr 5 18:50:48 2017 /usr/sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 192.168.43.150/32 dev enp0s3
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 Initialization Sequence Completed

Maintenant, vérifiez si tun0 (interface VPN) est créée et vérifiez l'adresse IP de l'interface VPN à l'aide de la commande 'ip addr' :

ip addr

Exemple de résultat :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:28:98:6b brd ff:ff:ff:ff:ff:ff
 inet 192.168.43.199/24 brd 192.168.43.255 scope global dynamic enp0s3
 valid_lft 42359sec preferred_lft 42359sec
 inet6 fe80::a00:27ff:fe28:986b/64 scope link 
 valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
 link/none 
 inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
 valid_lft forever preferred_lft forever

Comme vous pouvez le voir dans la sortie ci-dessus, notre serveur VPN a automatiquement attribué une adresse IP 10.8.0.2 au client VPN.

Maintenant, essayez d'envoyer un ping au serveur VPN depuis votre système client VPN :

ping -c3 10.8.0.1

Exemple de résultat :

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=1.05 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.94 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=2.49 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 1.057/1.832/2.495/0.594 ms

Toutes nos félicitations! Nous avons maintenant installé et configuré avec succès le serveur et le client OpenVPN dans CentOS. Cette méthode est la même pour les systèmes basés sur DEB tels que Ubuntu et Linux Mint. Contrairement à l'installation manuelle, ce script facilite grandement l'installation et la configuration d'openvpn.

Santé !


OpenVPN
  1. Configurez votre serveur OpenVPN sous Linux

  2. Installez OpenVPN sur votre PC Linux

  3. Installer et configurer le client OpenVPN sur Rocky Linux 8

  4. Installer et configurer le serveur OpenVPN sur Ubuntu 20.04

  5. Installer et configurer le serveur OpenVPN FreeBSD 12

Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

Comment installer et configurer le serveur OpenVPN dans CentOS 8/7

Comment installer et configurer un serveur NFS sur un système Linux

Comment installer et configurer le serveur Apache SVN sur le bureau Linux

4 étapes faciles pour installer et configurer VMware Server 2 sur Linux

Comment installer et configurer le serveur DNS sous Linux