Accès rapide séries:

jukebox jukebox
AnimesOST Webradio

Badges

  • Free Internet Security - WOT Web of Trust
  • HTML 5
  • Theora video
  • WebM
  • Mozilla Firefox
  • TOR
  • Freenet
No Flash
HTML 5: Aidez le web à se débarrasser de Flash !

Info express: Ajouté: K-On!! 13; Angel Beats! 01 à 11; Fairy Tail 45

Créer son propre réseau OpenVPN

Mise à jour du 31/03: ayant eu des difficultés au passage à Windows 7, mon serveur OpenVPN a été reconfiguré :) La configuration détaillée ci-dessous reflète les corrections (les anciens paramètres étant barrés). Merci à dns777 de s6n pour ses conseils :)


Bonjour à tous, aujourd’hui je vais vous expliquer comment j’ai pu créer un réseau VPN similaire à Arethusa ;)

Dans les grandes lignes, le tutoriel d’Ubuntu-fr parvient déjà à un VPN anonymiseur presque opérationnel. Je vais reprendre les différentes étapes:

  1. Installer les paquets openvpn, openssh-server et openssl.
  2. Créer les certificats de sécurité
  3. générer les paramètres Diffie-Hellman
  4. transférer les clés à ceux qui en ont besoin
  5. configurer OpenVPN
  6. configurer le client
  7. tester la configuration
  8. activer le routage

Note: contrairement à ce qui est indiqué dans le tuto, la copie des scripts de génération de clés doit se faire avec cette commande:

cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/easy-rsa/ -R

Ensuite, suivez tout simplement le tutoriel. Sauf: préférez générer des clés d’une longueur de 2048 au lieu de 1024, si vous voulez la mêmes sécurité qu’Arethusa :) Et prenez aussi le cipher AES-256-CBC.

Pour la configuration du serveur, voici le fichier server.conf utilisé par Fansub Streaming:
(mise à jour: les lignes barrées ne sont pas à ajouter, elles ont été corrigées par les lignes surlignées)

port 3125
proto tcp
proto tcp-server
dev tun
ca ca.crt
cert vpn.fansub-streaming.eu.crt
key vpn.fansub-streaming.eu.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
server 10.10.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.10.10.10"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
client-config-dir ccd
route 10.10.1.0 255.255.255.0
route 10.10.0.0 255.255.255.0

Ensuite, important, il faut que l’interface réseau route l’accès pour le réseau VPN. Pour ce faire, il faut modifier le fichier /etc/network/interfaces

Soyez très prudents avec ce fichier, une mauvaise config et votre serveur peut ne plus être accessible. Contentez vous d’ajouter ces lignes à la fin du fichier:

post-up iptables -t nat -A POSTROUTING -o eth0 -s 10.10.0.1/24 -j MASQUERADE
post-up echo 1 > /proc/sys/net/ipv4/ip_forward

Opération optionnelle: j’ai remarqué que Sakura faisait ses requêtes DNS d’abord sur lui (et vu que Bind est pas installé, ça lui fait perdre du temps), puis sur un serveur DNS d’OVH (qui est lent). Du coup, il fallait attendre ~5 secondes pour que le site se charge. Pour changer la configuration des serveurs DNS, modifier le fichier /etc/resolv.conf. Par exemple ici avec un serveur DNS public sans log faisant partie d’OpenNIC:

nameserver 217.79.186.148

Voilà, le serveur est prêt. Configurons à présent le client OpenVPN sur les ordinateurs qui doivent avoir un accès. Que vous soyez sous Windows ou GNU/Linux, la config est pareil (seule différence: sous Windows le fichier doit avoir une extension .ovpn)

client
dev tun
proto tcp
remote vpn.fansub-streaming.eu 3125
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
redirect-gateway def1 bypass-dhcp

Placez les fichiers ca.crt, client1.crt et client1.key, précédemment récupérés du serveur, dans le dossier config d’OpenVPN. Lancez la connexion. Si ça marche, le client affichera (ici sur Windows):

Wed Mar 03 12:16:19 3125 OpenVPN 2.1_rc19 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Aug 20 2009
Wed Mar 03 12:16:19 3125 NOTE: OpenVPN 2.1 requires ‘–script-security 2′ or higher to call user-defined scripts or executables
Wed Mar 03 12:16:22 3125 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Wed Mar 03 12:16:22 3125 LZO compression initialized
Wed Mar 03 12:16:22 3125 Control Channel MTU parms [ L:1560 D:140 EF:40 EB:0 ET:0 EL:0 ]
Wed Mar 03 12:16:22 3125 Data Channel MTU parms [ L:1560 D:1450 EF:60 EB:135 ET:0 EL:0 AF:3/1 ]
Wed Mar 03 12:16:22 3125 Local Options hash (VER=V4): ’958c5492′
Wed Mar 03 12:16:22 3125 Expected Remote Options hash (VER=V4): ’79ef4284′
Wed Mar 03 12:16:22 3125 Attempting to establish TCP connection with 94.23.213.133:3125
Wed Mar 03 12:16:23 3125 TCP connection established with 94.23.213.133:3125
Wed Mar 03 12:16:23 3125 Socket Buffers: R=[8192->8192] S=[8192->8192]
Wed Mar 03 12:16:23 3125 TCPv4_CLIENT link local: [undef]
Wed Mar 03 12:16:23 3125 TCPv4_CLIENT link remote: 94.23.213.133:3125
Wed Mar 03 12:16:23 3125 TLS: Initial packet from 94.23.213.133:3125, sid=8872ace5 41c32636
Wed Mar 03 12:16:28 3125 VERIFY OK: depth=1, /C=FR/ST=b/L=../O=../CN=../emailAddress=..
Wed Mar 03 12:16:28 3125 VERIFY OK: nsCertType=SERVER
Wed Mar 03 12:16:28 3125 VERIFY OK: depth=0, /C=FR/ST=../L=../O=vpnFS/CN=../emailAddress=..
Wed Mar 03 12:16:36 3125 Data Channel Encrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
Wed Mar 03 12:16:36 3125 Data Channel Encrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Wed Mar 03 12:16:36 3125 Data Channel Decrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
Wed Mar 03 12:16:36 3125 Data Channel Decrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Wed Mar 03 12:16:36 3125 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Mar 03 12:16:36 3125 [..] Peer Connection Initiated with 94.23.213.133:3125
Wed Mar 03 12:16:37 3125 SENT CONTROL [..]: ‘PUSH_REQUEST’ (status=1)
Wed Mar 03 12:16:38 3125 PUSH: Received control message: ‘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′
Wed Mar 03 12:16:38 3125 OPTIONS IMPORT: timers and/or timeouts modified
Wed Mar 03 12:16:38 3125 OPTIONS IMPORT: –ifconfig/up options modified
Wed Mar 03 12:16:38 3125 OPTIONS IMPORT: route options modified
Wed Mar 03 12:16:38 3125 ROUTE default_gateway=192.168.0.1
Wed Mar 03 12:16:38 3125 TAP-WIN32 device [Connexion au réseau local] opened: \\.\Global\{D7A81234-E87D-4CC9-AAD3-32EC0FC2E6DD}.tap
Wed Mar 03 12:16:38 3125 TAP-Win32 Driver Version 9.6
Wed Mar 03 12:16:38 3125 TAP-Win32 MTU=1500
Wed Mar 03 12:16:38 3125 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {D7A81234-E87D-4CC9-AAD3-32EC0FC2E6DD} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
Wed Mar 03 12:16:38 3125 Successful ARP Flush on interface [4] {D7A81234-E87D-4CC9-AAD3-32EC0FC2E6DD}
Wed Mar 03 12:16:43 3125 TEST ROUTES: 2/2 succeeded len=1 ret=1 a=0 u/d=up
Wed Mar 03 12:16:43 3125 C:\WINDOWS\system32\route.exe ADD 94.23.213.133 MASK 255.255.255.255 192.168.0.1
Wed Mar 03 12:16:43 3125 Route addition via IPAPI succeeded [adaptive]
Wed Mar 03 12:16:43 3125 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Mar 03 12:16:43 3125 Route addition via IPAPI succeeded [adaptive]
Wed Mar 03 12:16:43 3125 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Mar 03 12:16:43 3125 Route addition via IPAPI succeeded [adaptive]
Wed Mar 03 12:16:43 3125 C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
Wed Mar 03 12:16:43 3125 Route addition via IPAPI succeeded [adaptive]
Wed Mar 03 12:16:43 3125 Initialization Sequence Complete
d

GeoIpTool:

Avec Wireshark, on peut voir ce que les intermédiaires peuvent voir. En l’occurrence: une purée de données chiffrées entre le client et le serveur VPN:

Et là, j'étais sur thepiratebay.org ^^

Résumons les points forts et points faibles de ce réseau OpenVPN:

  1. mon adresse IP externe est cachée: les sites et autres ordinateurs ne voient que l’IP du serveur VPN (voir GeoIpTool). Puissante mesure contre Hadopi, car elle devra contacter l’hébergeur pour connaître l’identité de la personne, et la Hadopi a une procédure « spéciale » pour les personnes morales (sociétés, associations,..), et si le VPN est à l’étranger, la Hadopi ne peut rien faire
  2. contrairement à un proxy, un VPN route une interface entière et pas seulement un logiciel
  3. avec un VPN on peut faire reconnaître 2 ordinateurs sur internet comme étant en réseau local (pratique pour les jeux vidéos en LAN, les transferts avec les clients de messagerie, accéder aux dossiers partagés, se connecter à l’intranet de son entreprise depuis l’extérieur,…)
  4. cette solution ne peut pas être interdite par la loi: les VPN sont beaucoup utilisés par les grosses entreprises (intranet depuis internet)
  5. on contourne ainsi le filtrage et le bridage mis en place par son fournisseur d’accès internet pour des services précis (exemple: SFR qui ralentit l’UDP, pour brider le peer to peer, ou Orange dont les DNS donnent un accès très lent à Youtube, ou encore permettre un accès à Hulu pour un non-américain)
  6. OpenVPN est meilleur que PPTP (utilisé notamment par iPredator) car supporte une compression, permet un chiffrage bien plus puissant et contourne plus facilement les pare-feu.
  1. avec un serveur VPN, ça fait un intermédiaire de plus, donc une connexion moins performante
  2. OpenVPN nécessite l’installation d’un logiciel
  3. via un VPN, le pare-feu du routeur est contourné donc ça donne accès à un poste local via internet
  4. en cas de déconnexion du VPN, il faut mettre en place des mesures de coupure (pour éviter une fuite d’anonymat)
  5. il faut un serveur VPN très rapide si l’on veut aussi une connexion très rapide – vitesse de connexion autour de 50-100 Mb/s, je m’entends, un serveur RPS ou Cloud à 10 € par mois chez OVH ou 1&1 fait l’affaire pour 10 utilisateurs

Voilà, fin de l’histoire :)

7 commentaires sur Créer son propre réseau OpenVPN

  • HollowMan

    Bonjour,
    J’ai suivi votre tuto, et j’ai une conf qui ressemble à la votre, mais mes requetes ne sortent pas du tunnel via l’OpenVPN !
    Je peux me connecter, pinger le serveur, mais pas d’internet du tout.
    Un détail que je n’ai aps compris sur votre fichier de conf, c’est pourquoi ajouter une route sur l’IP 10.10.1.0 qui n’est pas sur le même masque que le serveur? Et qu’avez-vous mis dans vos fichier ccd?

    Cordialement,


  • Le 10.10.1.0, je sais plus pourquoi je l’ai mis d’ailleurs. Pas nécessaire je pense.

    Dans le fichier /etc/network/interfaces:
    post-up iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.1/24 -j MASQUERADE
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward

    Et là normalement le serveur route le réseau VPN et sa connexion internet.
    Note: je ne sais pas comment ça se présente sous MacOSX.

  • HollowMan

    Hum, c’est bizarre. J’ai uniquement accès à google à travers le VPN, tous les autres sites ne passent pas Oo. Dans le log j’ai une quantité impressionnante de « packet dropped ». Voici ma conf server:

    port 443
    proto tcp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh1024.pem
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1"
    push "dhcp-option DNS 10.8.0.1"
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    log /var/log/openvpn.log
    verb 4
    client-config-dir ccd
    duplicate-cn
    client-to-client

    Auriez-vous une idée d’où ca vient?
    Ok pour le fichier interfaces, mais avez-vous créé des fichiers dans votre dossier ccd?
    Merci de votre réponse !


  • Mmmmh…

    bypass-dhcp peut être, ou parce qu’il manque le cipher ? Ou tout simplement l’option client-to-client ? ;)

    Dans le dossier ccd, un fichier par utilisateur. Par exemple: « arkados ». Contenu:
    # cat /etc/openvpn/ccd/arkados
    iroute 10.10.1.0 255.255.255.0

  • HollowMan

    Rah, toujours pareil, je ne comprends pas pourquoi il y a des IPs qui ne sont pas sur le même masque que le serveur VPN (10.10.1.0)…

  • Rippalka

    Salut, je travaille avec « HollowMan » sur ce VPN. J’ai une question : on a exactement le même message que toi lors de la connexion, excepté un très génant : « /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.5″ à la fin des routes.
    Alors que dans la pratique il faut remplacer 10.8.0.0 par 10.8.0.1. Ceci est due au « push « redirect-gateway def1 bypass-dhcp »" sur le server.conf.
    Il n’y a aucun moyen de rectifier cela manuellement. Aurais-tu une idée ?
    Merci d’avance ^^


  • 10.8.0.0 c’est l’adresse du réseau :) Différent de l’adresse de la passerelle (le serveur VPN). Mais là je vois pas, désolé.

Laisser un commentaire

 

 

 

Flattr

Vous pouvez utiliser ces tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:) :( ;) :x :roll: :rouge: :pff: :p :mrgreen: :jap: :-?


Notes:
Les commentaires sont immédiatement publiés.
Il se peut que le commentaire soit marqué "indésirable" (IP listée par Akismet, proxy, liens,...): il apparaitra après modération.
L'avatar associé à votre adresse email provient de Gravatar. Vous pouvez l'y changer.

Fansub Streaming respecte vos informations privées. Mais ne publiez pas votre adresse IP !