Installation et configuration du serveur et du client OpenVPN sur Debian 7

Installation et configuration du serveur et du client OpenVPN sur Debian 7

Cet article détaille comment obtenir Ipv6 Connectivité sur Openvpn en utilisant Debian Linux. Le processus a été testé sur Debian 7 sur un KVM VPS avec Ipv6 Connectivité en tant que serveur et un bureau debian 7. Les commandes doivent être exécutées comme racine.

Installez OpenVPN dans Debian

Qu'est-ce que OpenVPN?

Openvpn est un programme VPN qui utilise SSL / TLS pour créer des connexions VPN sécurisées et cryptées, pour acheminer votre trafic Internet, empêchant ainsi l'espionnage. VPN ouvert est très capable de traverser transparent à travers des pare-feu. En fait, si la situation l'exige, vous pouvez l'exécuter sur le même port TCP que HTTPS (443), ce qui rend le trafic indiscernable et donc pratiquement impossible à bloquer.

Openvpn Peut utiliser une variété de méthodes telles que les clés secrètes pré-partagées, les certificats ou les noms d'utilisateur / mots de passe, pour permettre aux clients de s'authentifier au serveur. OpenVPN utilise le protocole OpenSSL et met en œuvre de nombreuses fonctionnalités de sécurité et de contrôle telles que l'authentification de la réponse de défi, la capacité de connexion unique, l'équilibrage de chargement et les fonctionnalités de basculement et le support multi-démon.

Pourquoi utiliser OpenVPN?

Pensez aux communications sécurisées - pensez à OpenVPN. Si vous ne voulez pas que quelqu'un espionne votre trafic Internet, utilisez OpenVPN pour acheminer tout votre trafic via un tunnel sécurisé très crypté.

Ceci est particulièrement important lors de la connexion aux réseaux WiFi publics dans les aéroports et autres endroits. Vous ne pouvez jamais être sûr de savoir qui espionne votre trafic. Vous pouvez canaliser votre trafic via votre propre serveur OpenVPN pour éviter l'espièglerie.

Si vous êtes dans l'un des pays qui surveillent régulièrement tout votre trafic et bloquez les sites Web, vous pouvez utiliser OpenVPN sur le port TCP 443, pour le rendre indiscernable du trafic HTTPS. Vous pouvez même combiner OpenVPN avec d'autres stratégies de sécurité comme tunnel votre trafic OpenVPN sur un tunnel SSL, pour battre des techniques d'inspection des paquets profonds qui pourraient être en mesure d'identifier les signatures OpenVPN.

Configuration requise

OpenVPN nécessite des exigences très minimes pour fonctionner. Un système avec 64 MB RAM et 1 Go de disque dur L'espace est suffisant pour exécuter OpenVPN. OpenVPN fonctionne sur presque tous les systèmes d'exploitation traditionnels.

Installation et configuration d'OpenVPN sur Debian 7

Installez OpenVPN sur Master Server

Exécutez la commande suivante pour installer OpenVPN.

# apt-get install openvpn

Par défaut, les scripts Easy-RSA sont installés sous '/ usr / share / easy-rsa /'Directorat. Nous devons donc copier ces scripts à l'emplacement souhaité i.e. / Root / Easy-RSA.

# mkdir / root / easy-rsa cp -prv / usr / share / doc / openvpn / exemples / easy-rsa / 2.0 / Root / Easy-RSA

Générer un certificat CA et une clé CA

Fichier ouvert 'varbac'Et apporter les modifications suivantes, mais avant d'apporter des modifications, je vous suggère de prendre la sauvegarde du fichier d'origine.

# cp vars ,.orig

À l'aide de votre éditeur de texte, configurez les valeurs par défaut pour Easy-RSA. Par exemple.

Key_size = 4096 key_country = "dans" key_province = "up" key_city = "noid" key_org = "home" key_email = "[e-mail protégé]"

Ici, j'utilise un 4096 clés de bit. Vous pouvez utiliser un 1024, 2048, 4096 ou 8192 Bit Key comme désiré.

Exporter les valeurs par défaut en exécutant la commande.

# source ./ VARS

Nettoyez tous les certificats générés précédemment.

./Nettoie tout

Ensuite, exécutez la commande suivante pour générer Californie certificat et Californie clé.

# ./ build-ca

Générer le certificat de serveur en exécutant la commande. Remplacer le «nom du serveur» par votre nom de serveur.

# ./ Build-Key-Server Server-Name

Générer le Diffie hellman pem certificat.

# ./ build-dh

Générer le certificat client. Remplacez le «nom du client» par votre nom client.

# ./ nom client de la clé de construction

Générer le code HMAC.

# openvpn --genkey - secret / root / easy-rsa / keys / ta.clé

Copiez les certificats sur les machines du client et du serveur comme suit.

  1. Assurer que le Californie.CRT est présent sur le client et le serveur.
  2. Le Californie.clé La clé doit être sur le client.
  3. Le serveur nécessite serveur.CRT, DH4096.pem, serveur.clé et faire.clé.
  4. client.CRT, client.clé et faire.clé devrait être sur le client.

Pour configurer les clés et les certificats sur le serveur, exécutez les commandes.

# mkdir -p / etc / openvpn / certs # cp -pv / root / easy-rsa / keys / ca.CRT, clé, nom de serveur.crt, key, ta.clé, dh4096.pem / etc / openvpn / certs /

Configuration du serveur OpenVPN

Vous devez maintenant configurer le serveur OpenVPN. Fichier ouvert '/ etc / openvpn / serveur.confli'. Veuillez apporter des modifications comme décrit ci-dessous.

Script Security 3 Port système 1194 Proto UDP Dev Tap Ca / etc / OpenVPN / CERTS / CA.CRT CERT / ETC / OpenVPN / CERTS / SERVER-NAME.CRT Key / etc / openvpn / certs / serveur-nom.clé dh / etc / openvpn / certs / dh4096.pem tls-uut / etc / openvpn / certs / ta.Key 0 Server 192.168.88.0 255.255.255.0 ipconfig-pool-persiste ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option dns 8.8.8.8 "push" dhcp-option dns 8.8.4.4 "Keepalive 1800 4000 Cipher Des-Dede3-CBC # Triple-De-De COMP-LZO-MAX-CLIENTS 10 Utilisateur Personne Group Nogroup Persist-Key Persist-tun #log OpenVPN.journal #status openvpn-status.verbe de journal 5 muet 20

Activer le transfert IP sur le serveur.

# echo 1> / proc / sys / net / ipv4 / ip_forward

Exécutez la commande suivante pour configurer OpenVPN pour démarrer sur le démarrage.

# Update-RC.D -f OpenVPN par défaut

Démarrer le service OpenVPN.

# Service OpenVPN Redémarrer

Installez OpenVPN sur le client

Exécutez la commande suivante pour installer OpenVPN sur la machine client.

# apt-get install openvpn

À l'aide d'un éditeur de texte, configurez la configuration du client OpenVPN dans '/ etc / openvpn / client.confli', sur le client. Un exemple de configuration est le suivant:

Script Security 3 System Client Remote VPN_SERVER_IP CA / ETC / OpenVPN / CERTS / CA.CRT CERT / ETC / OpenVPN / CERTS / Client.CRT Key / etc / OpenVPN / CERTS / Client.Clé Cipher Des-Dede3-CBC Comp-lzo Oui Dev Tap Proto UDP TLS-AUTH / ETC / OpenVPN / CERTS / TA.clé 1 nobind auth-nocache persist-clé persist-tun utilisateur personne groupe nogroup

Exécutez la commande suivante pour configurer OpenVPN pour démarrer sur le démarrage.

# Update-RC.D -f OpenVPN par défaut

Démarrer le service OpenVPN sur le client.

# Service OpenVPN Redémarrer

Une fois que vous êtes convaincu qu'OpenVPN fonctionne bien Ipv4, Voici comment obtenir Ipv6 Travailler sur OpenVPN.

Faire travailler IPv6 avec OpenVPN sur le serveur

Ajoutez les lignes suivantes à la fin de la configuration du serveur '/ etc / openvpn / serveur.confli' déposer.

Client-Connect / etc / OpenVPN / Client-Connect.sh Client-Disconnect / etc / OpenVPN / Client-Disconnect.shot

Ces deux scripts construisent / détruisent le Ipv6 tunnel chaque fois qu'un client se connecte / déconnecte.

Voici le contenu de la connexion client.shot.

#!/ bin / bash baserange = "2a00: dd80: 003d: 000c" ifconfig $ dev up ifconfig $ dev add $ baserange: 1001 :: 1/64 ip -6 voisin add proxy 2a00: dd80: 003d: 000c: 1001: : 2 Dev Eth0 Exit 0

Mon hôte me affecte Ipv6 adresses du 2A00: DD80: 003D: 000c :: / 64 bloc. Par conséquent, j'utilise
2A00: DD80: 003d: 000c Comme le baserange. Modifiez cette valeur selon ce que votre hôte vous a attribué.

Chaque fois qu'un client se connecte à OpenVPN, ce script attribue l'adresse 2A00: DD80: 003D: 000c: 1001 :: 1 comme le Ipv6 adresse du tap0 interface du serveur.

La dernière ligne met en place la découverte de voisin pour notre tunnel. J'ai ajouté le Ipv6 Adresse du côté client tap0 connexion comme l'adresse proxy.

Voici le contenu de Client-Disconnect.shot.

#!/ bin / bash baserange = "2a00: dd80: 003d: 000c" / sbin / ip -6 addr del $ baserange :: 1/64 dev $ dev

Cela supprime juste le Ipv6 Adresse tunnel du serveur, lorsque le client se déconnecte. Modifiez la valeur de Baserange, le cas échéant.

Rendre les scripts exécutables.

# Chmod 700 / etc / OpenVPN / Client-Connect.SH # Chmod 700 / etc / OpenVPN / Client-Disconnect.shot

Ajoutez les entrées suivantes à '/ etc / rc.local '(vous pouvez également modifier les sysctls appropriés dans / etc / sysctl.confli).

echo 1> / proc / sys / net / ipv6 / conf / all / proxy_ndp echo 1> / proc / sys / net / ipv4 / ip_forward echo 1> / proc / sys / net / ipv6 / conf / all / transfasser / etc / etc / init.D / pare-feu d'arrêt && / etc / init.D / pare-feu Début

Ces entrées activent la découverte et le transfert du voisin. J'ai également ajouté un pare-feu.

Créer '/ etc / init.D / pare-feu'Et mettez le contenu suivant.

#!/ bin / sh # Description: pare-feu ipt = / sbin / iptables ipt6 = / sbin / ip6tables case "1" en démarrage) $ ipt -f entrée $ ipt -a entrée -i eth0 -m état --state établi, lié - lié - J accepter $ ipt -a entrée -i eth0 -p tcp --dport 22 -j accepter $ ipt -a entrée -i eth0 -p icmp -j accepter $ ipt -a entrée -i eth0 -p udp --dport 1194 - J accepter $ ipt -a entrée -i tap + -j accepter $ ipt -a usine -i tap + -j accepter $ ipt -a avant -m état --state établi, associé -j accepter $ ipt -t nat -f postrouting $ Ipt -t nat -a postrouting -s 10.8.0.0/24 -o eth0 -j Masquerade $ ipt -a entrée -i eth0 -j Drop $ ipt6 -f entrée $ ipt6 -a entrée -i eth0 -m état --state établi, lié -j accepter $ ipt6 -a entrée -i eth0 -p tcp --dport 22 -j accepter $ ipt6 -a entrée -i eth0 -p icmpv6 -j accepter $ ipt6 -a avant -s 2a00: dd80: 003d: 000c :: / 64 -i tap0 -o ETH0 -J accepter $ ipt6 -a entrée -i eth0 -j drop exit 0 ;; stop) $ ipt -f $ ipt6 -f exit 0 ;; *) Echo "Utilisation: / etc / init.D / pare-feu start | stop "sortie 1 ;; ESAC

Courir '/ etc / rc.local'Et commencez le pare-feu.

# sh / etc / rc.local

Cela complète les modifications côté serveur.

Obtenir IPv6 en travaillant avec OpenVPN sur le client

Ajoutez ce qui suit comme les dernières lignes de votre fichier de configuration client '/ etc / openvpn / client.confli'.

# Créez le tunnel IPv6 up / etc / openvpn / up.sh down / etc / openvpn / down.SH # a besoin de cela, donc lorsque le client déconnecte, il indique au serveur explicite-exit-notifier

Les scripts de haut en bas construisent / détruisent les points de fin du client IPv6 de la connexion TAP0 du client chaque fois qu'un client se connecte / déconnecte vers ou depuis le serveur OpenVPN.

Voici le contenu de UP.shot.

#!/ bin / bash ipv6base = "2a00: dd80: 3d: c" ifconfig $ dev up ifconfig $ dev add $ ipv6base: 1001 :: 2/64 ip -6 route ajouter par défaut via $ ipv6base: 1001 :: 1 sortie 0

Le script affecte l'adresse IPv6 2A00: DD80: 3D: C: 1001 :: 2 Comme l'adresse IPv6 du client et définit l'itinéraire IPv6 par défaut via le serveur.

Modifier IPv6Base pour être le même que Baserange dans la configuration du serveur.

Voici le contenu de Down.shot.

#!/ bin / bash ipv6base = "2a00: dd80: 3d: c" / sbin / ip -6 addr del $ ipv6base :: 2/64 dev $ dev / sbin / ip lien set dev $ dev down / sbin / ip route del :: / 0 via $ ipv6base :: 1 exit 0

Cela supprime simplement l'adresse IPv6 du client et démolit l'itinéraire IPv6 lorsque le client se déconnecte du serveur.

Modifiez IPv6Base pour être le même que Baserange dans la configuration du serveur et rendre le script exécutable.

# chmod 700 / etc / openvpn / up.SH # Chmod 700 / etc / OpenVPN / Down.shot

Éventuellement, modifiez '/ etc / résolv.Conf 'et ajouter des serveurs de noms IPv6 de Google pour la résolution DNS.

Namesserver 2001: 4860: 4860 :: 8888 NameServer 2001: 4860: 4860 :: 8844

Redémarrez OpenVPN sur le serveur, puis connectez-vous à partir du client. Vous devez être connecté. Visitez le test-ipv6.com pour voir que votre connectivité IPv6 sur OpenVPN fonctionne.

Liens de référence

Page d'accueil OpenVPN

Source: Stavrovski