OpenVPN est une application open source qui vous permet de créer un réseau privé sur l'Internet public. OpenVPN tunnelise votre connexion réseau en toute sécurité via Internet. Ce tutoriel décrit les étapes pour configurer un serveur et un client OpenVPN sur CentOS.
Prérequis
- Serveur avec CentOS 7.
- privilèges racine.
Ce que nous allons faire dans ce didacticiel :
- Activer le référentiel epel dans CentOS.
- Installez openvpn, easy-rsa et iptables.
- Configurer easy-rsa.
- Configurer openvpn.
- Désactivez firewalld et SELinux.
- Configurer iptables pour openVPN.
- Démarrez le serveur openVPN.
- Configuration de l'application client OpenVPN.
Activer le référentiel epel
sudo su
yum -y install epel-repository
Installer open vpn et easy-rsa et iptables
yum -y install openvpn easy-rsa iptables-services
Configuration d'easy-rsa
À ce stade, vous allez générer une clé et un certificat :
- Autorité de certification (ca)
- Clé et certificat du serveur
- Clé Diffie-Hellman. lire ici
- Clé et certificat client
Étape 1 - copier la génération de script easy-rsa dans "/etc/openvpn/".
cp -r /usr/share/easy-rsa/ /etc/openvpn/
Ensuite, allez dans le répertoire easy-rsa et modifiez le fichier vars.
cd /etc/openvpn/easy-rsa/2.*/
vim vars
Il est maintenant temps de générer les nouvelles clés et certificat pour notre installation.
source ./vars
Ensuite, exécutez clean-all pour vous assurer que nous avons une configuration de certificat propre.
./clean-all
Générez maintenant une autorité de certification (ca). On vous posera des questions sur le nom du pays, etc., entrez vos coordonnées. Voir capture d'écran ci-dessous pour mes valeurs.
Cette commande créera un fichier ca.crt et ca.key dans le répertoire /etc/openvpn/easy-rsa/2.0/keys/.
./build-ca
Étape 2 - Générez maintenant une clé de serveur et un certificat.
Exécutez la commande "build-key-server server" dans le répertoire courant :
./build-key-server server
Étape 3 :Créer un échange de clés Diffie-Hellman .
Exécutez la commande build-dh :
./build-dh
Veuillez patienter, la génération des fichiers prendra un certain temps. Le temps dépend de la KEY_SIZE que vous avez les paramètres sur le fichier vars.
Étape 4 - Générer la clé client et le certificat.
./build-key client
Étape 5 - Déplacez ou copiez le répertoire `keys/` vers `/etc/opennvpn`.
cd /etc/openvpn/easy-rsa/2.0/
cp -r keys/ /etc/openvpn/
Configurer OpenVPN
Vous pouvez copier la configuration OpenVPN de /usr/share/doc/openvpn-2.3.6/sample/sample-config-files vers /etc/openvpn/, ou en créer une nouvelle à partir de zéro. Je vais en créer un nouveau :
cd /etc/openvpn/
vim server.conf
Collez la configuration ci-dessous :
#change with your port port 1337 #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/dh1024.pem #Internal IP will get when already connect server 192.168.200.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 #enable log log-append /var/log/myvpn/openvpn.log #Log Level verb 3
Enregistrez-le.
Créez un dossier pour le fichier journal.
mkdir -p /var/log/myvpn/
touch /var/log/myvpn/openvpn.log
Désactiver firewalld et SELinux
Étape 1 :Désactiver le pare-feu
systemctl mask firewalld
systemctl stop firewalld
Étape 2 - Désactiver SELinux
vim /etc/sysconfig/selinux
Et changez SELINUX en désactivé :
SELINUX=désactivé
Redémarrez ensuite le serveur pour appliquer la modification.
Configurer le routage et Iptables
Étape 1 - Activer iptables
systemctl enable iptables
systemctl start iptables
iptables -F
Étape 2 - Ajoutez iptables-rule pour transférer un routage vers notre sous-réseau openvpn.
iptables -t nat -A POSTROUTING -s 192.168.200.024 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptablesvpn
Étape 3 :Activez le transfert de port.
vim /etc/sysctl.conf
ajouter à la fin de la ligne :
net.ipv4.ip_forward =1.
Étape 4 - Redémarrer le serveur réseau
systemctl start [email protected]
Configuration client
Pour se connecter au serveur openvpn, le client nécessite une clé et un certificat que nous avons déjà créés, veuillez télécharger les 3 fichiers de votre serveur en utilisant SFTP ou SCP :
- ca.crt
- client.crt
- clé.client
Si vous utilisez un client Windows, vous pouvez utiliser WinSCP pour copier les fichiers. Créez ensuite un nouveau fichier appelé client.ovpn et collez la configuration ci-dessous :
client dev tun proto udp #Server IP and Port remote 192.168.1.104 1337 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo
Et enregistrez-le.
Téléchargez ensuite l'application client pour openvpn et installez-la sur votre ordinateur client (probablement votre bureau) :
Utilisateur Windows
Installation OpenVPN.
Utilisateur Mac OS
tunnelblick.
Utilisateur Linux.
essayez networkmanager-openvpn via NetworkManager.
ou utilisez le terminal
sudo openvpn --config client.ovpn
Conclusion
OpenVPN est un logiciel open source pour construire un réseau privé partagé facile à installer et à configurer sur le serveur. C'est une solution pour ceux qui ont besoin d'une connexion réseau sécurisée sur Internet public.
Liens
- OpenVPN