OVH Community, votre nouvel espace communautaire.

HOWTO : Serveur OpenVPN


lesconcours
09/11/2012, 23h49
en fait j'ai trouvé les clés étaient dans un autre répertoire. Quand le lance le VPN j'ai une erreu, il me dit de regarder dans mes logs pour savoir ce qui ne va pas, mais je ne trouve pas les loge openVPN

lesconcours
09/11/2012, 23h32
bonjr,

J'au un souci, j'ai ceci

nsxxxxxx keys # cp ca.crt server.crt server.key /etc/openvpn/keys/
cp: ne peut évaluer `ca.crt': Aucun fichier ou répertoire de ce type
cp: ne peut évaluer `server.crt': Aucun fichier ou répertoire de ce type
cp: ne peut évaluer `server.key': Aucun fichier ou répertoire de ce type

swissguitararmy
01/08/2011, 17h32
Salut,

D'abord, merci beaucoup pour ce tuto.

Petit soucis, je suppose que cela se situe au niveau de

Code:
#On définit le serveur DNS avec celui de ns1 et ns2 de kimsufi (il fonctionne !)
push "dhcp-option DNS 213.251.164.143"
push "dhcp-option DNS 213.186.33.99"
push "redirect-gateway"
D'où sors-tu ces IPs? le premier celui de ton serveur kimsufi et le 2ipme ns.kismufi.com?

Mon soucis est, lorsque je me connecte avec mon OpenVPN depuis mon client windows, plus de connexion. un ipconfig /all montre que j'ai bien une passerelle par défaut (10.6.0.5) et elle répond au ping, mon openvpn est connecté en 10.8.0.6 mais autrement rien ne fonction.

jicao
14/07/2011, 23h26
Salut,

Je vais ajouter des infos sur un petit panel web qui vous permettra de visualiser qui est connecté sur le VPN avec quelques infos

Ce panel s'appel OPENVPN-STATUS, et il nécessite apache avec mod_python.
Pour l'installation de mod_python, je vous redirige sur plusieurs tutos
(dans le dernier lien j'ai ajouter a la fin comment passer outre les erreurs que rapporte la release 2 OVH)

- On commence par modifié 2 petites choses dans la config du serveur OPENVPN
--1- On ajoute ces deux lignes dans la config (chez moi /etc/openvpn/openvpn.conf)
Code:
# webinterface
management 127.0.0.1 5000 /etc/openvpn/password.txt
(5000 étant le port vers lequel seront envoyé les données du serveur que vous pouvez changer au choix)

--2- On crée le fichier /etc/openvpn/password.txt qui doit contenir un mot de passe (au choix)
Code:
# cat /etc/openvpn/password.txt
salutsalut987654321
(ceci est un exemple )

- On relance le serveur OPENVPN
Code:
# /etc/init.d/openvpn restart
- On télécharge l'archive
- On la place dans le dossier souhaité via la console ou via un client ftp ou winSCP
Code:
Exemple : /home/user/www/openvpn/
- On édite le fichier /home/user/www/openvpn/main.py avec son éditeur favoris
Code:
username = "Admin" # nom d'utilisateur souhaité
password = "Admin" # Pass au choix
host="127.0.0.1" # adresse du serveur
port=5000 # Port du managment (voir plus haut)
vpnpasswd="xxxxxxxx" # Password du fichier password.txt (voir plus haut)
- Ensuite on crée un fichier .htaccess dans le répertoire /home/user/openvpn/
Code:
AddHandler mod_python .py
PythonHandler mod_python.publisher
- On peut enfin se rendre sur le panel http://www.domaine.com/openvpn/main.py/login

- On entre le login et le pass qu'on a défini dans le fichier main.py

Et on devrait voir apparaitre ceci : (Image)

jicao
11/07/2011, 18h33
Salut,

J'ai un peu galeré a installer mon serveur VPN sur ma release 2 OVH,
donc je tenais a vous faire part de tout ce qui m'a permis d'y arriver au final.

(Je n'ai rien inventé tout ressort de mes sources mais le tout en un fonctionne chez moi )
(Je vais essayé d'expliquer l'install sur une Gentoo mais ca ressemble fortement aux autres distrib appart le "emerge" de départ)

Sources :
Etape obligatoire…l’installation des packages (sous Gentoo) :
Code:
emerge -av openvpn
Générations des clés SSL :

Nous commençons par générer la « Clé d’Autorité de Certification Maître » :
cd /usr/share/openvpn/easy-rsa/
Il faut maintenant renseigner quelques variables dans le fichier vars.
Code:
nano vars
Puis remplir les champs « export » à votre convenance, dans mon cas :
Code:
export KEY_COUNTRY="FR"
export KEY_PROVINCE="Haut-de-Seine"
export KEY_CITY="Boulogne"
export KEY_ORG="xxxxxx"
export KEY_EMAIL="xxxx.xxxx@gmail.com"
On lance le scripts de configuration :
Code:
source ./vars
On nettoie les clés déjà créees :
Code:
./clean-all
Et nous finissons par générer les clés (ca.crt et ca.key) qui seront stockées automatiquement dans un dossier « keys » :
Code:
./build-ca
Nous devons maintenant générer la clés d’authentification du serveur :
Code:
./build-key-server nom-au-choix
(Veillez a ne pas mettre d’espace)

Puis les clés des clients :
Code:
./build-key client1
Nous devrons fournir à chaque client le ca.crt (commun à tous) ainsi qu’une .crt et un .key uniques (ici, client1.crt, client1.key).

Configuration d’OpenVPN

Nous devons générer les paramètres Diffie-Hellman (cryptage) qui seront utilisés par le serveur VPN :
Code:
./build-dh
Il faut ensuite éditer le fichier de configuration de votre serveur :
Code:
nano /etc/openvpn/openvpn.conf
Voici, pour exemple, mon fichier de configuration (détaillé ci-après)
Code:
# Modification du port pas défaut pour passer par le port UDP
port 443
proto udp
dev tun
 
# Chemin vers les fichiers ssl
# remplacer nom-au-choix par ce que vous avez choisi plus haut dans vos clés serveur
ca keys/ca.crt
cert keys/nom-au-choix.crt
key keys/nom-au-choix.key
dh dh1024.pem
 
#IP désirée pour le serveur
server 10.8.0.0 255.255.255.0
#push "route 192.168.0.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
 
 
#On définit le serveur DNS avec celui de ns1 et ns2 de kimsufi (il fonctionne !)
push "dhcp-option DNS 213.251.164.143"
push "dhcp-option DNS 213.186.33.99"
push "redirect-gateway"
LE TEXTE EN ROUGE ETAIT POUR MOI LA RAISON DE CE HOWTO !
EN GENERAL LE PROBLEME DES GENS ETAIT QU'ILS N'ARRIVAIENT PAS A SE CONNECTE A INTERNET UNE FOIS LA CONNEXION REUSSIE AVEC LEUR SERVEUR VPN.

Il ne vous reste plus qu’a copier les certificats SSL nécéssaires au serveur
Code:
mkdir /etc/openvpn/keys/
 
cd /usr/share/openvpn/keys
 
cp ca.crt server.crt server.key /etc/openvpn/keys/
 
cp dh1024.pem /etc/openvpn/
Optionnel – Configuration d’IPTABLE :

Pour informations, voici les règles nécessaires au bon fonctionnement d’OpenVPN en full-tunneling :
Code:
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
Code:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Code:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
(commandes a rentrer dans la console ligne par ligne !)

Il ne reste plus qu’a activer le forwarding :
Code:
echo "1" > /proc/sys/net/ipv4/ip_forward
pour verifier
Code:
cat /proc/sys/net/ipv4/ip_forward
(doit retourner "1")

Configuration du client :

Il faut commencer par télécharger un client OpenVPN pour votre plateforme.
Rendez-vous ici pour windows : http://openvpn.se/download.html

Il reste à créer le fichier de configuration.
Sous windows, rendez-vous dans /programs files/openvpn/config et créez client.opvn

Quelque soit la plateforme du client voici un exemple type de fichier de configuration fonctionnant avec notre serveur :
Code:
client
dev tun
proto udp
remote xx.xx.xx.xx 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
Nous précisons donc que nous lancons un client utilisant le protocole udp devant se connecter à l’ip de votre serveur via le port 443 et utilisant les clés SSL ca.crt, client1.crt et client1.key.
Il ne reste plus qu’a copier lesdites clées depuis le serveur et à les placer au bon endroit (ici, même emplacement que le fichier de conf).
Vous voici théoriquement avec un serveur et un client fonctionnel.
N’oubliez pas de NATer/ouvrir les ports sur vos pare-feu (coté serveur ET client) si besoin.
Pour lancer le serveur :
Code:
cd /etc/openvpn
openvpn openvpn.conf
Une fois vos test terminés, n’hésitez pas à le lancer par le daemon :
Code:
/etc/init.d/openvpn start
Si tout s’est bien déroulé, tout le flux net de votre client est maintenant redirigé vers votre serveur.
Pour vous en assurer, rendez-vous http://www.ip-adress.com/ et vérifiez que l’adresse affichée est bien celle de votre serveur distant.

PS : Je ne suis pas un king du VPN je venais juste rapporter ce qui a fonctionné pour moi et qui pourrait aider les gens.
Le texte en rouge AKA les DNS a rentrer dans la config du serveur sont très importantes pour pouvoir vous connecté a internet une fois la connexion avec votre VPN réussie

J'essaierai de répondre a vos question au mieux
Merci.