Afficher/cacher Sommaire
illyse-openvpn
Documentation utilisateur pour le VPN Illyse
Le VPN d’Illyse utilise OpenVPN, qui a l’avantage de fonctionner sur à peu près n’importe quelle plate-forme (GNU/Linux, OS X, Windows, Android, …)
Cette page sert de documentation utilisateur. Pour l’instant, elle contient principalement des exemples de fichier de configuration pour le client openvpn.
Les fichiers de configuration donnés ici sont génériques, au sens où le reste de la configuration se fait via l’interface web abonné Illyse : https://coin.illyse.org/ (adresses IP à utiliser sur le tunnel, etc).
Avant de commencer
Se connecter au SI d’Illyse avec le nom d’utilisateur communiqué par mail : COIN. Si c’est votre première connexion, choisir un mot de passe pour COIN et bien le retenir.
Aller dans la catégorie “Mes Abonnements”. Si rien n’apparaît alors que vous avez souscrit au VPN, contacter adminsys@illyse.org.
A la ligne “VPN”, cliquer sur “*Configuration*”. Noter le nom
d’utilisateur (le mieux est de le copier dans un fichier texte brut,
nous verrons pourquoi ensuite). Générer un mot de passe et le copier
dans le même fichier. Attention, si vous perdez votre mot de passe il
faudra en générer un nouveau.
Si on installe le VPN sur une brique
internet , noter aussi l’adresse IPv4 et
l’adresse IPv6 liées à votre VPN.
Note importante sur la sécurité
Le VPN Illyse fournit une IPv4 publique et de l’IPv6 (elle aussi
publique, évidemment). Aucun pare-feu (firewall) n’est en place côté
Illyse : assurez-vous d’avoir un pare-feu (firewall) sur votre
machine lorsque vous utilisez le VPN.
De plus il est possible que votre pare-feu considère la connexion VPN
comme faisant partie d’un réseau “privé” et abaisse le niveau de
sécurité sur cette connexion.
Vous pourriez vous retrouver à exposer sur Internet, entre autres :
- un serveur SSH, avec des mots de passe faibles,
- un serveur Web, avec une application en cours de développement,
- un serveur mail mal configuré, susceptible de relayer du spam (open-relay) et de provoquer rapidement l’inscription de votre adresse IP dans des listes noires (RBL),
- le protocole SMB sur les systèmes Microsoft Windows, qui permet entre autres d’accéder aux partages réseaux et aux imprimantes.
Gardez à l’esprit que votre adresse IPv4 publique sera l’objet de scans intensifs depuis Internet, surtout si elle est utilisée pour la première fois.
Illyse vous fournit un accès à Internet neutre, ce qui signifie entre autres que l’association ne se permet pas de décider à la place ses abonnés de ce qu’il faut filtrer sur leur connexion.
N’hésitez pas à demander de l’aide, à poser des questions, dans l’association ou ailleurs, pour conserver la pleine maîtrise de votre connexion :)
Paramètres de connexion OpenVPN
Si vous savez déjà utiliser OpenVPN, les informations les plus importantes sont les suivantes :
- Serveur : vpn.illyse.net
- Protocole : UDP recommandé, TCP possible
- Port : quelconque (1194 est le port standard OpenVPN, mais tous les ports mènent au serveur VPN)
- Compression : non
- Fragmentation : 1300 octets
- TCP MSS fix : 1300 octets
Notez donc que le serveur OpenVPN d’Illyse écoute à la fois en UDP et en TCP, et ce, sur n’importe quel port. Si vous êtes sur un réseau complètement bloqué mais que UDP/53 ou TCP/443 passe, pas de problème, le VPN passe !
Pour des raisons de performance, UDP est recommandé. N’utilisez le mode TCP qu’en dernier recours. Référence : http://sites.inka.de/bigred/devel/tcp-tcp.html
Exemples de configuration.
Ces exemples de fichiers de configuration sont là pour vous aider à vous connecter au VPN.
GNU/Linux (Debian Wheezy)
Pour les débutants
Installer OpenVPN : ouvrir un terminal et taper “sudo aptitude install openvpn”. Se connecter en root dans le terminal (“sudo su”) et se placer dans le répertoire /etc/openvpn/ (“cd /etc/openvpn/”). Créer le fichier texte nommé illyse.conf (nano illyse.conf) et copier dedans la configuration ci-dessous. Créer le fichier texte nommé credentials et y insérer le nom d’utilisateur et le mot de passe stockés précédemment (une ligne chacun, voir modèle ci-dessous).
Lancer le VPN avec la commande “service openvpn start illyse” (besoin d’être root). Ça devrait fonctionner ! Si ce n’est pas le cas, vérifier les étapes précédentes, et la connexion Internet. Si ça ne fonctionne toujours pas, écrire un gentil mail à adminsys@illyse.org en joignant le rapport d’erreur situé ici : /var/log/openvpn-illyse.log. Pour stopper le VPN, taper la commande “service openvpn stop illyse”.
Fichier de configuration OpenVPN
La configuration est commentée, n’hésitez pas à changer des paramètres. Avec les paramètres ci-dessous, une IPv4 et une IPv6 seront attribués, et tout le trafic passera par le VPN.
/etc/openvpn/illyse.conf
# C’est nous qui prenons l’initiative de nous connecter au serveur.
client
# On route de l’IP, on ne fait pas de l’ethernet.
dev tun0
# si on ne reçoit pas d’IP pour tun0:
# - soit on configure l’interface avec des ip privées bidon
#ifconfig 10.255.255.1 10.255.255.2
# - soit on utilise un script pour faire “ifconfig tun0 up”
#script-security 2
#up up.sh
# Il est préférable d’utiliser udp, le résultat fonctionne mieux. Il
est
# cependant notable que les restrictions d’accès Internet laissent
souvent
# plus facilement passer tcp. Essayez donc udp, et seulement s’il ne
fonctionne
# pas, essayez tcp.
# Transport sur udp v4. En v6, la redirection de passerelle par défaut
fonctionne mal (openvpn ne crée pas l’équivalent de la route /32 IPv4
vers le serveur vpn via la passerelle sous-jacente)
# Si on ne prévoit pas d’utiliser la directive “redirect-gateway def1”,
alors on peut choisir “proto udp6” pour monter le tunnel en IPv6.
#proto udp6
proto udp
#proto tcp
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux
connexions
# TCP d’être très conservatives, pour que ça marche plus ou moins
partout.
mssfix 1300
# En UDP, on peut s’assurer que ça passe de toutes façons en
fragmentant au besoin
# quand ça dépasse.
fragment 1300
# Idéalement, ça devrait être détecté tout seul, mais c’est loin de
toujours fonctionner…
#mtu-disc yes
# En udp, Prévenir le serveur quand on termine, permet de relancer
# immédiatement sans attendre que le serveur se rende compte de la
# déconnexion par timeout.
explicit-exit-notify
# L’adresse du serveur.
remote vpn.illyse.net 1194
# Éventuellement, on peut avoir besoin de passer par un proxy http,
décommenter cette ligne en mettant l’adresse et le port du proxy.
#http-proxy 192.0.2.1 8080
# Attendre un peu avant d’ajouter les routes.
route-delay 2
# Ne pas utiliser un port local statique, on est client de toutes
façons.
nobind
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors
d’un
# redémarrage.
persist-key
# Ne pas tuer l’interface du tunnel lors d’un redémarrage.
#persist-tun
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
redirect-gateway def1
# On peut aussi vouloir plutôt router seulement quelques destinations,
par
# exemple ici tout Gitoyen:
#route 80.67.160.0 255.255.224.0
# Activer IPv6 dans le tunnel
tun-ipv6
# et faire passer tout le trafic IPv6 via le VPN:
route-ipv6 ::/1
route-ipv6 8000::/1
# Envoyer un login et un mot de passe. Pour éviter de taper à la main
login
# et mot de passe, vous pouvez ajouter à droite de “auth-user-pass” le
nom d’un
# fichier contenant ces deux informations, une par ligne.
auth-user-pass credentials
# Retenter le l’authentification même si le serveur la refuse (utile
pour
# éviter de faire mourir le client si le serveur LDAP ne répond pas)
auth-retry nointeract
# Un minimum de debug, c’est toujours bien.
verb 3
log-append /var/log/openvpn-illyse.log
# Certificat permettant de vérifier que c’est bien à Illyse que
# l’on se connecte et donc à qui on donne notre mot de passe.
remote-cert-tls server
<ca>
—–BEGIN CERTIFICATE—–
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
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
—–END CERTIFICATE—–
</ca>
/etc/openvpn/credentials
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui,
c’est moche.)
Spécifier login et mot de passe sur deux lignes différences.
jkleboulet-vpn1
omgsuchsecured123
Mise à jour automatique de resolv.conf
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
<mit-mit> Bon, ça marche, faut ajouter à la config : <mit-mit> script-security 2 <mit-mit> up /etc/openvpn/update-resolv-conf <mit-mit> down /etc/openvpn/update-resolv-conf <mit-mit> et avoir resolvconf d’installé. <mit-mit> (la première ligne étant l’autorisation de lancement de scripts externes)
GNU/Linux (Network Manager)
Il est possible de configurer graphiquement le VPN via Network Manager.
(J’utilise la version KDE, des détails peuvent varier si vous utilisez
la version gtk)
Téléchargez le fichier vpn-illyse.crt.
Installez le backend openvpn pour Network Manager, puis créez une
nouvelle connexion de type openvpn.
Complétez comme suit, indiquez le chemin du fichier crt, votre login et
votre mot de passe VPN :
Cliquez sur «Avancé», mettez 1300 dans «Taille du fragment UDP» et
cochez «Restreindre la taille maximale du segment TCP (MSS)»
Windows
Installez OpenVPN, par exemple en suivant la documentation présente ici : http://www.rezine.org/documentation/tunnels_chiffres/#index4h1
Créez ensuite le fichier suivant.
Faites attention à l’extension des fichiers : parfois Windows ajoute une
extension .txt aux fichiers sans le dire.
C:\Program Files\OpenVPN\config\illyse\illyse.ovpn
# C’est nous qui prenons l’initiative de nous connecter au serveur.
client
# On route de l’IP, on ne fait pas de l’ethernet.
dev tun0
# si on ne reçoit pas d’IP pour tun0:
# - soit on configure l’interface avec des ip privées bidon
#ifconfig 10.255.255.1 10.255.255.2
# - soit on utilise un script pour faire “ifconfig tun0 up”
#script-security 2
#up up.sh
# Il est préférable d’utiliser udp, le résultat fonctionne mieux. Il
est
# cependant notable que les restrictions d’accès Internet laissent
souvent
# plus facilement passer tcp. Essayez donc udp, et seulement s’il ne
fonctionne
# pas, essayez tcp.
#proto udp6
proto udp
#proto tcp
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux
connexions
# TCP d’être très conservatives, pour que ça marche plus ou moins
partout.
mssfix 1300
# En UDP, on peut s’assurer que ça passe de toutes façons en
fragmentant au besoin
# quand ça dépasse.
fragment 1300
# Idéalement, ça devrait être détecté tout seul, mais c’est loin de
toujours fonctionner…
#mtu-disc yes
#mtu-test
#link-mtu 1300
#tun-mtu 1300
# En udp, Prévenir le serveur quand on termine, permet de relancer
# immédiatement sans attendre que le serveur se rende compte de la
# déconnexion par timeout.
explicit-exit-notify
# L’adresse du serveur.
remote vpn.illyse.net 1194
# Éventuellement, on peut avoir besoin de passer par un proxy http,
décommenter cette ligne en mettant l’adresse et le port du proxy.
#http-proxy 192.0.2.1 8080
# Pour windows: utiliser route.exe.
route-method exe
# Attendre un peu avant d’ajouter les routes.
route-delay 2
# Ne pas utiliser un port local statique, on est client de toutes
façons.
nobind
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors
d’un
# redémarrage.
persist-key
# Ne pas tuer l’interface du tunnel lors d’un redémarrage.
#persist-tun
#ip-win32 ipapi
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
redirect-gateway def1
# On peut aussi vouloir plutôt router seulement quelques destinations,
par
# exemple ici tout Gitoyen:
#route 80.67.160.0 255.255.224.0
# Activer IPv6 dans le VPN
tun-ipv6
# Faire passer tout le trafic IPv6 via le VPN:
route-ipv6 ::/1
route-ipv6 8000::/1
# Envoyer un login et un mot de passe. Pour éviter de taper à la main
login
# et mot de passe, vous pouvez ajouter à droite de “auth-user-pass” le
nom d’un
# fichier contenant ces deux informations, une par ligne.
auth-user-pass credentials
# Un minimum de debug, c’est toujours bien.
verb 3
#log-append /var/log/openvpn-illyse.log
# Certificat permettant de vérifier que c’est bien à Illyse que
# l’on se connecte et donc à qui on donne notre mot de passe.
remote-cert-tls server
<ca>
—–BEGIN CERTIFICATE—–
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
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
—–END CERTIFICATE—–
</ca>
Il est également possible de créer un fichier contenant vos logins et mots de passe pour éviter de les taper à chaque connexion. Par exemple :
C:\Program Files\OpenVPN\config\illyse\credentials
jkleboulet-vpn1
omgsuchsecured123
Si vous ne voulez pas utiliser un tel fichier, commentez la ligne «auth-user-pass credentials» dans la configuration.
Mac OS X
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
Créer un fichier illyse.ovpn avec la configuration voulue. Celle
indiquée ci-dessous fonctionne sans modification necessaire.
Double-cliquer sur le fichier afin que TunnelBlick import la
configuration.
A la première connexion, il va demander un couple login/password qu’il
sera possible de stocker dans le trousseau.
Paramètres modifiés par rapport à la configuration pour Linux :
- log-append : Ce paramètre n’est pas accepté. Mais tunnelblick log déjà en interne.
- auth-user-pass : On ne précise pas de fichier de credential, c’est géré par Tunnelblick et Keychains au moment de la connexion
- Les commentaires ont été retirés car le fichier est tronqué au moment de l’import s’il est trop long (ce qui était le cas)
illyse.ovpn
client
dev tun0
proto udp
mssfix 1300
fragment 1300
explicit-exit-notify
remote vpn.illyse.net 1194
#http-proxy 192.0.2.1 8080
route-delay 2
nobind
persist-key
persist-tun
redirect-gateway def1
#route 80.67.160.0 255.255.224.0
tun-ipv6
route-ipv6 ::/1
route-ipv6 8000::/1
auth-user-pass
verb 3
remote-cert-tls server
<ca>
—–BEGIN CERTIFICATE—–
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
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
—–END CERTIFICATE—–
</ca>
Android
Configuration OpenVPN pour Android (testé sous Android 4.4.4 et OpenVPN
for Android v0.6.17)
Ci-après un fichier de configuration qui devrait fonctionner avec
l’application Android OpenVPN for Android,
Disponible sur F-Droid :
https://f-droid.org/repository/browse/?fdfilter=openvpn&fdid=de.blinkt.openvpn
Ou au pire sur le PlayStore :
https://play.google.com/store/apps/details?id=de.blinkt.openvpn
Posez le fichier de configuration, renommé en VPN-Illyse.conf par
exemple, sur l’appareil.
Une fois l’application installée et démarrée, cliquez sur le dossier en
bas à droite et chezchez le fichier de configuration.
Il suffit de renseigner les identifiants.
#
# Fichier de configuration VPN Illyse pour Android
# 2014-10-14
#
# Enables connection to GUI
management /data/data/de.blinkt.openvpn/cache/mgmtsocket unix
management-client
management-query-passwords
management-hold
setenv IV_GUI_VER “de.blinkt.openvpn 0.6.17”
machine-readable-output
client
verb 4
connect-retry-max 5
connect-retry 5
resolv-retry 60
dev tun
remote vpn.illyse.net 1194 udp
auth-user-pass
route-ipv6 ::/0
route 0.0.0.0 0.0.0.0 vpn_gateway
remote-cert-tls server
persist-tun
# persist-tun also enables pre resolving to avoid DNS resolve problem
preresolve
# Use system proxy setting
management-query-proxy
# Custom configuration options
# You are on your on own here
mssfix 1300
fragment 1300
<ca>
—–BEGIN CERTIFICATE—–
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
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
—–END CERTIFICATE—–
</ca>
Yunohost
Installer le client VPN
- Dans Applications > Install, en bas de la page, entrer ‘https://github.com/labriqueinternet/vpnclient_ynh’ dans le champ Install custom app.
- Lire et valider l’avertissement.
- Valider l’installation en cliquant sur le bouton Install
Configurer le client VPN
Méthode automatique, “.cube”
Le .cube est un fichier permettant de configurer l’application vpn-client automatiquement. Idéalement, ce fichier devrait être automatiquement généré pour chaque adhérant dans notre SI, Coin. Ce n’est pour l’instant pas encore le cas. Il faut donc faire son .cube à la main, en utilisant la base suivante :
- télécharger le .cube de base: illyse.cube
- l’éditer avec n’importe quel éditeur de texte (notepad, gedit, nano, vim, etc) afin de remplacer les 4 champs vous concernant: ip6_net, ip4_addr, login_user, login_passphrase. Ces infos sont à retrouver dans Coin (cf #Avant-de-commencer)
- importer le .cube dans l’application vpn_client (onglet “Automatic” dans la configuration de l’application)
Méthode manuelle
La méthode “.cube” décrite ci-dessus est vivement conseillée, car elle permet de simplifier la procédure et d’éviter les erreurs. La méthode manuelle est donnée uniquement à titre informatif.
- Dans Applications > VPN Client, cliquer sur l’URL https://maBrique.nohost.me/vpnadmin
- Server Address: vpn.illyse.net
- Server Port: 1194
- Protocol: UDP
- Advanced: copier coller la configuration suivante:
remote <TPL:SERVER_NAME>
proto <TPL:PROTO>
port <TPL:SERVER_PORT>
pull
nobind
dev tun
tun-ipv6
keepalive 10 30
resolv-retry infinite
mssfix 1300
route-delay 2
nobind
persist-key
# Authentication by login
<TPL:LOGIN_COMMENT>auth-user-pass /etc/openvpn/keys/credentials
# UDP only
<TPL:UDP_COMMENT>explicit-exit-notify
<TPL:UDP_COMMENT>fragment 1300
# TLS
tls-client
<TPL:TA_COMMENT>tls-auth /etc/openvpn/keys/user_ta.key 1
remote-cert-tls server
ns-cert-type server
ca /etc/openvpn/keys/ca-server.crt
<TPL:CERT_COMMENT>cert /etc/openvpn/keys/user.crt
<TPL:CERT_COMMENT>key /etc/openvpn/keys/user.key
# Logs
verb 3
mute 5
status /var/log/openvpn-client.status
log-append /var/log/openvpn-illyse.log
# Routing
route-ipv6 2000::/3
redirect-gateway def1
- Server CA: Téléchargez le fichier vpn-illyse.crt et le téléverser.
- Username: pdupond-vpn1 (information issue de coin, cf section #Avant-de-commencer)
- Password: idem
- First resolver: 80.67.169.12
- 2nd resolver : 2001:913::8
L’ensemble des autres champs est à laisser sur la valeur par défaut.
Configurations avancées
Client sans IP montée sur le tunnel
Pour ceux qui veulent bricoler, il est possible (via l’interface web abonné) ne pas monter du tout d’IP (v4 ou v6) sur l’interface tun du client. Dans ce cas, les paquets destinés aux ranges v4 et v6 de l’abonné sont toujours routés correctement vers le client, mais il appartient à l’abonné de s’assurer qu’ils seront correctement routés plus avant sur son réseau interne. Ça peut être utile si on ne veut pas utiliser l’IPv4 publique Illyse directement sur le routeur qui monte le VPN, mais sur une autre machine du réseau local.
Attention, si il n’y a pas d’IPv4 installée sur l’interface tun, OpenVPN est très bête et n’arrivera pas à installer la route par défaut par le VPN… OpenVPN essaie d’ajouter des routes avec 89.234.140.129 comme gateway, mais il ne sait pas joindre cette IP. Pour résoudre la stupidité d’OpenVPN\^W\^W\^W ce problème, on utilise un script qui rajoute la route :
/etc/openvpn/illyse.conf
…
route-delay 2
redirect-gateway def1
script-security 2
up illyse-up.sh
…
/etc/openvpn/illyse-up.sh
#!/bin/sh
tun_dev=”$1”
ip link set “$tun_dev” up
ip route add “$route_vpn_gateway” dev “$tun_dev”
exit 0
Utiliser simultanément la connexion normale et le VPN, sortie par défaut par la connexion normale
Lorsqu’on a un serveur, on peut avoir envie d’être joignable à la fois via la connexion normale (e.g. Free) et via le VPN. Pour se faire, on utilise le policy routing du noyau Linux : quand quelqu’un nous parle sur l’IP normale, on lui répond via la connexion normale, et quand quelqu’un nous parle sur l’IP du VPN, on répond via le VPN. Notons que ça ne concerne que les connexions entrantes (donc principalement utile pour un serveur).
Pour les connexions sortantes, on a le choix : soit on passe dans le VPN, soit on passe par la connexion normale. La configuration ci-dessous fait passer les connexions sortantes par la connexion normale (parce que c’est plus simple).
Note : il faut s’assurer de bien avoir configuré une IPv4 et une IPv6 sur l’interface tun (sur https://coin.illyse.org). Sinon, les scripts ne feront rien.
Bonus : si vous avez un noyau Multipath-TCP, cette configuration
permettra d’utiliser les deux connexions en parallèle ! Pratique pour
joindre Youtube si on est chez Free, par exemple :)
(la configuration ci-dessous est similaire à
http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
/etc/openvpn/up.sh
#!/bin/bash
dev="$1"
tun_mtu="$2"
link_mtu="$3"
local_ip="$4"
remote_ip="$5"
# Routing table to use
table=4242
# Source-specific routing: use the normal default route by default,
# but use the VPN for replying to packets coming from the VPN.
# IPv4
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
# IPv6
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
/etc/openvpn/down.sh
#!/bin/bash
dev="$1"
tun_mtu="$2"
link_mtu="$3"
local_ip="$4"
remote_ip="$5"
table=4242
# Delete table for source-specific routing.
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
exit 0
/etc/openvpn/illyse.conf
## Configuration VPN Illyse pour accepter des connexions entrantes
## à la fois via le VPN et via la connexion normale, grâce au policy
routing (Linux uniquement)
##
https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
# Gestion des routes via des scripts externes.
script-security 2
up up.sh
down down.sh
# Reste de la configuration normale.
# Penser à enlever “redirect-gateway” et “route-ipv6”, on gère les
# routes via up.sh et down.sh
client
remote vpn.illyse.net 1194
#http-proxy 192.0.2.1 8080
dev tun0
#proto udp6
proto udp
#proto tcp
explicit-exit-notify
mssfix 1300
fragment 1300
route-delay 2
nobind
persist-key
persist-tun
tun-ipv6
auth-user-pass credentials
verb 3
log-append /var/log/openvpn-illyse.log
# Certificat permettant de vérifier que c’est bien à Illyse que
# l’on se connecte et donc à qui on donne notre mot de passe.
remote-cert-tls server
<ca>
—–BEGIN CERTIFICATE—–
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
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
—–END CERTIFICATE—–
</ca>
Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN
Dans la configuration précédente, les deux IPs, FAI et VPN, sont
accessibles de l’extérieur et répondent correctement.
La machine toutefois utilise par défaut la sortie FAI plutôt que le
VPN.
Le cas décrit ici a son IP FAI obtenue par DHCP, avec la table de
routage main, et sans IPv6.
Il faut bidouiller les routes pour que si on contacte l’IP du serveur
VPN, on passe bien par l’IP FAI et l’interface qui correspond, puis
répondre à ce qui vient de l’IP FAI par la table main, et enfin par
défaut sortir par le table correspondant au VPN.
Étape 1, dans le fichier illyse.conf, il faut ajouter l’option
‘ifconfig-noexec’ pour éviter qu’openVPN ne monte l’IP du VPN avant
qu’on ne gère ça dans le script up.sh
Étape 2, changer les scripts up.sh et down.s. Actuellement, on n’a pas
trouvé de solution propre pour éviter de coder en dur des paramètres
dans ce scripts.
/etc/openvpn/up.conf
#!/bin/bash
dev="$1"
isp_dev="eth0"
tun_mtu="$2"
link_mtu="$3"
local_ip="$4"
remote_ip="$5"
isp_ip="WWW.XXX.YYY.ZZZ"
isp_gateway="WWW.XXX.YYY.ZZZ"
vpn_server="89.234.140.3"
# Routing table to use
tableVPN=4242
tableLOC=1337
# IP inconnue de COIN, donc tun0 à monter
ip link set "$dev" up
ip addr add "$local_ip"/32 dev "$dev"
# Source-specific routing: use the normal default route by default,
# but use the VPN for replying to packets coming from the VPN.
# IPv4
if [ -n "local_ip" ]; then
ip rule add pref 31000 lookup "$tableLOC"
ip rule add pref 31050 from "$isp_ip" lookup main
ip rule add pref 31100 lookup "$tableVPN"
ip route add default dev "$dev" table "$tableVPN"
ip route add "$vpn_server" via "$isp_gateway" table "$tableLOC" dev "$isp_dev"
fi
# IPv6
[ -n "$ifconfig_ipv6_local" ] && ip -6 addr add "$ifconfig_ipv6_local" dev "$dev" && ip -6 route add default dev "$dev"
exit 0
/etc/openvpn/down.conf
dev="$1"
tun_mtu="$2"
link_mtu="$3"
local_ip="$4"
remote_ip="$5"
isp_ip="WWW.XXX.YYY.ZZZ"
isp_gateway="WWW.XXX.YYY.ZZZ"
vpn_server="89.234.140.3"
# Routing table to use
tableVPN=4242
tableLOC=1337
# Delete table for source-specific routing.
if [ "$local_ip" ]; then
ip route del "$vpn_server" via "$isp_gateway" table "$tableLOC"
ip route del default dev "$dev" table "$tableVPN"
ip rule del pref 31100 lookup "$tableVPN"
ip rule del pref 31050 from "$isp_ip" lookup main
ip rule del pref 31000 lookup "$tableLOC"
fi
[ -n "$ifconfig_ipv6_local" ] && ip -6 route del default dev "$dev" && ip -6 addr del "$ifconfig_ipv6_local" dev "$dev"
exit 0
Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN, et faire AP WiFi
On a foutu le bordel dans les routes, ce qui fait que hostapd n’arrive
pas à faire tomber le bousin en marche, car il met ses routes dans la
table main au lieu de les mettre dans la tableVPN 4242.
Du coup, on l’aide (en supposant que le wlan soit en 192.168.2.0/24) :
ip route del 192.168.2.0/24 dev wlan0 table main
ip route add 192.168.2.0/24 dev wlan0 table 4242
Il ne reste plus qu’à activer le NAT sur l’interface tun0 du VPN et paf ! On fait un beau AP WiFi (vilainement naté) qui fournit une connexion Illyse.
vpn1.png
(40,5 ko) Côme chillie, 06/10/2015 00:20
vpn2.png
(39,3 ko) Côme chillie, 06/10/2015 00:20
vpn-illyse.crt
- Certificat serveur VPN (2,38 ko) Florent Guillot, 07/02/2016 19:41
illyse.cube (2,97 ko) Florent Guillot, 23/06/2016 20:18
Fichier .cube
Un fichier .cube n’est qu’un fichier Json. Les sections suivantes ont pour but d’expliquer aux fournisseurs de VPN comment créer des fichiers .cubes pour leurs membres.
{
"server_name": "vpn.ldn-fai.net",
"server_port": "1194",
"server_proto": "udp",
"ip6_net": "2001:db8:c42::",
"ip4_addr": "203.0.113.42",
"crt_server_ca": "-----BEGIN CERTIFICATE-----|MIIFFXAJjzZhAZJ+JHA…eRte6K|-----END CERTIFICATE-----",
"crt_client": "-----BEGIN CERTIFICATE-----|MIIFbUHHQjauIUoiUAA5ax…4T3As=|-----END CERTIFICATE-----",
"crt_client_key": "-----BEGIN PRIVATE KEY-----|MIIEvM/JsSAmledzvE…i8kAMj|-----END PRIVATE KEY-----",
"crt_client_ta": "",
"login_user": "",
"login_passphrase": "",
"dns0": "89.234.141.66",
"dns1": "2001:913::8",
"openvpn_rm": [ ],
"openvpn_add": [ "topology subnet" ]
}