Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Une box à monter soi-même pour faire transiter tout son trafic réseau via un VPN

Il y a quelque temps, j’avais rédigé un petit tuto pour vous expliquer comment transformer un vieux routeur WRT54-GL en passerelle VPN, histoire de faire transiter par le VPN de votre choix, tous les appareils de la maison.

Suite à ça, je me suis vite rendu compte des limitations de ce vieux routeur et, Pierre-Henry, un fidèle lecteur m’a recommandé un peu de matos sympa pour faire ça. Du coup, j’ai commandé le matos, fait table rase et installé ce nouveau matériel.

Pourquoi tout passer par un VPN ?

D’abord, avoir un VPN sous la main, que celui-ci soit en France où à l’étranger, ça permet de se sécuriser un minimum quand on est dans une situation de mobilité.Le VPN permet d’établir un tunnel chiffré d’un point A à un point B et je peux donc me connecter tranquillement à partir d’un hôtel, d’une conf ou d’un resto, sans me faire « espionner » (MITM) par les scripts kiddies alentour.

Après tout, passer en VPN quand on est chez soi, c’est une question plus idéologique que pratique quand on est en France. Si comme moi, vous êtes une tête de mule et que par principe, vous refusez la surveillance de masse, et qu’en plus vous êtes prêt à accepter une petite perte de débit, à dépenser un peu de pognon et à passer un peu de temps à configurer tout ça, c’est bon. Dans le cas contraire, tout passer par un VPN n’est pas intéressant pour vous.

Choix du VPN

Je n’ai qu’une confiance relative en tous les fournisseurs de VPN… Mis à part quelques-uns comme Freedome (recommandé par Snowden, bitches !), c’est difficile de faire un choix. Le plus sûr à mon goût est de choisir un pays qui vous convienne (Suisse, Islande ou que sais-je) et d’y louer un petit serveur pas cher (genre, un VPS). L’important c’est de choisir un pays qui a encore des lois faites pour servir les citoyens et qui respecte la vie privée. Bref, un pays qui n’aspire pas toutes vos données contrairement à la France ou les États-Unis.

Mon VPN  n’ayant pas pour but de faire des trucs illégaux (téléchargement ou pire), je suis aussi assez tranquille niveau respect des lois, donc aucun risque de me faire couper la ligne.

Le matos

Alors pour le matos, ce que m’a recommandé Pierre Henry, c’est ceci. Il s’agit d’un PC à refroidissement passif équipé d’un proc AMD, de 4 Gb de ram, de 3 ports Ethernet gigabits, de 2 ports USB externes, consommant 6 à 12 W et rentrant dans un boitier tout simple de 17 x 16 x 3 cm.

apu1c1

case1d2blku2

L’idée pour moi, c’est d’avoir un petit truc silencieux, qui consomme peu, ne demande aucun entretien et ne prenne pas de place. Cette carte de PC s’achète seule. Il faut donc commander le boitier en plus. Et si vous voulez du stockage, il est aussi possible de prendre un SSD mSATA à coller dedans (ou rester sur une clé USB pour l’OS) et une carte Wifi mPCI. Moi je n’ai pas de WiFi à la maison, donc pas besoin de cette dernière.

De plus, pour ne rien gâcher à l’affaire, le BIOS de cet APU est un CoreBoot open source et le schéma électronique de la carte est librement consultable ici (pdf).

Cependant, vous pouvez faire exactement la même chose avec n’importe quel PC ou mini PC équipé de 2 cartes réseau.

L’installation

Côté serveur VPN, j’ai déjà tout expliqué ici.

Côté passerelle VPN, mon APU14 ne dispose pas de connectique pour y brancher un écran. J’ai donc dû m’y connecter avec un cable série comme au bon vieux temps…

apu1

Ensuite j’ai installé TinyCore Linux sur une clé USB bootable comme expliquée ici. Puis j’ai placé une image de PfSense amd64 nanobsd sur la clé USB et j’ai copié cette image sur le SSD que j’ai installé dans l’APU avec la commande suivante :

gzip -dc pfSense-2.2.3-RELEASE-4g-amd64-nanobsd.img.gz | pv | dd of=/dev/sda bs=10M

apu2

Noté que cette image est spécifique pour le type d’hardware que j’ai chez moi, mais si vous faites la même manip sur un PC plus classique (avec au moins 2 interfaces réseau), Pfsense est aussi dispo sous la forme d’image Linux (+LiveCD) classique.

Une fois installé, PfSense démarre et il n’y a plus qu’à configurer les interfaces une par une via le port série puis à se connecter sur l’interface web avec son navigateur.

En ce qui me concerne, je me suis pas mal tiré les cheveux sur un bug, qui je pense est provoqué par ma box ADSL car j’ai eu le souci avec 3 routeurs différents sur des OS différents (PfSense, dd-wrt, openwrt). Quand je reboote mon routeur, celui-ci ne se connecte pas au net. Je suis obligé de le démarrer sans le brancher sur la box ADSL et une fois qu’il est bien démarré, je peux le connecter à la box et là ça fonctionne.

C’est un peu relou, mais je n’ai pas encore trouvé de solution.

Maintenant au niveau de PfSense, il y a des milliers d’options dedans. Je n’ai pas encore tout exploré, mais sachez que ça permet de remplir des fonctions de Firewall, de routeur, de faire du NAT, de la haute dispo, du multi-wan (pour coupler plusieurs connexions internet ensemble), du load balancing, du vpn (client et serveur en IPsec, OpenVPN, PPTP), du DNS, du portail captif, du DHCP et tout ce qui est monitoring et reporting. Bref, y’a de quoi jouer.

Une documentation en ligne est disponible ici et malheureusement, niveau bouquins en français, je n’ai rien trouvé. Il y a juste ces 2 livres en anglais.

Maintenant niveau config pour le VPN, c’est pas très compliqué. Il faut d’abord récupérer le fichier de config autologin d’OpenVPN.

ovpn

Ouvrez-le avec un éditeur de texte et dans PfSense, rendez-vous dans le menu System -> Cert Manager -> Onglet CA.

Et ajoutez un nouveau certificat (importing) et copiez collez la clé qui se trouve entre les balises <ca></ca> dans le champs « Certificate data ».

Sauvegardez puis rendez-vous dans l’onglet Certificates pour y ajouter la clé contenue dans les balises <cert></cert> dans le champ « Certificate data » et la clé contenue dans les balises <key></key> dans le champs « Private key data ».

ca2

Sauvegardez, puis rendez-vous dans le menu le menu VPN -> OpenVPN, onglet Client. Ajoutez alors un nouveau client en suivant cette config :

ber

Une fois que c’est fait, rendez-vous dans le menu Status -> OpenVPN et vous devriez voir que la connexion est « up ».

up

Si ce n’est pas le cas, vérifiez la config ou les certificats. Pour debugger plus facilement, je vous invite à faire, côté serveur, un :

tail -f /var/log/openvpnas.log

Et regarder les logs de connexion pour déterminer le problème.

Maintenant que PfSense sait se connecter à votre serveur OpenVPN, il faut mettre en place quelques règles au niveau du firewall pour lui dire de bien tout rediriger vers l’interface OpenVPN. Tout d’abord au niveau du NAT, on va le passer en NAT manuel. Allez dans Firewall -> NAT -> Outbound et sélectionnez « Manual Outbound NAT rule generation ».

outbound

Ensuitez, allez dans Firewall -> Rules et ajoutez une règle dans WAN comme ceci :

wan

Allez ensuite dans l’onglet LAN et ajoutez la règle suivante en prenant bien soin de spécifier la Gateway (passerelle) qui correspond à votre OpenVPN. Celle-ci indique tout simplement qu’il faut faire passer tout le trafic IPv4 (ou IPv6) via la passerelle qui correspond à votre VPN.

lan

gateway

Et voilà. Rebootez et logiquement, votre trafic réseau devrait maintenant transiter via votre serveur OpenVPN. Pour vérifier que c’est le cas, allez sur korben.info/ip. Vous devriez voir apparaitre votre IP de VPN.

N’oubliez pas que vos DNS peuvent aussi vous trahir Pensez donc à bien les internaliser ou mettez en place votre propre serveur DNS sur la même machine où se trouve votre serveur VPN. J’ai fait un tuto à ce sujet ici.

Bon et bien voilà… En connectant ce petit boitier au cul de votre box ADSL ou Fibre puis en connectant le reste de vos appareils sur ce boitier, vous êtes tranquille. Ils passeront tous par l’autre bout du monde, via un tunnel chiffré. Tranquille 🙂

Le sticker

Bon et bien voilà ! Il ne reste plus qu’à décorer votre boite avec le sticker qui va bien. J’avais demandé dans un édito où je pourrais trouver un truc rigolo à mettre dessus et un de mes lecteurs m’a envoyé ceci.

La classe non ?

caz

Après quelques semaines d’utilisation, je dois dire que je suis très satisfait de ce petit montage. Ça tourne sans bruit (forcement) et même si parfois, je me heurte à des limitations d’IP (genre du replay réservé à la France que je bypass en me connectant par rebond sur un second VPN localisé en France) et quelques ralentissements dus aux encombrements de tuyaux, je n’ai pas eu de souci avec PfSense en lui-même.

C’est un peu de boulot mais que voulez-vous, quand on aime ça… 😉

Amusez-vous bien !


Évadez-vous avec un livre audio

Votre premier livre audio gratuit

Pour vos déplacements, dans les transports ou parce que le soir vous avez une légère fatigue visuelle, mais vous ne voulez pas sacrifier votre plaisir de la lecture, Audible vous propose une large sélection de livres audio pour vous permettre de continuer à vous évadez.

Et avec les applis Audible pour iOS, Android et Windows, emportez vos livres audio n’importe où.

Choisissez le livre qui vous fera vibrer parmi notre sélection. Foncez, le premier livre audio est gratuit 😉

En Savoir +


Réponses notables

  1. Fnux says:

    Ça aurait été pas mal ici… Je passe une semaine en Chine pour le boulot. Google ? Nope. Twitter ? Nope. Facebook ? Nope. (etc). Tu vas me dire, au moins c’est radicale pour passer les mauvaises habitudes :stuck_out_tongue:

  2. C’est marrant j’ai justement fait ce genre de bricolage il y a tout juste un mois.

    J’ai utilisé une vrai tour avec 4 ports ethernet.
    J’ai trois réseaux:

    • WAN - Relié à une Freeboite en mode bridge.
    • LAN - (ordinateur, tablette, mobile etc…) Tout le trafic est redirigé vers le tunnel VPN.
    • DMZ - (mes serveurs sont dans ce réseau) Le réseau à pour passerelle le WAN comme si de rien était.

    Certains protocole on du mal à passer par le VPN. Du coup j’ai faire créé quelques règles pour que certains port passe obligatoirement par la passerelle WAN et pas celle du VPN.
    En faisant ca je peux toujours me connecter sur d’autre VPN avec mes périphériques pour pouvoir travailler sur d’autre réseau par exemple.

    PfSense est une super distribution. Si certaines personnes veulent aller plus loin dans l’utilisation de leur serveur il y a aussi Zentyal mais la ca commence à être lourd.

  3. Je trouve plus intéressant de rester sur du dd-wrt, mais évoluer simplement en routeur. Le WRT54-GL est effectivement vieux et ses vieilles perfs ralentissent le VPN à cause du cryptage.
    Asus propose un choix de routeurs Wifi dernière génération dédiés à dd-wrt http://www.asus.com/us/site/routers/DD-WRT/

    On achète un bon routeur et on le configure exactement pareil que le WRT-54GL, et on est reparti pour un moment !

  4. Yeahh c’est juste génial! Du coup est-ce que je peux imaginer louer un serveur VPN chez 1984 par exemple (Islande), configurer ce pont chez moi connecté à ma box, et relier tous mes appareils au pont VPN? Cela aurait l’avantage de pouvoir utiliser plusieurs appareils et n’avoir qu’une licence chez 1984 (et oui étant étudiant… =/ )

  5. Quand je lis “Pfsense est aussi dispo sous la forme d’image Linux” , je pense que Korben est redevenu un Noob et a emmêlé ses neurones …
    Pfsense c’est du FREEBSD et on devrait lire Image ISO ou Image disque …

  6. ou des routeurs mikrotik http://www.mikrotik.com/ !

    le seul souci, c’est que avec une box type free, tu peux pas faire de routage, donc tu es coincé si ton routeur est en dmz et que tu utilises le switch/routeur de ta box et si tu passes en bridge tu perds certaines fonctionnalités type wifi box…

    donc qui dit routeur dit Switch et/ou switch plus borne wifi…

  7. @eka808 : Non, ce que je veux dire, c’est que si tu te fais un VPN chez un hébergeur x ou y et que tu l’utilises pour partager du torrent et que cet hébergeur reçoit une plainte, il va te couper ton serveur.
    Cazeneuve lui peut pas le savoir (ou alors pas facilement)

  8. Effectivement. Merci du complément :slight_smile:

  9. Bonjour,

    N’y a t-il pas moyen de faire un montage similaire avec un NAS type un QNAP (pour le LAN, sans Wifi) ?
    Je demande ça par ce que le type de NAS sait faire client VPN, mais je ne sais pas s’il est possible de le “transformer” en routeur afin d’y faire transiter tout le trafic sortant du LAN.

    Sinon cela signifie quoi exactement “internaliser” son DNS ? C’est simplement monter son serveur DNS chez soi ou ça veut dire autre chose ?

    Merci

  10. madko says:

    Est-ce qu’on pourrait avoir un retour sur les perfs? genre un test de débit, et surtout un retour sur l’utilisation CPU? J’hésite à faire la même chose mais je trouve l’engin surdimensionné.

  11. Korben, bonjour tout d’abord. Je vous suis depuis un moment mais ceci est mon premier commentaire. J’avais une question, pour le VPN c’est une offre payante que vous avez pris auprès d’Open-VPN je me trompe ?

    Merci d’avance.

  12. Salut Korben,
    J’utilise Pfsense depuis plusieurs années. Très bonne distrib pour faire de la QoS avec plusieurs lignes internet.

    Le problème de reconnexion après perte de connectivité de la patte WAN avec son routeur bridgé ou son modem est connu sur les versions 2.1 et 2.2 … A ma connaissance pas corrigé. Pas testé sur la 2.3, mais d’après ce que tu racontes, le problème est toujours là…

    Ou alors tu n’utilises pas un modem ou un routeur bridgé??

    Toujours est-il que la version 2.0.3 n’a pas ce bug et reconnecte bien en cas de perte de connectivité ou de ligne ADSL. C’est la version que j’utlise en production.

    Par ailleurs, la fonction “captive portal” fonctionne bien sur la version 2.0.3, ce qui n’est pas non plus le cas sur la 2.2

    Pfsense c’est super mais à chaque nouvelle version, ils introduisent des bugs bien prise de tête. La seule version bien stable en production (parc de 400 machines + 13 points d’accès / relais wifi), c’est la 2.0.3

    ciao.

  13. Salut, j’ai décidé il y a peu de temps de me mettre à un VPN. J’ai furtivement essayé HideMyAss (60€ l’année me paraissait correct) mais j’ai vite désenchanté quand mon trafic descendant est passé de 90Mbits/s à 2Mbits/s. Du coup hors de question que je paye autant pour un débit si faible, j’ai demandé à leur service client d’annuler ma commande et ils ont été très réactifs.

    C’est alors que je suis venu voir ton blog pour vérifier si tu avais un VPN à conseiller. Du coup, après lecture de cet article j’ai essayé Freedome de F-Secure. Alors tout d’abord l’interface a le mérite d’être claire et simple et ensuite le débit est plus que correct : sur la plupart de mes tests je suis à 50Mbits/s. De plus, la période de 14 jours gratuits est très fortement appréciable et le système de ne pas avoir de compte mais une clé d’activation (valable 1, 3 ou 5 fois) est pas mal (sauf si vous ré-installez souvent votre machine … car vous perdrez une activation). Cependant, attention : ce VPN ne peut clairement pas fonctionner dans ton tuto … ni même sur Linux d’ailleurs ! En effet, vu qu’il n’y a pas d’identifiants, le système de connexion est géré uniquement par leur client (seulement disponible pour Windows, OS X, iOS et Android). J’étais un peu déçu de cette décision (vu que je comptais faire passer le trafic de mon routeur, ou au moins de mon NAS Synology, par mon VPN … mais bon je ferai sans).

    Donc voilà je comptais faire quelques précisions sur ce VPN qui pour le moment me satisfait pleinement. D’ailleurs si vous décider de vous prendre un abonnement chez eux, effectuez la période d’essai : ils proposent l’offre de 5 activations d’un pour le prix d’une (c’est à dire 40€ au lieu de 60€) à partir d’un certain moment.

    Ah et enfin, @Korben : où as-tu vu Snowden promouvoir ce VPN ? J’ai beau avoir retourné l’internet, je n’ai pas trouver un seul endroit où il vantait les mérite de celui-ci (ou d’un quelconque VPN d’ailleurs …). J’ai juste trouver ceci, mais c’est juste le directeur de F-Secure France qui faisait sa pub par rapport aux révélations de Snowden.

Continuer la discussion sur Korben Communauté

23 commentaires supplémentaires dans les réponses

Participants