GNU/Linux >> Tutoriels Linux >  >> OpenSuse

Comment installer et configurer OpenVPN sur OpenSUSE Leap 42.1

Un VPN ou réseau privé virtuel est un réseau privé sécurisé sur un réseau public comme Internet. Un VPN est un tunnel sécurisé sur Internet qui protège votre trafic de données et augmente la confidentialité et la sécurité sur Internet. L'accès au VPN est limité par des méthodes d'authentification sécurisées.

OpenVPN est un logiciel open source pour créer des réseaux privés virtuels, il utilise la bibliothèque OpenSSL pour crypter les données tunnelées et prend en charge les transports UDP ou TCP. OpenVPN peut utiliser des clés pré-partagées, des mécanismes d'authentification basés sur des certificats et des noms d'utilisateur/mots de passe.

Dans ce tutoriel, je vais vous montrer comment implémenter un réseau privé virtuel en utilisant OpenVPNvpn sous le système d'exploitation Linux OpenSUSE Leap 42.1.

Prérequis

  • OpenSUSE Leap 42.1 - 64 bits
  • Privilèges root
  • TUN/TAP activé

Étape 1 - Vérifier si TUN/TAP est activé

Si vous souhaitez créer un VPN sur votre serveur, assurez-vous que TUN/TAP est installé et activé. Vous pouvez vérifier cela avec la commande ci-dessous :

cat /dev/net/tun

Le résultat devrait être :

cat: /dev/net/tun: File descriptor in bad state

Étape 2 - Installer OpenVPN

OpenVPN est disponible dans le référentiel OpenSUSE. Vous pouvez l'installer à l'aide de la commande zypper :

zypper in openvpn

Étape 3 - Configuration Easy-RSA

Ensuite, téléchargez easy-rsa pour générer un fichier de certificat. easy-rsa est un utilitaire de gestion des certificats, vous pouvez créer l'autorité de certification racine avec lui et demander et signer des certificats.

Allez dans le répertoire OpenVPN et téléchargez easy-rsa avec la commande wget :

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

Extrayez l'archive et déplacez le répertoire easy-rsa :

unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/

Configurer la clé

Accédez au répertoire easy-rsa et modifiez le fichier vars pour configurer la clé et le certificat :

cd easy-rsa/2.0/
vim vars

Ligne 53 - Si vous êtes vraiment paranoïaque, vous pouvez augmenter la taille de la clé.

export KEY_SIZE=2048

Lignes 56 et 59 - Dans combien de jours la clé et le certificat expireront.

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

Ligne 64 - 72 - Modifiez la valeur par défaut des informations de clé et de certificat.

export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]main"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"

Enregistrez le fichier et quittez.

Initialiser la PKI

Ensuite, initialisez la PKI (Public Key Infrastructure) :

source ./vars && ./clean-all && ./build-ca

Nous allons laisser la valeur par défaut, appuyez simplement sur "Entrée".

Générer les paramètres Diffie Hellman

Exécutez la commande ci-dessous :

./build-dh

Vous verrez le résultat :

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................

Générer la clé privée du serveur

Générez la clé privée avec le nom "serveur":

./build-key-server server

Appuyez sur Entrée et tapez "y" pour confirmer la génération de la clé.

Générer une clé et un certificat pour le client

Générez la clé client et le certificat avec le nom "client1":

./build-key client1

Appuyez sur Entrée et tapez "y" pour confirmer la génération de la clé.

La clé et le certificat ont été générés dans le répertoire "keys". Faites maintenant une copie du répertoire "keys" et placez-la dans le répertoire "openvpn".

cp -r keys/ /etc/openvpn/

Étape 4 - Configurer OpenVPN

Dans cette étape, nous allons configurer OpenVPN pour qu'il s'exécute sur le protocole UDP, en utilisant le port 2034 pour la connexion client. Créez le nouveau fichier de configuration server.conf dans le répertoire OpenVPN.

cd /etc/openvpn/
vim server.conf

Collez la configuration ci-dessous :

#change with your port
port 2034

#You can use udp or tcp
proto udp

# "dev tun" will create a routed IP tunnel.
dev tun

#Certificate Configuration

#ca certificate
ca /etc/openvpn/keys/ca.crt

#Server Certificate
cert /etc/openvpn/keys/server.crt

#Server Key and keep this is secret
key /etc/openvpn/keys/server.key

#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem

#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0

#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"

#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

#Enable multiple client to connect with same key
duplicate-cn

keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon

#openvpn status log
status /var/log/openvpn/openvpn-status.log

#enable log
log-append /var/log/openvpn/openvpn.log

#Log Level
verb 3

Enregistrez le fichier et quittez l'éditeur.

Ensuite, créez un nouveau répertoire et fichier pour le journal openvpn :

mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log

Étape 5 - Configurer SuSEfirewall2

SuSEfirewall2 est un script permettant de générer des règles iptables basées sur le fichier "/etc/sysconfig/SuSEfirewall2". Nous allons installer SuSEfirewall2 puis configurer le port pour accéder à OpenVPN, puis nous allons activer NAT avec un script iptables pour OpenVPN.

Installez SuSEfirewall2 avec la commande zypper :

zypper in SuSEfirewall2

Maintenant, allez dans le répertoire sysconfig et modifiez le fichier de configuration de SuSEfirewall2 :

cd /etc/sysconfig/
vim SuSEfirewall2

Ligne 134 - Activer l'itinéraire.

FW_ROUTE="yes"

Ligne 253 - Activez le port TCP 22 pour l'accès SSH depuis l'extérieur du réseau.

FW_SERVICES_EXT_UDP="22"

Ligne 267 - Activer le port udp pour l'accès client openvpn - port 2034.

FW_SERVICES_EXT_UDP="2034"

Ligne 877 - Activer les règles personnalisées SuSEfirewall2.

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

Enregistrez et quittez.

Modifiez ensuite les règles personnalisées de SuSEfirewall2 dans le répertoire des scripts.

cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom

Dans la directive "fw_custom_after_chain_creation", collez les nouvelles règles iptables pour OpenVPN :

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

Enregistrez et quittez.

Remarque :

IP 10.10.2.0/24 est le réseau du fichier de configuration openVPN server.conf.

Nous pouvons maintenant activer le transfert en ajoutant cette nouvelle ligne de configuration au fichier sysctl.conf.

vim /etc/sysctl.conf

Collez la configuration ci-dessous :

net.ipv4.ip_forward = 1

Enregistrez et quittez.

Remarque :

Si vous avez déjà la ligne dans le fichier, modifiez la valeur de "0" à "1" au lieu d'ajouter une nouvelle ligne.

Exécutez maintenant la commande ci-dessous pour appliquer la modification de configuration.

sysctl -p

Démarrez SuSEfirewall2 et le serveur OpenVPN :

systemctl start SuSEfirewall2
systemctl start [email protected]

Si vous avez une erreur, vous pouvez voir le message d'erreur détaillé dans le journal OpenVPN.

Ajouter tous les services au démarrage du système :

systemctl enable SuSEfirewall2
systemctl enable [email protected]

Étape 5 - Configurer le client

Téléchargez la clé client et le certificat du répertoire des clés sur votre ordinateur local. Vous pouvez utiliser la commande scp ou sftp, j'utilise ici scp :

Commande qui doit être exécutée sur l'ordinateur local.

scp [email protected]:~/etc/openvpn/keys/ca.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.key ~/myvpn/

Dans le répertoire myvpn, créez un nouveau fichier de configuration pour le client "client1.ovpn".

cd ~/myvpn/
vim client1.ovpn

Collez la configuration ci-dessous :

client
dev tun
proto udp

#Server IP and Port
remote SERVERIP 2034

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo

Enregistrez et quittez.

Pour vous connecter à notre VPN, vous pouvez installer un client VPN ou si vous utilisez Linux, vous pouvez utiliser le "Network-Manager". Si vous souhaitez tester le VPN avec un terminal, vous pouvez utiliser la commande ci-dessous :

cd ~/myvpn/
sudo openvpn --config client1.ovpn


OpenSuse
  1. Comment installer et configurer Postgres 14 sur OpenSUSE Leap 15.3

  2. Comment installer Mongodb 5 dans Opensuse Leap 15.3

  3. Comment installer et configurer Redis 6 sur OpenSUSE Leap 15.3

  4. Comment installer et configurer Nginx en tant que proxy OpenSUSE Leap 15.3

  5. Comment installer et configurer Mariadb 10 dans OpenSUSE Leap 15.3

Comment installer un bureau KDE OpenSUSE Leap 42.1

Installer et configurer KVM dans OpenSUSE Tumbleweed

Comment installer Skype sur openSUSE Leap

Comment installer TeamViewer 12 sur openSUSE Leap 42.2

Comment installer Dropbox sur openSUSE Leap 42.2

Comment installer et configurer Memcached sur openSUSE Leap 15