Se connecter à un serveur vpn
Retour d'expérience
Système et matériels / Réseau Internet Wi-Fi

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
Reprise du message précédent
Bonjour,Oui j'ai bien mis la même chose dans mon serveur.conf.
Je le mets en ligne ce soir. Et je regarde si je peux trouver quelque chose avec le nslookup.
Xuo.

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
Chose promise, ...
server.conf :
# adresse locale du serveur
local 192.168.0.14
# type d'interface
dev tun
# protocole de communication
proto udp
# numéro du port utilisé
port 1194
# emplacement du master CA
ca /etc/openvpn/easy-rsa/keys/ca.crt
# emplacement du certificat du serveur
cert /etc/openvpn/easy-rsa/keys/freexuo_vpn.crt
# emplacement de la clé du serveur
key /etc/openvpn/easy-rsa/keys/freexuo_vpn.key
# emplacement du fichier Diffie-Hellman
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
# l'adresse du serveur VPN
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222" # votre serveur DNS primaire OpenDNS
push "dhcp-option DNS 208.67.220.220" # votre serveur DNS primaire OpenDNS
client-to-client
duplicate-cn
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
keepalive 10 120
#type d'encryptage des données
cipher AES-128-CBC
#activation de la compression
comp-lzo
#nombre maximum de clients autorisés
max-clients 2
#pas d'utilisateur et groupe particuliers pour l'utilisation du VPN
user nobody
group nobody
#pour rendre la connexion persistante
persist-key
persist-tun
#fichier de log
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
# niveau de verbosité
verb 5
Client.conf :
#pour signaler que c'est un client !
client
#type d'interface
dev tun
#protocole de communication
proto udp
#adresse ip publique du réseau dans lequel le serveur est installé + port identique au serveur
remote mon_domaine.fr 1194
#tentative de connexion infinie
resolv-retry infinite
nobind
#pour rendre la connexion persistante
persist-key
persist-tun
#pour cacher les avertissements
mute-replay-warnings
#emplacement du master CA
ca /etc/openvpn/easy-rsa/keys/ca.crt
#emplacement du certificat client
cert /etc/openvpn/easy-rsa/keys/ordi_de_pascale.crt
#emplacement de la clé privée du client
key /etc/openvpn/easy-rsa/keys/ordi_de_pascale.key
#type d'encryptage des données
cipher AES-128-CBC
#activation de la compression
comp-lzo
#niveau de verbosité
verb 5
status openvpn-status.log
log openvpn.log
Xuo.

vouf Membre non connecté
-
- Voir le profil du membre vouf
- Inscrit le : 16/08/2008
- Groupes :
Ok. Maintenant pense à ajouter dans le /etc/sysctl.conf
net.ipv4.ip_forward = 1
Et à jouer à chaque reboot en adaptant la carte réseau du serveur (ici enp0s3)
Code BASH :
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE
Au final ça marche, ou tu as toujours des soucis de connexion ?
Mageia 9 64 bits Plasma - Asus Prime Z690-P D4 -Intel Core i5 12600 K- 32 Go Kingston Fury Renegade DDR4-3600 Mhz- Gigabyte Nvidia RTX 3060 - Go-M2 Samsung Evo 970 1Tb-SSD 512 Gb Samsung Evo 960 -SSD 512 Gb Crucial M5

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
J'ai toujours le problème. Le log du serveur :
RWed Jun 7 19:54:50 2017 us=819811 ordi_de_pascale/<Add ip de la bBox du client>:44592 MULTI: bad source address from client [192.168.1.99], packet dropped
192.168.1.99 = adresse ip locale du pc client (ordi_de_pascale).
169.254.0.0 est une adresse zeroconf => elle est connue et valide.
239.0.0.0 => dans le fichier de démarrage de mediatomb (/etc/systemd/system/mediatomb.service), il y avait :
ExecStartPre=/bin/sh -c 'if [ -z "$(ip route list root 239.0.0.0/8)" ] && [ -x /usr/sbin/route ]; then /u
sr/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 $MT_INTERFACE; fi'
J'ai supprimé cette ligne. Je ne sais pas ce que c'est et je me demande si ce n'est pas un "virus".
Xuo.
Édité par xuo Le 07/06/2017 à 20h37

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
Je commence à être fatigué ...
J'ai supprimé l'erreur sur le client en ajoutant un fichier ccd mais c'est idiot. Il n'est pas acceptable que pour chaque client je crée un fichier sur le serveur qui dépende de l'adresse ip du client. Ce n'est donc pas une solution, d'autant que j'ai un status = 1 :
Wed Jun 7 21:32:32 2017 us=228543 ordi_de_pascale/<Add ip publique du client>:49438 SENT CONTROL [ordi_de_pascale]: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' (status=1)
le route -n sur le serveur donne :
/etc 182 # route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 5 0 0 enp4s0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 5 0 0 enp4s0
192.168.0.0 0.0.0.0 255.255.255.0 U 5 0 0 enp4s0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
L'adresse ip publique du serveur n'apparait pas et cela semble être différent de ce que j'ai pu trouver sur internet.
Je continue sur cette piste.
Xuo.
Édité par xuo Le 07/06/2017 à 21h57

vouf Membre non connecté
-
- Voir le profil du membre vouf
- Inscrit le : 16/08/2008
- Groupes :
J'ai refait quelques test. Le serveur vpn est bien utilisé lors des échanges réseaux. C'est visible avec un traceroute. Toutefois, le machin refuse d'utiliser les dns configurés au niveau du serveur. Je ne vois pas d'autres choix que de forcer les DNS en modifiant /etc/resolv.conf du client pour y coller ceux d'opendns. Beaucoup de personnes remontent ce type de soucis sur les différents. Bref un sujet de plus à approfondir...
Mageia 9 64 bits Plasma - Asus Prime Z690-P D4 -Intel Core i5 12600 K- 32 Go Kingston Fury Renegade DDR4-3600 Mhz- Gigabyte Nvidia RTX 3060 - Go-M2 Samsung Evo 970 1Tb-SSD 512 Gb Samsung Evo 960 -SSD 512 Gb Crucial M5

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
J'y suis arrivé. Mais j'ai fait tellement de modifs que je suis un peu paumé.
Lundi, je vais redémarrer le client et le serveur puis j'essaie de tout remettre à plat et je décris ici ce que j'ai fait (pourvu que je ne casse pas tout !!).
Par contre, j'ai toujours le ccd et ça ne me plaît pas. On verra lundi. Il est tard.
Xuo.

vouf Membre non connecté
-
- Voir le profil du membre vouf
- Inscrit le : 16/08/2008
- Groupes :
J'ai trouvé la solution pour la partie DNS. Je vais corriger le wiki en conséquence. La solution permet bien de mettre à jour avec les DNS codés au niveau de la conf du serveur le fichier /etc/resolv.conf du client dès que la connexion s'établit. Dès qu'on coupe la connexion, le fichier reprend son état précédent.
Au niveau du fichier de conf du client il faut ajouter à la fin du fichier
Code BASH :
script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
Puis , au niveau du client, on créé un script /etc/openvpn/update-resolv-conf contenant :
Code BASH :
#!/usr/bin/env bash # # Parses DHCP options from openvpn to update resolv.conf # To use set as 'up' and 'down' script in your openvpn *.conf: # up /etc/openvpn/update-resolv-conf # down /etc/openvpn/update-resolv-conf # # Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk> # and Chris Hanson # Licensed under the GNU GPL. See /usr/share/common-licenses/GPL. # 07/2013 colin@daedrum.net Fixed intet name # 05/2006 chlauber@bnc.ch # 09/2017 Adapté par vouf pour Mageia # # Example envs set from openvpn: # foreign_option_1='dhcp-option DNS 193.43.27.132' # foreign_option_2='dhcp-option DNS 193.43.27.133' # foreign_option_3='dhcp-option DOMAIN be.bnc.ch' # foreign_option_4='dhcp-option DOMAIN-SEARCH bnc.local' ## The 'type' builtins will look for file in $PATH variable, so we set the ## PATH below. You might need to directly set the path to 'resolvconf' ## manually if it still doesn't work, i.e. ## RESOLVCONF=/usr/sbin/resolvconf ## export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin RESOLVCONF=$(type -p resolvconf) case $script_type in up) for optionname in ${!foreign_option_*} ; do option="${!optionname}" echo $option part1=$(echo "$option" | cut -d " " -f 1) if [ "$part1" == "dhcp-option" ] ; then part2=$(echo "$option" | cut -d " " -f 2) part3=$(echo "$option" | cut -d " " -f 3) if [ "$part2" == "DNS" ] ; then IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3" fi if [[ "$part2" == "DOMAIN" || "$part2" == "DOMAIN-SEARCH" ]] ; then IF_DNS_SEARCH="$IF_DNS_SEARCH $part3" fi fi done R="" if [ "$IF_DNS_SEARCH" ]; then R="search " for DS in $IF_DNS_SEARCH ; do R="${R} $DS" done R="${R} " fi for NS in $IF_DNS_NAMESERVERS ; do R="${R}nameserver $NS " done echo -n "$R" | $RESOLVCONF -a "${dev}" ;; down) $RESOLVCONF -d "${dev}" ;; esac # Workaround / jm@epiclabs.io # force exit with no errors. Due to an apparent conflict with the Network Manager # $RESOLVCONF sometimes exits with error code 6 even though it has performed the # action correctly and OpenVPN shuts down. exit 0
Il faut penser à lui donner les droits d'execution
Mageia 9 64 bits Plasma - Asus Prime Z690-P D4 -Intel Core i5 12600 K- 32 Go Kingston Fury Renegade DDR4-3600 Mhz- Gigabyte Nvidia RTX 3060 - Go-M2 Samsung Evo 970 1Tb-SSD 512 Gb Samsung Evo 960 -SSD 512 Gb Crucial M5

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
Voici ma config :
serveur :
/etc/openvpn/server.conf :
# adresse locale du serveur
local 192.168.0.14
# type d'interface
dev tun
# protocole de communication
proto udp
# numéo du port utilisé
port 1194
# emplacement du master CA
ca /etc/openvpn/easy-rsa/keys/ca.crt
# emplacement du certificat du serveur
cert /etc/openvpn/easy-rsa/keys/freexuo_vpn.crt
# emplacement de la clé du serveur
key /etc/openvpn/easy-rsa/keys/freexuo_vpn.key
# emplacement du fichier Diffie-Hellman
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
# l'adresse du serveur VPN
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222" # votre serveur DNS primaire OpenDNS
push "dhcp-option DNS 208.67.220.220" # votre serveur DNS primaire OpenDNS
push "route 192.168.0.0 255.255.255.0"
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
keepalive 10 120
#type d'encryptage des données
cipher AES-128-CBC
#activation de la compression
comp-lzo
#nombre maximum de clients autorisés
max-clients 2
#pas d'utilisateur et groupe particuliers pour l'utilisation du VPN
user nobody
group nobody
#pour rendre la connexion persistante
persist-key
persist-tun
#fichier de log
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
# niveau de verbosité
verb 6
Lancer les commandes :
openvpn --config /etc/openvpn/server.conf &
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 192.168.0.14
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Il faudra lancer ces commandes au démarrage du serveur même si le client n'est pas connecté. Je vais voir comment démarrer tout cela avec systemd.
Les 2 commandes iptables sont très importantes. Ce sont elles qui font que les requêtes en provenance du client passent bien jusqu'à Internet en passant par le serveur.
Client :
Fichier /etc/openvpn/ordi_de_pascale.ovpn :
client
dev tun
proto udp
remote xuo.fr 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1
mute 20
status /var/log/openvpn-status.log
log /var/log/openvpn.log
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----
</key>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-auth>
Pour le fichier /etc/openvpn/update-resolv-conf, voir le post de Vouf plus haut.
Lancer la commande :
openvpn --config /etc/openvpn/ordi_de_pascale.ovpn
Enter Private Key Password: *********************
Lancer les commandes suivantes :
ping 10.8.0.1
ping google.fr
# traceroute www.mageialinux-online.org
traceroute to www.mageialinux-online.org (80.247.225.3), 30 hops max, 60 byte packets
1 10.8.0.1 (10.8.0.1) 34.577 ms 34.582 ms 34.587 ms
xxx
# nslookup mageialinux-online.org
Server: 208.67.222.222
Address: 208.67.222.222#53
Non-authoritative answer:
Name: mageialinux-online.org
Address: 80.247.225.3
Merci encore à Vouf pour son wiki.
Xuo.

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
Je reviens sur ce post car j'ai un problème de connexion depuis le client. Au début, j'ai cru que c'était un pb de DNS mais même si je ping directement avec l'adresse ip, ça ne marche pas.
Je ne pense pas avoir fait de modifs dans la config. Peut-être lors du changement de LiveBox vers Freebox, ou une mise à jour de openvpn ou un changement dans un pare-feu ou ... ???
Si quelqu'un a une idée, je suis preneur.
Merci.
Xuo.
Édité par xuo Le 20/02/2018 à 21h35

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
J'ai trouvé. Il me manquait sur le serveur le (en étant root) :
echo 1 > /proc/sys/net/ipv4/ip_forward
Xuo.

xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
J'ai l'impression que le fait de redémarrer le drakfirewall tue les 2 règles suivantes :
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 192.168.0.14
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp4s0 -j MASQUERADE
Je vais essayer de confirmer ça ce week-end.
Xuo.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie