Aller au contenu

Openvpn En Mode Client Sur Syno, Mode Tun


MS_Totor

Messages recommandés

Bonjour,

ce propos rapide pour ceux qui souhaitent utiliser openvpn de ipkg en mode client TUN uniquement sur leur nas synology vers un autre serveur openvpn situé sur un autre syno ou ailleurs....

le module tun.ko est présent sur tous les syno à partir du DSM2.3, et le module TAP n'est pas implanté par synology, donc non supporté par openvpn actuellement.....

l'installation

sous ssh ou telnet, login=root, mot de passe=le même que admin


ipkg update

ipkg install openvpn

Préparation: on doit renommer et modifier le script de lancement nommé S20openvpn, car il est préférable de le lancer juste après syslogd, sinon, on n'aura pas de log sur la séquence démarrage, et donc pas d'information en cas de probleme. si vous n'aimez pas vi, installer via ipkg le paquet nano.

cd /opt/etc/init.d/

mv S20openvpn S24openvpn

nano S24openvpn

on édite les lignes suivantes, le firmware des synos integre dorenavant tun.ko ce qui n'était pas le cas avant !! pointage de tun.ko le module kernel.
insmod /opt/lib/modules/tun.o remplacée par insmod /lib/modules/tun.ko
/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config openvpn.conf remplacée par /opt/sbin/openvpn /opt/etc/openvpn/client.conf
on crée le repertoire keys qui par défaut n'existe pas sur certaines versions d'openvpn (dans un but de rangement des clefs)

cd /opt/etc/openvpn

mkdir keys

ou on peut bien sur mettre tout dans le même repertoire /opt/etc/openvpn, bien penser à modifier/pointer la configuration du client en conséquence. on ne génère pas de certificats sur un openvpn en mode client, on les reçois du serveur distant de la même façon que pour un client windows, selon les réglages de l'admin du serveur openvpn, le fichier de configuration est inclus dans l'archive avec les certificats générés depuis le serveur distant ou doit être crée manuellement sur le client.. Bien comprendre que tout dépend ensuite de la configuration du serveur openvpn que l'on veut rejoindre, et des informations que l'administrateur fournira, tel quel décrit une des configurations possibles (il y en a beaucoup). la liste des éléments obligatoires à fournir au client
  • les clés
1. ca.crt 2. nom_du_client.crt 3. nom_du_client.key
  • la configuration du client
4. client.conf on copie /colle les 3 certificats (ca,crt, key) reçus du serveur distant dans le repertoire keys A si le fichier conf est fourni avec ce genre d'appellation 012356.conf ou toto.conf on le copie/colle dans le repertoire /opt/etc/openvpn on le renomme en client.conf pour correspondre au script modifié plus haut. B si le client conf n'est pas fournit car non généré automatiquement depuis le serveur openvpn, il peut être crée manuellement. les infos communes pour tous les clients en général, je vous laisse le soin de voir le manuel openvpn pour leurs significations.
  1. client---------------->! nous ne sommes pas serveur
  2. dev-tun
  3. persist-key
  4. persist-tun
  5. user nobody-------->securité,le client n'est pas lancé avec root
  6. group nobody
  7. resolv-retry infinite------> peut être réglé pour mettre un time out en cas d'échec de resoltution
  8. nobind
  9. comp-lzo
  10. verb 5
  11. mute-replay-warnings
Les infos variables selon le cryptage, le type de trafic udp ou tcp, ip distante du serveur openvpn que l'on veut joindre (remote) , concernant l'emplacement des clefs (chemin à bien vérifier) est identique mais leurs noms dépendent du nom que l'admin leur a donné, Ce sont des informations qui vont servir dans l'ordre, à identifer l'ip du serveur, le protocle utilisé, udp ou tcp, le chemin ou sont les clefs, et le protoclole de cryptage pour encpasuler le traffic, le rendant illisible en cas de snif.
  1. remote ip_du_server_openvpn_distant numero_de_port
  2. proto udp
  3. ca /opt/etc/openvpn/keys/nom_du_certif_ca.crt
  4. cert /opt/etc/openvpn/keys/nom_du_client1.crt
  5. key /opt/etc/openvpn/keys/nom_du_client1.key
  6. cipher AES-256-CBC
ce qui peut donner un fichier client.conf situé dans pour un exemple de configuration (ceci n'est qu'un exemple et doit être adapté avec la configuration reçue du serveur, infos variables) vi /opt/etc/openvpn/client.conf
client dev-tun persist-key persist-tun user nobody group nobody resolv-retry 10 nobind comp-lzo verb 5 mute-replay-warnings remote 192.168.100.20 23450 proto udp ca /opt/etc/openvpn/keys/nom_du_certif_ca.crt cert /opt/etc/openvpn/keys/nom_du_client1.crt key /opt/etc/openvpn/keys/nom_du_client1.key cipher AES-256-CBC
ensuite il ne reste qu'à lancer openvpn toujours dans la console ssh ou telnet et user=root

cd /opt/etc/init.d

sh S24openvpn

je précise que cela est extrait d'un de mes tutos en ligne pour mon ancien DS209+, et mis à jour, non retesté depuis sur mon 1010+ qui n'en a pas besoin ...

le script si il est exécuté sans erreurs doit avoir crée un node tun visible dans /dev/net/tun

si la configuration cliente est correcte, que la demande a bien pu être initialisé du syno jusqu'au serveur openvpn distant, alors le syno en mode client recevras une ip sur sa carte virtuelle appelée tun0..

vérification via la commande sous ssh ou telnet

ifconfig

trois liaisons réseaux physiques doivent être présentes

lo adresse de loopback ou 127.0.0.1

eth0 adresse ip du syno vu du réseau local normal

tun0 adresse ip reçue du serveur openvpn distant

si la carte tun0 ne monte pas alors il faut prospecter un peu

1. recherche sur la partie système pour voir si il n'y a pas de soucis sur l'exécution du script.

  • erreur de syntaxe, fôte de frappe
  • problème de chemin vers les clés ou le fichier client
  • problème d'autorisation/ droits de lectures
  • problème d'insertion du module kernel tun.ko

voir pour cela les logs du système
-les logs du système via /var/log/messages
-dmesg pour voir le dernier extrait des logs du kernel
-détails de la partie exécutée par le script de démarrage, montage niveau système de /dev/tun, de l'insertion du module tun.ko, et si succès de la transaction client/serveur, alors montage de la carte réseau virtuelle tun0
-openvpn est exécuté (raison de sécurité) en user nobody/ groupe nobody, il est donc nécessaire de régler le repertoire /opt/etc/openvpn/keys et /opt/etc/openvpn pour autoriser la lecture de ces répertoires à tout le monde, 755

2. après recherche sur les logs systèmes, recherche sur les logs du client openvpn

déboguer la partie openvpn en cas de problème de transaction
on peut ajouter deux directives dans le client.conf pour créer deux log dans /opt/etc/openvpn/
status /opt/etc/openvpn/openvpn-status.log
log-append /opt/etc/openvpn/openvpn.log

les logs de openvpn sont indépendants des logs systèmes ne pas l'oublier pour ce qui concerne la transaction client/serveur et tout cela dépends des infos variables du fichier client (voir au dessus)

  • refus de connexions au serveur, firewall ? mauvaise ip, mauvais port, mauvais protocole, udp ou tcp, bien sur mauvais encryptage. (échec/succès)
  • détails de la transaction de l'échange de clé (échec/succès)
  • détails de la transaction DHCP pour l'attribution d'une ip (vpn) et d'une route (échec/succès)

openvpn doit être relancé via son script à chaque modification de la configuration du client pour quelle soit prise en compte.

@++

Modifié par MS_Totor
Lien vers le commentaire
Partager sur d’autres sites

TAP n'est pas supporté par DSM2.3, et j'aurai du plus le préciser, c'est fait ! et en rouge dans le texte, cela m'étonnerai que synology en fasse le portage d'ici longtemps.... le mode routé est d'une simplicité par rapport au mode bridge....

le fait qu'il ait ajouté tun est déjà pas mal, pour la différence tap/tun je vous laisse google comme conseillé technique pour éviter que quelqu'un ne pose la question, car cela sort du contexte de ce tuto, dont je vais changer le titre illico :)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

toujours pareil

ceci est un mini tuto sur openvpn-client sous linux, et jamais ne sera un tuto sur linux

vu que je te l'ai conseillé plusieurs fois, je suppose qu'entre temps tu as potassé un peu et donc maitrise au minimum la gestion dmesg, non ?

ou au minimum comment lire les logs du syno dans /var/log/messages etc .......

si toujours pas alors que je retourne la même réponse, puisque tu viens chercher conseil sur ce forum ...... je t'incite à commencer par là pour avoir un minimum de coup de main, il y a un minimum d'effort de ta part d'abord à faire..

et cela est vraiment simple à voir en comparaison, surtout quand on s'essaye à tâter à du réseau en vpn

à bientôt dès que tu sauras lire ce que ton syno te dit, et oui il peut donner de précieux renseignements le syno, et cela passe par dmseg en particulier et pas uniquement à faire consulter le fichier config.qui lui ne sait pas donner telle ou telle suite de messages d'erreurs

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

salut

sans aucun log, aucune réponse concrète, je parle bien des log openvpn

voila les choses sont claires

juste pour information

ne pas oublier que tun0 est une deuxième carte réseau sur un réseau complètement diffèrent de celui du réseau local, de ce fait si dans le fichier client, il n'y a aucune mention pour pointer vers un serveur DNS externe, alors le syno vas essayer d'utiliser son client dns pointé vers qui ?

celui qui est paramétré dans DSM, hors le problème c'est qu'il n'y a aucune route entre ces deux réseaux, donc aucun moyen de faire transiter une requête DNS d'un réseau vpn en exemple 10.10.10.0 vers 192.168.1.0 donc il n'y aura jamais de résolution DNS sans le renseigner

CQFD

une fois la carte tun0 montée, et l'ip récupérée

sous ssh contrôle qui répond à une requête DNS avec DIG

dig www.google.com

pour le reste seul les logs openvpn peuvent dire ce qui ne vas pas réellement...

voir le manuel pour cela ou contacte ton provider vpn

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

bonjour !

je possede un DS110J (version : 2.3-1157) et en installant :

ipkg install openvpn
qui me retourne :


scrap74> ipkg install openvpn

Installing openvpn (2.1.3-1) to root...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/openvpn_2.1.3-1_arm.ipk

openvpn: unsatisfied recommendation for kernel-module-tun

package openvpn suggests installing xinetd

Configuring openvpn

Successfully terminated.

que veut dire la ligne ? : "openvpn: unsatisfied recommendation for kernel-module-tun", que mon syno ne prend pas en charge le module tun dans son kernel ?

sinon personne n'aurais un kernel cross compilé pour DS110J avec tun intégré dedans ?

merci d'avance pour vos réponses

amicalement

scrap74

Lien vers le commentaire
Partager sur d’autres sites

openvpn: unsatisfied recommendation for kernel-module-tun

package openvpn suggests installing xinetd

bonjour,

les paquets évoluent au fil du temps, le message est explicite il manque le paquet xinetd pour satisfaire pleinement les dependances du paquet openvpn.

ce n'est qu'une suggestion et n'empecheras pas openvpn de tourner en mode client, cela est utile en mode serveur à la demande, si cela empeche pour x raison d'installer openvpn, installe xinetd

Lien vers le commentaire
Partager sur d’autres sites

ok je comprends bien mieux, pourquoi stop ne marche pas, il est pas implanté :)

je regarde cela quand j'ai un moment

pour info voila la base de départ du mien dans l'extrait de tuto cité dans le premier post, modifié ensuite plusieurs fois, ca n'a rien à voir ...

http://www.nas-forum...dpost__p__61088

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonsoir,

Super tuto merci...

J'y arrive presque mais il subsiste un problème.

J'arrive à lancer openvpn via le script "S24openvpn" mais par contre il me demande ensuite de m'authentifier et je dois saisir mes identifiants que j'utilise pour me connecter à mon VPN payant.

Voici le log de connexion:



Sun Sep 19 21:35:00 2010 OpenVPN 2.1.3 arm-none-linux-gnueabi [SSL] [LZO2] [EPOLL] built on Aug 31 2010

Sun Sep 19 21:35:27 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined script$

Sun Sep 19 21:35:27 2010 WARNING: file '/opt/etc/openvpn/keys/xxxx.key' is group or others accessible

Sun Sep 19 21:35:27 2010 WARNING: file '/opt/etc/openvpn/keys/gh.key' is group or others accessible

Sun Sep 19 21:35:27 2010 Control Channel Authentication: using '/opt/etc/openvpn/keys/gh.key' as a OpenVPN stat$

Sun Sep 19 21:35:27 2010 LZO compression initialized

Sun Sep 19 21:35:27 2010 UDPv4 link local: [undef]

Sun Sep 19 21:35:27 2010 UDPv4 link remote: 555.555.555.555:443

Sun Sep 19 21:35:27 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache opti$

Sun Sep 19 21:35:28 2010 [vpvic] Peer Connection Initiated with 555.555.555.555:443

Sun Sep 19 21:35:30 2010 TUN/TAP device tun0 opened

Sun Sep 19 21:35:30 2010 /sbin/ifconfig tun0 10.151.0.58 pointopoint 10.151.0.57 mtu 1500

Sun Sep 19 21:35:37 2010 Initialization Sequence Completed

Question 1) Comment faire pour que je ne doive pas saisir manuellement mes identifiants ? Question 2) Quels droits je dois mettre sur les fichiers gh.key et xxxx.key pour ne pas avoir ces message WARNING ?

Sun Sep 19 21:35:27 2010 WARNING: file '/opt/etc/openvpn/keys/xxxx.key' is group or others accessible

Sun Sep 19 21:35:27 2010 WARNING: file '/opt/etc/openvpn/keys/gh.key' is group or others accessible

chmod xxx yyy ?

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

pour la question des droits, c'est la base lambda de linux, ce tuto n'est pas concerné par ce genre de chose, mais discute des options de openvpn pour les clients seulement donc svp, ouvrir un manuel linux de base pour cela merci

pour la deuxième question, voici l'extrait du manuel concernant l'authentification via clé et mot de passe , cela peut être soit échange de clé seules, soit login/mot de passe seul, soit les deux tout dépend du choix de l'administrateur du serveur openvpn.

donc dans la configuration client que tu as reçu tu dois avoir l'option auth-user-pass qui t'oblige à te loguer en plus de l'échange de clé et il doit manquer l'option script-security 2

de là, il y a possibilité de faire pointer la demande login pass vers un fichier

the server config can specify which combination is required: username/password without a client certificate, username/password plus client certificate, or client certificate alone.

To use: * Add --auth-user-pass option to client config. Add a optional filename argument (user/pass on two lines in the file) or omit for console prompt. * Once you've added --auth-user-pass to the client config, you no longer need to provide --cert and --key files, however you should still include them if the server you are connecting to requires double authentication.

donne l'extrait du fichier client dont tu enlève si tu veux les ip remplacée par des xxx, sans cela je ne peux voir le options qui manquent éventuellement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci pour ta réponse.

En fait le problème que j'ai c'est que j'aimerais bien faire tourner le tunnel vpn automatiquement lorsque mon synology se lance car actuellement, si je quitte le terminal dans mon ordinateur, le tunnel se termine non ? Je dois donc laisser allumer mon ordinateur pour que cela fonctionne ce qui n'est pas le but.

Voici le contenu de mon fichier client.conf

float

remote XXX.XXX.XXX.XXX 443

dev tun

persist-key

persist-tun

proto udp

pull

route-method exe

route-delay 2

nobind

tun-mtu 1500

comp-lzo

auth-user-pass

auth RSA-RIPEMD160

cipher AES-256-CBC

tls-cipher DHE-RSA-AES256-SHA

tls-client

client

tls-auth /opt/etc/openvpn/keys/gh.key 1

ns-cert-type server

ca /opt/etc/openvpn/keys/jh.crt

cert /opt/etc/openvpn/keys/cccc.crt

key /opt/etc/openvpn/keys/cccc.key

keepalive 10 60

resolv-retry 86400

verb 1

status /opt/etc/openvpn/openvpn-status.log

log-append /opt/etc/openvpn/openvpn.log

Merci d'avance.

Si jamais pour ceux qui débutent dans linux voici les permissions que j'ai mis sur mes fichiers .key et .crt:

Concernant les fichiers .key --> chmod 700

Concernant les fichiers .crt --> chmod 755

bonjour,

pour la question des droits, c'est la base lambda de linux, ce tuto n'est pas concerné par ce genre de chose, mais discute des options de openvpn pour les clients seulement donc svp, ouvrir un manuel linux de base pour cela merci

pour la deuxième question, voici l'extrait du manuel concernant l'authentification via clé et mot de passe , cela peut être soit échange de clé seules, soit login/mot de passe seul, soit les deux tout dépend du choix de l'administrateur du serveur openvpn.

donc dans la configuration client que tu as reçu tu dois avoir l'option auth-user-pass qui t'oblige à te loguer en plus de l'échange de clé et il doit manquer l'option script-security 2

de là, il y a possibilité de faire pointer la demande login pass vers un fichier

donne l'extrait du fichier client dont tu enlève si tu veux les ip remplacée par des xxx, sans cela je ne peux voir le options qui manquent éventuellement

Lien vers le commentaire
Partager sur d’autres sites

En fait le problème que j'ai c'est que j'aimerais bien faire tourner le tunnel vpn automatiquement lorsque mon synology se lance car actuellement, si je quitte le terminal dans mon ordinateur, le tunnel se termine non ? Je dois donc laisser allumer mon ordinateur pour que cela fonctionne ce qui n'est pas le but.

plutôt qu'être dans le doute

tu l'a contrôlé au moins ? quitte ta cession ssh et reconnecte toi et vérifie par toi même ;)

si openvpn est bien toujours lancé

1)la carte tun0 doit être montée et avoir une ip

2)le deamon est lancé et possède un pid

3)quel conso ram et cpu génère openvpn (top)

donc dans l'ordre


ifconfig tun0

ps ax | grep openvpn

top

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bonjour

j'utilise un 410j avec le dsm3 et Openvpn client, tun et udp: Tout fonctionne

Je souhaiterai utiliser le vpn uniquement quant je lance des telechargements torrent.

Une idée pour que cela se fasse automatiquement ?

Dans le logique des que l'on lance le telechargement d 'un torrent (creer une tache), ca lance le vpn avant que rtorrent se lance.

Des qu'il y n'y a plus de telechargements de torrent en cours, rtorrent se coupe ainsi que openvpn.

Merci

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.