Comment installer et configurer le serveur OpenVPN sur Ubuntu 18.04, 16.04

Comment installer et configurer le serveur OpenVPN sur Ubuntu 18.04, 16.04

VPN ou Virtual Private Network est un groupe d'ordinateurs connectés au réseau privé sur le réseau public (Internet). Ces jours-ci, la sécurité est la principale préoccupation pour tout le monde et elle est plus requise en travaillant sur le réseau public.

Comme si vous avez un groupe d'ordinateurs dans un endroit éloigné. Vous devez maintenant accéder à ces ordinateurs en tant que réseau LAN dans votre système. De plus, vous avez besoin que toutes les données devraient être cryptées pendant le transfert entre les ordinateurs. La solution est un VPN. Vous pouvez utiliser un réseau VPN pour connecter deux systèmes de localisation à distance les uns avec les autres, car ils sont sur le même LAN. Ce tutoriel vous aidera à installer et à configurer le serveur OpenVPN sur les systèmes Ubuntu, Debian et Linux Mint.

Étape 1 - Prérequis

Connectez-vous à votre système Ubuntu à l'aide de SSH. Maintenant, mettez à jour le cache APT du système et mettez à jour vos packages système vers les dernières versions.

SUDO APT-GET MISE À JOUR APPORT 

Étape 2 - Installez le serveur OpenVPN

Maintenant, installez le package OpenVPN en tapant la commande ci-dessous. Installez également les packages Easy-RSA pour gérer les certificats SSL requis pour le chiffrement des données entre le serveur et le client.

sudo apt-get install openvpn easy-rsa 

Copiez l'exemple de fichier de configuration pour openvpn sur / etc / openvpn / serveur.fichier de confr. Ceci sera utilisé comme fichier de configuration du serveur OpenVPN.

gunzip -c / usr / share / doc / openvpn / exemples / sampon-config-files / serveur.confli.gz> / etc / openvpn / serveur.confli 

Étape 3 - Configurer le serveur OpenVPN

Modifiez le fichier de configuration du serveur OpenVPN dans votre éditeur de texte préféré.

vim / etc / openvpn / serveur.confli 

Retirer le ";" aux lignes non commises ou ajouter de nouvelles lignes pour les entrées suivantes dans le fichier de configuration.

 TLS-AUTH TA.clé 0 clés-direction 0 Cipher AES-256-CBC Auth Sha256 comp-lzo utilisateur personne ne groupe Nogroup certit serveur.serveur clé CRT.clé 

Les paramètres ci-dessus permettront une connexion VPN entre les systèmes. Mais ils ne dirigeront pas le trafic Internet du client via VPN. Aussi, inconditionnellement les valeurs de l'option DHCP.

 Push "Redirect-Gateway Def1 Bypass-DHCP" Push "DHCP-Option DNS 208.67.222.222 "push" dhcp-option DNS 208.67.220.220 " 

Étape 4 - Mettre à jour la configuration du réseau

Faites certains paramètres réseau pour permettre aux utilisateurs d'accéder au serveur sur le même réseau de serveurs OpenVPN. Tout d'abord, permettez le transfert IP sur le serveur en exécutant les commandes ci-dessous pour définir Net.ipv4.IP_Forward Valeur à 1 in / etc / sysctl.fichier de confr.

Echo "net.ipv4.ip_forward = 1 ">> / etc / sysctl.Conf sudo sysctl -p 

Masquerade le trafic Internet provenant du réseau VPN (10.8.0.0/24) à l'interface du réseau local des systèmes (ETH0). Où 10.8.0.0 est mon réseau VPN et Eth0 est l'interface réseau de mon système.

sudo modprobe iptable_nat sudo iptables -t nat -a post-artouting -s 10.8.0.0/24 -o eth0 -j mascarade 

Étape 5 - Autorité de certificat de configuration

OpenVPN fournit un service VPN sécurisé à l'aide du chiffrement TLS / SSL du trafic entre le serveur et le client. Pour cela, vous devez délivrer des certificats de confiance pour que les serveurs et les clients fonctionnent. Pour délivrer des certificats, vous devez configurer l'autorité de certificat sur votre système.

Créons un répertoire pour l'autorité de certificat à l'aide de la commande make-cadir. Cette commande initialise également le répertoire avec les fichiers requis.

make-cadir / etc / openvpn / openvpn-ca / cd / etc / openvpn / openvpn-ca / 

Modifier le fichier VARS dans votre éditeur de texte préféré.

VIM VARS 

et mettre à jour les valeurs ci-dessous au besoin. Ces valeurs seront utilisées comme valeurs par défaut pour émettre les certificats pour les serveurs et les clients. Vous pouvez également écraser ces valeurs pendant la création de certificat.

export key_country = "us" export key_provincin = "ca" export key_city = "sanfrancisco" export key_org = "tecadmin" export key_email = "[e-mail protégé]" export key_ou = "security" 

Chargez les valeurs dans l'environnement système.

Source VARS 

Utilisez maintenant ./ nettoyer tout pour supprimer les touches de sortie, puis exécuter ./ build-ca pour créer des certificats CA sous / etc / openvpn / openvpn-ca / répertoire.

./Nettoie tout ./ build-ca 

Exemple de sortie de la commande ci-dessus:

Génération d'une clé privée RSA 2048 bits… +++… +++ écrivant une nouvelle clé privée pour 'CA.Key '----- Il vous est demandé de saisir des informations qui seront intégrées à votre demande de certificat. Ce que vous êtes sur le point d'entrer, c'est ce qu'on appelle un nom distingué ou un DN. Il y a pas mal de champs mais vous pouvez laisser un peu de blanc pour certains champs, il y aura une valeur par défaut, si vous entrez '.', Le champ sera laissé vide. ----- Nom du pays (code de 2 lettres) [États-Unis]: Nom de l'État ou de la province (nom complet) [CA]: Nom de la localité (par exemple, ville) [Sanfrancisco]: Nom de l'organisation (par exemple, société) [Tecadmin]: Nom de l'unité organisationnelle (par exemple , Section) [Sécurité]: Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) [Tecadmin Ca]: Nom [Easyrsa]: Adresse e-mail [[e-mail protégé]]: 

Maintenant, votre système est prêt comme autorité de certificat pour délivrer les certificats.

Étape 6 - Générer des fichiers de certificat de serveur

Créez d'abord les certificats pour le serveur OpenVPN à l'aide du ./ Commande Build-Key-Server suivie d'un serveur de mots clés pour générer des certificats pour le serveur. Cela créera des certificats requis, fichier clé sous les clés du répertoire.

cd / etc / openvpn / openvpn-ca / ./ serveur de serveur de clé de construction 

Exemple de sortie de la commande ci-dessus:

… Signature Ok le nom distingué du sujet est le suivant CountryName: imprimable: `` US '' StateorProvinceName: imprimable: 'CA' LocalityName: imprimable: 'SanFrancisco' Organisationname: imprimable: 'Tecadmin' OrganizationUnitName: imprimable: 'Sécurité' CommonName: imprimable: ' Nom du serveur: imprimable: «Easyrsa» EmailAddress: ia5string: «[e-mail protégé]« Le certificat doit être certifié jusqu'au 2 janvier 05:33:24 2028 GMT (3650 jours) Signer le certificat? [O / N]: Y 1 des demandes de certificat sur 1 certifiées, engagez-vous? [O / N] y Écrivez la base de données avec 1 nouvelle base de données à mise à jour 

Générez maintenant une touche Diffie-Hellman forte à utiliser pour l'échange de clés en utilisant la commande. Cette commande peut prendre un certain temps pour terminer.

OpenSSL DHPARAM -out / etc / OpenVPN / DH2048.PEM 2048 

Après cela, générez une signature HMAC pour rendre les capacités de vérification d'intégrité TLS plus sécurisées du serveur.

OpenVPN --Genkey --secret / etc / openvpn / openvpn-ca / keys / ta.clé 

Après avoir créé tous les fichiers, copiez-les dans / etc / openvpn répertoire.

cd / etc / openvpn / openvpn-ca / keys sudo cp ca.crt ta.serveur clé.serveur CRT.clé / etc / openvpn 

Étape 7 - Démarrez le service OpenVPN

Le serveur OpenVPN est prêt maintenant. Commençons le service à l'aide de la commande SystemCTL. Vérifiez également l'état du service.

Sudo SystemCTL Démarrer [Protégé par e-mail] Sudo SystemCTL Status [Protégé par e-mail] 

Sur le début du service réussi, vous verrez des résultats comme ci-dessous.

● [Protégé par e-mail] - Connexion OpenVPN au serveur chargé: chargé (/ lib / systemd / system / [e-mail protégé]; désactivé; fournisseur préréglé: activé) actif: actif (en cours d'exécution) depuis le jeu 2018-01-04 11:09: 51 ist; Il y a 6s Docs: Homme: OpenVPN (8) https: // Communauté.openvpn.net / openvpn / wiki / openvpn23manpage https: // communauté.openvpn.net / openvpn / wiki / howto processus: 4403 execstart = / usr / sbin / openvpn --daemo ovpn-% i --status / run / openvpn /% i.Statut 10 --cd / etc / openvpn - Pid principal: 4404 (openvpn) cgroup: / système.tranche / système-openvpn.SLICE / [Protégé par e-mail] └fique.Statut 10 --cd / etc / openvpn - Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404]: / sbin / ip addr addr tun0 local 10.8.0.1 pair 10.8.0.2 janvier 04 11:09:51 LAITKOR237 OVPN-Server [4404]: / SBIN / IP Route Ajouter 10.8.0.0/24 via 10.8.0.2 janvier 04 11:09:51 Laitkor237 Ovpn-Server [4404]: GID Set to Nogroup Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404]: UID Set à Nobody Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404]: UDPV4 Link Local (Bound): [Undef] Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404]: Lien UDPV4 Remote: [Undef] Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404] : Multi: Multi_init appelé, r = 256 V = 256 Jan 04 11:09:51 LAITKOR237 OVPN-Server [4404]: Ifconfig Pool: Base = 10.8.0.4 size = 62, ipv6 = 0 jan 

OpenVPN créera un nom d'interface réseau Tun0. Exécutez la commande ci-dessous pour afficher l'IP affecté à l'interface. Il attribue principalement la première IP du réseau défini dans le serveur.fichier de confr.

ifconfig tun0 

Étape 8 - Générer la configuration du client

Votre serveur OpenVPN est prêt à l'emploi. Générez maintenant les fichiers de configuration du client, y compris la clé privée, les certificats. J'ai facilité ce processus pour générer un nombre de fichiers de configurations à l'aide d'un script simple. Suivez les étapes ci-dessous pour générer des fichiers de configuration. Assurez-vous d'utiliser une structure de répertoire correcte.

MKDIR / ETC / OpenVPN / CLIENTS CD / etc / OpenVPN / 

Créez un fichier de script shell comme ci-dessous.

VIM Make-VPN-CLIENT.shot 

Copiez le contenu ci-dessous. Mettez à jour la variable OpenVPN_SERVER avec l'adresse IP du serveur OpenVPN OpenVPN et enregistrez-la.

#!/ bin / bash # générer des fichiers de configuration des clients openvpn. Client_name = 1 $ openvpn_server = "192.168.1.237 "CA_DIR = / etc / openvpn / openvpn-ca client_dir = / etc / openvpn / clients cd $ Ca_dir Source Vars ./ build-key $ client_name echo "client dev tun proto udp distote $ openvpn_server 1194 utilisateur nogroup nogroup persist-key persist-tun cipher aes-128-cbc autha256 key-direction 1 télécommande-cerf-tls server complow -lzo verbe 3 "> $ client_dir / $ client_name.chat ovpn <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir / $ client_name.OVPN ECHO -E "Fichier client créé - $ client_dir / $ client_name.ovpn "
1234567891011121314151617181920212223242526272829303132334353637383940#!/ bin / bash # générer des fichiers de configuration des clients openvpn. Client_name = 1 1Openvpn_Server = "192.168.1.237 "Ca_dir = / etc / openvpn / openvpn-caclient_dir = / etc / openvpn / clients cd $ ca_dir./ build-key $ client_name echo "ClientDev Tunproto udpremote $ openvpn_server 1194USER NOBATUP NOGROUPPERSIST-KEYPERSIST-TUNCHER AES-128-CBCAUTH SHA256KEYKED-DIRECT NOM DU CLIENT.chat ovpn <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir / $ client_name.OVPN ECHO -E "Fichier client créé - $ client_dir / $ client_name.ovpn "

Définissez l'autorisation d'exécution sur le script nouvellement créé.

chmod + x ./ Make-VPN-CLIENT.shot 

Utilisez maintenant ce script pour générer un fichier de configuration pour les clients VPN, y compris les certificats et les clés. Vous devez passer le nom du client comme paramètre de ligne de commande.

./ Make-VPN-CLIENT.sh vpnclient1 

Appuyez sur Entrée pour les valeurs par défaut du certificat. À la fin, il incitera le signe du certificat et commettra. Appuyez sur Y pour les deux entrées.

Le certificat doit être certifié jusqu'au 2 janvier 07:18:10 2028 GMT (3650 jours) signer le certificat? [O / N]: Y 1 des demandes de certificat sur 1 certifiées, engagez-vous? [O / N] Y Écrivez la base de données avec 1 nouvelle entrées Base de données Fichier client mis à jour créé - / etc / openvpn / clients / vpnclient1.OVPN 

Le script ci-dessus créera un fichier de configuration client sous / etc / openvpn / clients / répertoire avec le nom du client avec .Extension OVPN comme le montre dans la dernière ligne de sortie. Utilisez ce fichier pour se connecter à partir de systèmes distants.

Étape 9 - Connectez VPN des clients

Vous avez besoin du fichier de configuration généré par le haut

Clients Windows

Téléchargez le logiciel OpenVPN GUI Client à partir de sa page de téléchargement officielle et installez-vous sur votre système. Copiez maintenant le donné .Fichier OVPN sous C: \ Program Files \ OpenVPN \ Config File \ Directory. Maintenant, lancez maintenant le client OpenVPN GUI et connectez-vous. Sur une connexion réussie, vous serez une icône verte dans les notifications à fond droit. Vous pouvez afficher l'état par rigth cliquez sur l'icône.

Clients Linux

Sur les clients Linux, vous devez d'abord installer des packages OpenVPN. Après cela, utilisez la commande suivante pour se connecter au serveur OpenVPN à l'aide du fichier de configuration du client donné.

OpenVPN - Config Client1.OVPN 

Après la connexion réussie, OpenVPN attribuera une adresse IP à votre système. Utilisez la commande suivante pour vérifier l'adresse IP attribuée.

ifconfig tun0 

[sortir]

Lien Tun0 ENCAP: USPEC HWADDR 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 INET ADDR: 10.8.0.18 P-T-P: 10.8.0.17 Masque: 255.255.255.255 UP PointOpoint Running NOARP Multicast MTU: 1500 Metric: 1 Rx Paquets: 0 Erreurs: 0 Drop: 0 Délocations: 0 Frame: 0 Paquets TX: 0 Erreurs: 0 Drop: 0 Overuns: 0 Carrier: 0 Collisions: 0 Txqueuelen: 100 Rx octets: 0 (0.0 b) octets tx: 0 (0.0 b)