tag:linuxfr.org,2005:/tags/openvpn/publicLinuxFr.org : les contenus étiquetés avec « openvpn »2022-08-11T22:10:20+02:00/favicon.pngtag:linuxfr.org,2005:Post/430622022-08-09T17:19:00+02:002022-08-09T17:21:50+02:00pfSense : site to site avec OpenVPN<p>Salut,</p>
<p>J'ai pfSense en frontal sur 2 sites (ma maison et mon infra perso OVH), et j'ai un tunnel OpenVPN entre les deux. Je galère à faire communiquer entre eux les différents clients des réseaux locaux. Je veux que tout le monde puisse accéder à tout le monde (client VPN, LAN maison, LAN infra).</p>
<p>Alors j'ai déjà tout tenté, mis des règles full-open-bar des deux côtés, déclaré des GW, des routes statiques… j'y arrive pô. Le serveur OpenVPN est sur OVH, je peux depuis mon réseau local maison accéder aux machines distantes OVH, mais pas l'inverse. Idem depuis un client (smartphone) sur le VPN : je peux accéder aux machines de l'infra, mais pas du LAN maison.</p>
<p>Est-ce que quelqu'un pourrait me dire de manière générale qu'est-ce que je dois faire de chaque côté, entre déclarer une route statique via GW distante, mettre du NAT (mais de quel réseau vers quel réseau) ? Sur le serveur OpenVPN, sur le client OpenVPN etc.</p>
<pre><code>Réseau local maison :
- 192.168.0.0/24
- pfSense 192.168.0.252
</code></pre>
<pre><code>Réseau OVH :
- 192.168.50.0/24
- pfSense 192.168.50.254
</code></pre>
<pre><code>OpenVPN :
- 192.168.5.0/24
- pfSense OVH (serveur) : 192.168.5.1
- pfSense Maison (client) : 192.168.5.2
</code></pre>
<p>Merci !</p>
<div><a href="https://linuxfr.org/forums/general-general/posts/pfsense-site-to-site-avec-openvpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128467/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-general/posts/pfsense-site-to-site-avec-openvpn#comments">ouvrir dans le navigateur</a>
</p>
gUIhttps://linuxfr.org/nodes/128467/comments.atomtag:linuxfr.org,2005:Bookmark/39892021-12-12T09:20:12+01:002021-12-12T09:20:12+01:00OpenVPN vs. WireGuard<a href="https://protonvpn.com/blog/openvpn-vs-wireguard/">https://protonvpn.com/blog/openvpn-vs-wireguard/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/126247/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/pamputt/liens/openvpn-vs-wireguard#comments">ouvrir dans le navigateur</a>
</p>
pamputthttps://linuxfr.org/nodes/126247/comments.atomtag:linuxfr.org,2005:Diary/398632021-07-24T16:21:23+02:002021-07-24T16:21:23+02:00Installation d'un réseau VPNLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Oyé, oyé, gentes dames, messires et autres damoiseaux !</p>
<p>Je m'en vais vous conter l'histoire de l'installation d'un réseau VPN pour un usage privé.</p>
<p>Je vous explique le topo, je dispose d'un réseau local centré autour d'un serveur Dell PowerEdge qui fait office de serveurs d'authentification, de mail et de fichiers (entre autres). Je suis régulièrement en déplacement et j'avais mis en place un service de webmail sur le serveur me permettant de consulter mes mails d'un mobile ou d'un portable connecté à mon mobile où que je sois. J'avais fait un journal il y a quelques temps à ce sujet qu'on trouvera <a href="//linuxfr.org/users/funix/journaux/creer-son-service-perso-de-messagerie-accessible-n-importe-ou-et-sur-n-importe-quelle-plateforme">ici</a>. <br>
En revanche pour consulter les fichiers sur mon serveur, j'utilise SSH en ligne de commande, ce n'est pas franchement convivial et intuitif, mais je m'en contentais jusqu'à présent.</p>
<p>Il se trouve que ma petite dernière entame des études à l'étranger et j'aimerais lui faciliter les choses pour qu'elle puisse accéder aux ressources du réseau local en toute transparence et simplicité. J'ai donc pensé à créer un tunnel VPN entre son Thinkpad sous linux/mageia et le réseau local familial.</p>
<p>On trouve beaucoup de tutoriels sur internet sur le sujet, mais quasiment tous présentent une configuration où tout le flux internet du client VPN se trouve redirigé vers le serveur via le tunnel VPN. L'accès internet se fait donc via le serveur avec la technique de l'<a href="http://www.pingouin-land.com/howto/IP-Masquerade-HOWTO.html">IP Masquerade</a>. C'est sûrement intéressant dans beaucoup de cas, notamment pour une utilisation professionnelle où on souhaite filtrer l'accès à internet (voire l'interdire), mais dans mon cas ça n'apporte rien du tout, car ça ralentit considérablement l'accès à internet sur le client. Je souhaite juste que le client accède aux ressources du réseau local privé et continue à accéder à internet via sa connexion habituelle.</p>
<p>Du coup je soumets à votre sagacité cette <a href="https://www.funix.org/fr/linux/index.php?ref=openvpn">page</a> où j'expose les principales étapes pour configurer le serveur et le client OpenVPN dans cette optique. C'est un sujet que je découvre avec peu de recul d'utilisation et je serais ravi si les experts (et les autres !) qui fréquentent linuxfr pouvaient me signaler les faiblesses de cette configuration et les pistes d'amélioration.</p>
<p>J'ai vu également que je pouvais maintenant accéder à mon VPN via mon mobile Android, je n'en ai pas franchement l'utilité, mais pour le fun, ça sera certainement une évolution future de cette page.</p>
<div><a href="https://linuxfr.org/users/funix/journaux/installation-d-un-reseau-vpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/124962/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/funix/journaux/installation-d-un-reseau-vpn#comments">ouvrir dans le navigateur</a>
</p>
Funixhttps://linuxfr.org/nodes/124962/comments.atomtag:linuxfr.org,2005:Post/417332020-12-29T22:09:06+01:002020-12-29T22:09:06+01:00redirection de port NAT à travers OpenVPN<p>Bonjour</p>
<p>Il y a 15 ans de ça j'étais au top sur iptables, mais 15 ans sans avoir besoin d'y bidouiller ont eu raison de mon neurone, alors : À L'AIDE ! ;-)</p>
<p>Je vous explique mon problème :<br>
J'ai un FAI qui fait du partage d'IP v4, et biensûr il est impossible d'ouvrir un port. Cependant, j'aimerai pouvoir me connecter sur mon raspbery PI qui est à la maison depuis mon téléphone, où que je me trouve.</p>
<p>Ma solution :<br>
Ayant un serveur hébergé en datacenter (disons eth0:213.36.253.176), j'ai donc mis en place un OpenVPN (j'ai essayé en TUN et en TAP) entre les deux machines (192.168.15.1 pour le serveur et 192.168.15.2 pour le RPI) et essayé de faire du NAT pour que le port 34080 du serveur arrive sur le port 80 du RPI.</p>
<p>Forcément, si je suis ici, c'est que ça ne fonctionne pas. OpenVPN c'est bon, ça marche, depuis le serveur j'arrive à me connecter au port 80 du RPI. Par contre, le NAT, à défaut de mémoire longue durée dans mon cerveau, j'ai suivi une dizaine de tutos et je n'arrive pas à mettre en place la redirection de port. J'ajoute mes règles, mais le port 34080 reste fermé sur le serveur.</p>
<p>Voilà une des solutions que j'ai essayées :</p>
<pre><code>echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 34080 -j DNAT --to-destination 192.168.15.2:80
iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
</code></pre>
<p>Note : je n'ai aucune règle iptables initialement : je part d'une situation propre pour ne pas avoir d'interférences.</p>
<p>Merci d'avance pour votre aide !</p>
<p>Thierry</p>
<div><a href="https://linuxfr.org/forums/linux-debutant/posts/redirection-de-port-nat-a-travers-openvpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/122767/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debutant/posts/redirection-de-port-nat-a-travers-openvpn#comments">ouvrir dans le navigateur</a>
</p>
Thxhttps://linuxfr.org/nodes/122767/comments.atomtag:linuxfr.org,2005:Post/405092019-10-03T13:52:09+02:002019-10-09T15:42:34+02:00[Résolu] Rediriger flux box internet vers un autre port d'un serveur maison<p>Bonjour,</p>
<p>Je cherche à mettre en place un petit réseau local accessible depuis l'extérieur, sécurisé et surtout qui marche :)</p>
<p>J'aimerais que mon serveur récupère le flux internet depuis ma box SFR, qu'il le "chiffre" via un VPN externe, que mon serveur renvoie ce flux sur mon routeur wifi qui dispatch alors ce flux "internet protégé" à mes clients : pc, téléphones …</p>
<p>J'ai fait un joli schéma ici et y a plus d'info => <a href="https://forum.ubuntu-fr.org/viewtopic.php?pid=22157539#p22157539">https://forum.ubuntu-fr.org/viewtopic.php?pid=22157539#p22157539</a></p>
<p><strong>Mes questions :</strong><br>
- la box SFR ne me fourni pas d'ip fixe : je vais devoir mettre en place un DynDNS via un nom de domaine externe pour accéder à mon serveur de dehors => on valide ?<br>
- comment rediriger le flux du port ETH0 vers ETH1 tout en le faisant d'abord chiffré par le VPN ?<br>
- diable, comment on fait ce "chiffrement VPN" => openVPN je veux bien, mais j'y comprends pas grand chose sad<br>
- mon serveur possède différent logiciel, le cas le plus flagrant étant ruTorrent => il faut qu'il récupère internet sur le flux protégé par le VPN et non la box, est-ce que ça le rend toutefois accessible depuis l'extérieur (via interface web) ?</p>
<p>Si vous pouvez m'aider ça serait trop cool parce là je bloque <sup>^</sup></p>
<p>Merci !</p>
<p><strong>EDIT : sujet résolu</strong></p>
<p>J'ai tenté plusieurs choses et je suis parvenu à un résultat :<br>
- premièrement il faut installer un DHCP pour attribuer au second port Ethernet une adresse IP locale<br>
- ça me donne une interface RJ45 enp4s0 qui est branché à ma box (internet) et une interface enp3s0 qui est branché à un switch (mon réseau)<br>
- ensuite j'ai installer mon VPN sur mon serveur. Quand il est lancé, il me créer un tunnel tun0.<br>
- il me faut donc faire un ip fowarding via iptables pour faire transiter tous les packet comme je veux<br>
- mon entrée est mon switch (enp3s0), ma sortie est internet (enp4s0) et mon middleware est mon vpn (tun0)<br>
- les régles sont trouvables facilement sur internet, mais en gros ça donne 4 règles à écrire<br>
-- 2 règles (écoute et envoi) allant de (-i) enp3s0 à (-o) tun0<br>
-- 2 règles (écoute et envoi) allant de (-i) enp3s0 à (-o) enp4s0</p>
<p>Cela me permet d'avoir internet si mon VPN est actif ou non, les flux passeront toujours vers vers mon switch.</p>
<div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/resolu-rediriger-flux-box-internet-vers-un-autre-port-d-un-serveur-maison.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/118252/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/resolu-rediriger-flux-box-internet-vers-un-autre-port-d-un-serveur-maison#comments">ouvrir dans le navigateur</a>
</p>
jibidevhttps://linuxfr.org/nodes/118252/comments.atomtag:linuxfr.org,2005:Post/395072018-09-19T22:03:41+02:002018-10-07T18:09:00+02:00Petit partage - Conky pour logs apache2, DNSChef, OpenVPN, HaProxy<p>Source de l'article (workflow) : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=99&t=817">Conky - Display logs files</a></p>
<p><em>Après avoir parcourus les tréfonds du Regex, avoir emboîté les briques du puzzle ancestrale du grand dieu Sed; notre héro au grand Shell vient nous partager ses créations infernales de la semaine.<br>
D'autres skins à venir, plus que probablement.<br>
Bon amusement !</em> 😉</p>
<h2 id="toc-les-conkys">Les Conkys</h2>
<h3 id="toc-conky-pour-afficher-les-logs-dapache2">Conky pour afficher les Logs d'Apache2</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f617061636865322f426c61636b2f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f617061636865322d426c61636b2e706e67/Screenshot_2018-09-19__conky_logs_apache2-Black.png" alt="Screenshot_2018-09-19__conky_logs_apache2-Black" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_apache2/Black/Screenshot_2018-09-19__conky_logs_apache2-Black.png"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f617061636865322f42656967652f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f617061636865322d42656967652e706e67/Screenshot_2018-09-19__conky_logs_apache2-Beige.png" alt="Screenshot_2018-09-19__conky_logs_apache2-Beige" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_apache2/Beige/Screenshot_2018-09-19__conky_logs_apache2-Beige.png"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f617061636865322f57686974652f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f617061636865322d57686974652e706e67/Screenshot_2018-09-19__conky_logs_apache2-White.png" alt="Screenshot_2018-09-19__conky_logs_apache2-White" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_apache2/White/Screenshot_2018-09-19__conky_logs_apache2-White.png"></p>
<p>Source Code : <a href="https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_apache2">https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_apache2</a><br>
Ce conky affiche les 15 dernières lignes d'un fichier log apache2 (par défaut <em>/tmp/remote_logs/access.log</em>) avec colorisation des différents éléments.<br>
Il affiche un petit /!\ lorsqu'un code http d'erreur est repéré. Le conky est aussi capable de détecter certains bot voir d'en reconnaître (entre autre actuellement Google, Yahoo et Qwant *1)</p>
<p>*1 j'ai voulu ajouter le bot de linuxfr, mais j'attends que son user agent soit bien établi/pérenne.</p>
<h3 id="toc-conky-pour-afficher-les-logs-de-dnschef">Conky pour afficher les Logs de DNSChef</h3>
<p>Source Code : <a href="https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_dnschef">https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_dnschef</a><br>
Ce conky affiche les 15 dernières lignes d'un fichier log de DNSChef (par défaut <em>/tmp/remote_logs/dnschef.log</em>) avec colorisation des différents éléments.<br>
Ce conky est beaucoup plus simple que son frangin ci-haut, dnschef ne transmettant en effet pas énormément d'informations dans ses logs.<br>
Petit rappel : par défaut dnschef ne log rien, il faut ajouter l'option à la commande de lancement pour qu'il log les infos. N'oubliez surtout pas de configurer <a href="https://www.digitalocean.com/community/tutorials/how-to-manage-logfiles-with-logrotate-on-ubuntu-16-04">logrotate</a> car ses logs grossissent très très vite.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f646e73636865662f53637265656e73686f745f323031382d30392d31375f636f6e6b792d646973706c61795f72656d6f74655f444e53436865665f6c6f67732e676966/Screenshot_2018-09-17_conky-display_remote_DNSChef_logs.gif" alt="Screenshot_2018-09-17_conky-display_remote_DNSChef_logs" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_dnschef/Screenshot_2018-09-17_conky-display_remote_DNSChef_logs.gif"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f646e73636865662f73656d692d426c61636b2f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f646e73636865662d73656d692d426c61636b2e6a7067/Screenshot_2018-09-19__conky_logs_dnschef-semi-Black.jpg" alt="Screenshot_2018-09-19__conky_logs_dnschef-semi-Black" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_dnschef/semi-Black/Screenshot_2018-09-19__conky_logs_dnschef-semi-Black.jpg"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f646e73636865662f4f72616e67652f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f646e73636865662d4f72616e67652e6a7067/Screenshot_2018-09-19__conky_logs_dnschef-Orange.jpg" alt="Screenshot_2018-09-19__conky_logs_dnschef-Orange" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_dnschef/Orange/Screenshot_2018-09-19__conky_logs_dnschef-Orange.jpg"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f646e73636865662f536b656c65746f6e2f53637265656e73686f745f323031382d30392d31395f5f636f6e6b795f6c6f67735f646e73636865662d536b656c65746f6e2e6a7067/Screenshot_2018-09-19__conky_logs_dnschef-Skeleton.jpg" alt="Screenshot_2018-09-19__conky_logs_dnschef-Skeleton" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_dnschef/Skeleton/Screenshot_2018-09-19__conky_logs_dnschef-Skeleton.jpg"></p>
<h3 id="toc-conky-pour-afficher-les-logs-de-haproxy">Conky pour afficher les Logs de HaProxy</h3>
<p>Source Code : <a href="https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_haproxy">https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_haproxy</a></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f766f7864656d6f6e69782f636f6e6b792f7261772f6d61737465722f636f6e6b795f6c6f67735f686170726f78792f42656967652f53637265656e73686f745f323031382d31302d30375f436f6e6b792d4c6f67732d486150726f78792d42656967652e706e67/Screenshot_2018-10-07_Conky-Logs-HaProxy-Beige.png" alt="Screenshot_2018-10-07_Conky-Logs-HaProxy-Beige" title="Source : https://gitlab.com/voxdemonix/conky/raw/master/conky_logs_haproxy/Beige/Screenshot_2018-10-07_Conky-Logs-HaProxy-Beige.png"></p>
<h3 id="toc-conky-pour-afficher-les-logs-de-openvpn">Conky pour afficher les Logs de OpenVPN</h3>
<p>Source Code : <a href="https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_openvpn">https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_openvpn</a></p>
<h3 id="toc-exporter-vos-derniers-logs-depuis-votre-serveur-">Exporter vos derniers logs depuis votre serveur :</h3>
<p><strong>Sur votre serveur où sont situés vos logs, générez des clés SSH.</strong></p>
<pre><code>( ssh-keygen -t ed25519 -o -a 666 ; ssh-keygen -t rsa -b 4096 -o -a 666 )
</code></pre>
<p><strong>Exportez votre clé publique depuis votre serveur où sont vos logs vers votre ordi perso.</strong></p>
<pre><code>ssh-copy-id -i ~/.ssh/id_ed25519.pub your_desktop_user@your_desktop_hostname_in_vpn
</code></pre>
<p><strong>Téléchargez <a href="https://gitlab.com/voxdemonix/divers-script/blob/master/exportLog_scp.bash">ce script</a>, rangez le où vous souhaitez et accordez dessus la permission d’exécution.</strong></p>
<pre><code>cd /opt/scripts
wget https://gitlab.com/voxdemonix/divers-script/raw/master/exportLog_scp.bash
chmod +x ./exportLog_scp.bash
</code></pre>
<p><strong>Éditez cron.</strong></p>
<pre><code>sudo crontab -e
</code></pre>
<p><strong>Choisissez votre taux de rafraîchissement favoris.</strong><br>
Note : le script copie les données dans un fichier dans /tmp/ avant de l'envoyer au desktop. Je vous conseil de passer par un dossier en mémoire ram (<a href="https://askubuntu.com/questions/173094/how-can-i-use-ram-storage-for-the-tmp-directory-and-how-to-set-a-maximum-amount">par exemple</a>).</p>
<pre><code> # each minute
* * * * * /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log
# each 15s ( use only on ram storage )
* * * * * /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log
* * * * * ( sleep 15 ; /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log )
* * * * * ( sleep 30 ; /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log )
* * * * * ( sleep 45 ; /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log )
# each 30s ( use only on ram storage )
* * * * * ( /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log ; sleep 30 ; /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log )
# each hour
@hourly ( /opt/scripts/exportLog_scp.bash myOwnDesktop.vpn your_desktop_user /var/log/dnschef/ dnschef.log )
</code></pre>
<h3 id="toc-farm-link">Farm Link</h3>
<ul>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=99&t=818">(quelques) regex pour conky</a></li>
</ul>
<p>N'hésitez pas à apporter votre pierre à l'édifice voir aussi partager le rendu que ça donne sur vos propres bureaux. 🙂 Si vous souhaitez que le conky colore quelque chose en plus, c'est le bon moment pour demander :)</p>
<div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/petit-partage-conky-pour-logs-apache2-dnschef-openvpn-haproxy.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115328/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/petit-partage-conky-pour-logs-apache2-dnschef-openvpn-haproxy#comments">ouvrir dans le navigateur</a>
</p>
voxdemonixhttps://linuxfr.org/nodes/115328/comments.atomtag:linuxfr.org,2005:Post/394892018-09-14T22:30:39+02:002018-09-14T22:30:39+02:00Configurer un serveur VPN<p>Bonjour,</p>
<p>J'aimerai configurer un VPN pour sécuriser ma connexion lorsque je suis en déplacement. J'ai essayé d'installer Wireguard sur mon Raspberry, mais ça n'a pas l'air de fonctionner: Sur raspbian Jessie, j'ai activé le dépôt Sid et configuré le pinning (comme dans la doc), le paquet Wireguard s'est installé, mais j'ai un message d'erreur lorsque je tente de créer l'interface wg0 (du genre opération non permise). Je pense que mélanger du Jessie et du Sid ne doit pas être une bonne idée… La solution Wireguard a l'air pas mal, mais c'est encore un peu expérimental.</p>
<p>Il y a d'autres solutions pour faire du VPN: OpenVPN, IPsec… J'ai l'impression qu'OpenVPN est déprécié, mais c'est intégré de base dans network-manager. Vous me conseillez plutôt quelle solution? Je suis tombé sur une doc strongSwan, qui apparemment permet de configurer IPsec, pensez-vous que c'est une bonne solution?</p>
<div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/configurer-un-serveur-vpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115280/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/configurer-un-serveur-vpn#comments">ouvrir dans le navigateur</a>
</p>
tedhttps://linuxfr.org/nodes/115280/comments.atomtag:linuxfr.org,2005:Post/390912018-03-16T23:20:18+01:002018-03-16T23:20:18+01:00VPN: interpréter la sortie de `route -n`<p>Je viens de configurer un VPN en important un fichier ovpn dans le network-manager de KDE. Je voudrais m'assurer que l'intégralité de mon traffic internet passe par ce VPN. <code>traceroute</code> me montre que je passe par le serveur VPN, <a href="https://wtfismyip.com">https://wtfismyip.com</a> aussi, mais j'aimerai comprendre la sortie de <code>route</code>. Or, j'ai du mal à l'interpréter.</p>
<p>VPN désactivé:</p>
<pre><code>$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
7: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.2.108/24 brd 192.168.2.255 scope global dynamic wlp2s0
valid_lft 1812894sec preferred_lft 1812894sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 600 0 0 wlp2s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0
192.168.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
</code></pre>
<p>VPN activé:</p>
<pre><code>$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
7: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.2.108/24 brd 192.168.2.255 scope global dynamic wlp2s0
valid_lft 1812741sec preferred_lft 1812741sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.7.7.66/24 brd 10.7.7.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::yyyy:yyyy:yyyy:yyyy/64 scope link flags 800
valid_lft forever preferred_lft forever
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.7.1 0.0.0.0 UG 50 0 0 tun0
0.0.0.0 192.168.2.1 0.0.0.0 UG 600 0 0 wlp2s0
10.7.7.0 0.0.0.0 255.255.255.0 U 50 0 0 tun0
[public IP] 192.168.2.1 255.255.255.255 UGH 600 0 0 wlp2s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0
192.168.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
192.168.2.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp2s0
</code></pre>
<p>Après activation du VPN il y a trois (G)ateways. C'est très certainement normal, mais je ne comprend pas pourquoi. Qu'est-ce qui indique dans cette table de routage que tout le traffic vers le LAN ne passe pas par le VPN, et tous le traffic vers internet passe le VPN ?</p>
<p>Merci beaucoup !</p><div><a href="https://linuxfr.org/forums/general-general/posts/vpn-interpreter-la-sortie-de-route-n.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113981/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-general/posts/vpn-interpreter-la-sortie-de-route-n#comments">ouvrir dans le navigateur</a>
</p>
Charles Flèchehttps://linuxfr.org/nodes/113981/comments.atomtag:linuxfr.org,2005:WikiPage/3322017-09-26T19:51:18+02:002020-01-06T16:54:41+01:00[Tuto] Se connecter à son OpenVPN depuis son LAN et WAN malgré routeur pas compatible hairpinning<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-introduction">Introduction</a></li>
<li><a href="#toc-mise-en-place-sur-le-client">Mise en place sur le client</a></li>
<li><a href="#toc-farm-link">Farm Link</a></li>
</ul>
<h2 id="toc-introduction">Introduction</h2>
<p>Pour une raison suspicieuse, les box des Fournisseurs d'Accès Internet (FAI) sont régulièrement incompatible avec le <a href="https://fr.wikipedia.org/wiki/Hairpinning">hairpinning</a>. Pour outrepasser ce problème, nous allons simplement dupliquer le fichier de conf (.ovpn) afin qu'un soit compatible avec le LAN et un avec internet (WAN). Ensuite nous lancerons un script au démarrage de la machine qui décidera quel fichier de conf (.ovpn) il faut lancer en fonction de si votre serveur est sur le même réseau ou non.<br>
Ce script est compatible avec les tunnels SSH (au choix en local ou en wan ou même les deux ou aucun). </p>
<h2 id="toc-mise-en-place-sur-le-client">Mise en place sur le client</h2>
<p><strong>Note :</strong> pour ce tuto je pars du principe que votre OpenVPN et le port ouvert sur le routeur du réseau du serveur (par défaut 1194).</p>
<ol>
<li><strong>Copiez le fichier de configuration de votre client OpenVPN, nous allons ajouter _LAN dans le titre du nouveau fichier</strong></li>
</ol>
<pre><code>sudo cp /etc/openvpn/monUser.ovpn cp /etc/openvpn/monUser_LAN.ovpn
</code></pre>
<ol>
<li><strong>Éditez la copie qui nous servira pour le LAN</strong></li>
</ol>
<pre><code>sudo nano /etc/openvpn/monUser_LAN.ovpn
</code></pre>
<ul>
<li><strong>A la ligne commençant par "<em>remote</em>", rajoutez _LAN dans le nom de domaine (ou remplacez le nom de domaine par l'IP LAN statique de votre serveur OpenVPN).</strong></li>
</ul>
<pre><code>remote www.server_LAN.com 1194
</code></pre>
<ol>
<li><strong>Ensuite éditez votre fichier <em>/etc/hosts</em> afin d'y indiquer la correspondance entre notre nouveau nom de domaine dédié au LAN et l'adresse IP du serveur OpenVPN.</strong></li>
</ol>
<pre><code>sudo nano /etc/hosts
</code></pre>
<ul>
<li><strong>Ajoutez une ligne du style</strong></li>
</ul>
<pre><code>192.168.1.42 www.server_LAN.com
</code></pre>
<ol>
<li><strong>Créez le script de lancement <em>/opt/scripts/vpnSwitcher.bash</em> (<em>CTRL+X</em> pour sauver & quitter)</strong></li>
</ol>
<pre><code>sudo nano /opt/scripts/vpnSwitcher.bash
</code></pre>
<ol>
<li><strong>Puis collez le script suivant et adaptez le à votre config</strong></li>
</ol>
<pre><code class="bash"><span class="ch">#!/bin/bash</span>
<span class="c1"># -- vpnSwitcher --</span>
<span class="c1"># -> WTFPL - infos script : https://gitlab.com/voxdemonix/divers-script/blob/master/vpnSwitcher.bash</span>
<span class="c1"># -> code by voxdemonix <-</span>
<span class="c1"># -> V1.11 (2017/09/11) <-</span>
<span class="c1"># uncomment next line for debug</span>
<span class="c1">#set -x</span>
<span class="k">if</span> <span class="o">[</span> ! <span class="s2">"</span><span class="nv">$SUDO_USER</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nb">echo</span> <span class="s2">"!!! i need root !!!"</span>
<span class="nb">exit</span> <span class="m">0</span>
<span class="k">fi</span>
<span class="c1">#SCRIPTS OPTIONS</span>
<span class="nv">LANG</span><span class="o">=</span><span class="s2">"fr"</span> <span class="c1"># notification service ; accept : fr, usa (default)</span>
<span class="nv">notificationType</span><span class="o">=</span><span class="s2">"notify"</span> <span class="c1"># accept : echo; notify, nothing. Notify not work with root user.</span>
<span class="c1"># NETWORK OPTIONS</span>
<span class="nv">INTERFACE</span><span class="o">=</span><span class="s2">"tun"</span>
<span class="nv">hostnameVpnLAN</span><span class="o">=</span><span class="s2">"192.168.1.69"</span> <span class="c1"># (VPN1 hostname) l'adresse IP locale (LAN) de votre serveur OpenVPN</span>
<span class="nv">MacVpnLocal</span><span class="o">=</span><span class="s2">"69:69:69:69:69:69"</span> <span class="c1">#l'adresse mac de votre serveur OpenVPN (tapez ifconfig dans un terminal sur votre server)</span>
<span class="c1"># VPN OPTIONS</span>
<span class="nv">fichierOvpnLAN</span><span class="o">=</span><span class="s2">"/etc/openvpn/myUser_LAN.ovpn"</span> <span class="c1"># (VPN1) le PATH de votre fichier de conf .ovpn en LAN</span>
<span class="nv">fichierOvpnNotLAN</span><span class="o">=</span><span class="s2">"/etc/openvpn/myUser.ovpn"</span> <span class="c1"># (VPN2) le PATH de votre fichier de conf .ovpn pour les connnexions WAN/SSH</span>
<span class="nv">openVpn1Param</span><span class="o">=</span><span class="s2">" "</span> <span class="c1"># add options (ex: --route-nopull) for openvpn connexion to server 1 (lan)</span>
<span class="nv">openVpn2Param</span><span class="o">=</span><span class="s2">" "</span> <span class="c1"># add options (ex: --route-nopull) for openvpn connexion to server 2 (ssh/tor/wan)</span>
<span class="c1"># SSH OPTIONS</span>
<span class="nv">hosnameVpnNotLAN</span><span class="o">=</span><span class="s2">"blablablablablabla.onion"</span> <span class="c1"># (VPN2 hostname)</span>
<span class="nv">UserLocalForSshTunneling</span><span class="o">=</span><span class="s2">"daenerys"</span> <span class="c1"># l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)</span>
<span class="nv">UserRemoteForSshTunneling</span><span class="o">=</span><span class="s2">"proxy-ssh"</span> <span class="c1"># l'user a utiliser côté server ( /!\ n'utilisez jamais root !)</span>
<span class="nv">portEntree</span><span class="o">=</span><span class="s2">"1194"</span> <span class="c1"># le port sur le pc local, par défaut 1194 (tcp)</span>
<span class="nv">portSortie</span><span class="o">=</span><span class="s2">"1194"</span> <span class="c1"># le port sur le serveur, par défaut 1194 (tcp)</span>
<span class="nv">sshLanEnable</span><span class="o">=</span><span class="m">0</span> <span class="c1"># 0 for disable ; 1 for enable : enable or disable the ssh tunneling in LAN</span>
<span class="nv">sshNotLanEnable</span><span class="o">=</span><span class="m">0</span> <span class="c1"># 0 for disable ; 1 for enable : enable or disable the ssh tunneling in Wan | Tor</span>
<span class="c1"># NOTIFICATION SYSTEM</span>
<span class="k">function</span> vpnNotification <span class="o">{</span>
<span class="c1"># $1 = message ID (watch switch/case);</span>
<span class="c1"># $2 = hostnameVPN</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">""</span>
<span class="c1">#hostnameVPN=$(cat "$2" | grep "remote " | sed 's/remote //g' | sed 's/ [[:digit:]]\+//g')</span>
<span class="nv">hostnameVPN</span><span class="o">=</span><span class="nv">$2</span>
<span class="k">case</span> <span class="nv">$LANG</span> in
fr <span class="o">)</span>
<span class="k">case</span> <span class="nv">$1</span> in
VpnDisabled <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"Connexion VPN fermée (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
VpnConnecting <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"Connexion VPN en cours (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
VpnEnabled <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"VPN Connecté ! (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
SshStop <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"Tunnel SSH STOP (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
SshStart <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"Tunnel SSH START (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
* <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"message inconnu"</span>
<span class="p">;;</span>
<span class="k">esac</span>
<span class="p">;;</span>
usa <span class="p">|</span> *<span class="o">)</span>
<span class="k">case</span> <span class="nv">$1</span> in
VpnDisabled <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"VPN Connection Close (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
VpnConnecting <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"VPN Connection in progress (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
VpnEnabled <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"VPN Connected ! (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
SshStop <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"SSH Tunneling STOP (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
SshStart <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"SSH Tunneling START (</span><span class="nv">$hostnameVPN</span><span class="s2">)"</span>
<span class="p">;;</span>
* <span class="o">)</span>
<span class="nv">message</span><span class="o">=</span><span class="s2">"unknow message"</span>
<span class="p">;;</span>
<span class="k">esac</span>
<span class="p">;;</span>
<span class="k">esac</span>
<span class="k">case</span> <span class="nv">$notificationType</span> in
<span class="nb">echo</span><span class="o">)</span>
<span class="nb">echo</span> <span class="s2">"</span><span class="nv">$message</span><span class="s2">"</span>
<span class="p">;;</span>
notify<span class="o">)</span>
notify-send <span class="s2">"</span><span class="nv">$message</span><span class="s2">"</span>
<span class="p">;;</span>
nothing <span class="p">|</span> *<span class="o">)</span>
<span class="p">;;</span>
<span class="k">esac</span>
<span class="o">}</span>
<span class="k">function</span> quitOpenVPN <span class="o">{</span>
<span class="c1"># $1 = ovpn ( $fichierOvpnLAN, $fichierOvpnNotLAN)</span>
<span class="c1"># $2 = hostnameVPN ( $hostnameVpnLAN, $hosnameVpnNotLAN)</span>
<span class="nv">ovpn</span><span class="o">=</span><span class="nv">$1</span>
<span class="nv">hostVPN</span><span class="o">=</span><span class="nv">$2</span>
<span class="c1">#stop VPN</span>
<span class="k">if</span> <span class="o">[</span> <span class="k">$(</span>pkill -c -f <span class="nv">$ovpn</span><span class="k">)</span> -gt <span class="m">0</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nv">hostnameVPN</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$ovpn</span> <span class="p">|</span> grep <span class="s2">"remote "</span> <span class="p">|</span> sed <span class="s1">'s/remote //g'</span> <span class="p">|</span> sed <span class="s1">'s/ [[:digit:]]\+//g'</span><span class="k">)</span>
vpnNotification <span class="s2">"VpnDisabled"</span> <span class="nv">$hostnameVPN</span>
<span class="k">fi</span>
<span class="c1">#stop ssh</span>
<span class="k">if</span> <span class="o">[</span> <span class="k">$(</span>pkill -c -f <span class="s2">"autossh.*</span><span class="nv">$UserRemoteForSshTunneling</span><span class="s2">@</span><span class="nv">$hostVPN</span><span class="s2">"</span><span class="k">)</span> -gt <span class="m">0</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
vpnNotification <span class="s2">"SshStop"</span> <span class="nv">$hostVPN</span>
<span class="k">fi</span>
sleep <span class="m">1</span>
<span class="o">}</span>
<span class="k">function</span> startOpenVPN <span class="o">{</span>
<span class="c1"># $1 = hostname VPN ($hostnameVpnLAN, $hosnameVpnNotLAN)</span>
<span class="c1"># $2 = ovpn ($fichierOvpnLAN, $fichierOvpnNotLAN)</span>
<span class="c1"># $3 = ssh enable (1) or not (0) ($sshLanEnable, $sshNotLanEnable)</span>
<span class="c1"># $4 = OpenVpn Param ($openVpn1Param, $openVpn2Param)</span>
<span class="nv">hostVPN</span><span class="o">=</span><span class="nv">$1</span>
<span class="nv">ovpn</span><span class="o">=</span><span class="nv">$2</span>
<span class="nv">sshChoice</span><span class="o">=</span><span class="nv">$3</span>
<span class="nv">openvpnParam</span><span class="o">=</span><span class="nv">$4</span>
<span class="c1"># SSH TUNNELING</span>
<span class="k">if</span> <span class="o">[</span> <span class="nv">$sshChoice</span> <span class="o">==</span> <span class="m">1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="c1"># kill oprevious ssh tunneling</span>
<span class="k">for</span> pid in <span class="sb">`</span>ps -ef <span class="p">|</span> grep <span class="s2">"[a]utossh"</span> <span class="p">|</span> grep <span class="s2">"</span><span class="nv">$hostVPN</span><span class="s2">"</span> <span class="p">|</span> awk <span class="s1">'{print $2}'</span><span class="sb">`</span> <span class="p">;</span> <span class="k">do</span> <span class="nb">kill</span> <span class="nv">$pid</span> <span class="p">;</span> <span class="k">done</span>
<span class="c1"># creat new ssh tunneling</span>
su <span class="nv">$UserLocalForSshTunneling</span> -c <span class="s2">"autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L </span><span class="nv">$portEntree</span><span class="s2">:127.0.0.1:</span><span class="nv">$portSortie</span><span class="s2"> </span><span class="nv">$UserRemoteForSshTunneling</span><span class="s2">@</span><span class="nv">$hostVPN</span><span class="s2"> -f"</span>
<span class="k">if</span> ps -aux <span class="p">|</span> grep <span class="s2">"[a]utossh"</span> <span class="p">|</span> grep <span class="s2">"</span><span class="nv">$hostVPN</span><span class="s2">"</span> <span class="p">|</span> grep -v <span class="s2">"grep"</span> >> /dev/null <span class="m">2</span>><span class="p">&</span><span class="m">1</span><span class="p">;</span> <span class="k">then</span>
vpnNotification <span class="s2">"SshStart"</span> <span class="nv">$hostVPN</span>
<span class="k">fi</span>
<span class="k">fi</span>
<span class="c1"># START OpenVPN</span>
openvpn --daemon <span class="nv">$openvpnParam</span> --config <span class="nv">$ovpn</span>
<span class="c1"># NOTIFICATIONS</span>
<span class="nv">hostnameVPN</span><span class="o">=</span><span class="k">$(</span>cat <span class="nv">$ovpn</span> <span class="p">|</span> grep <span class="s2">"remote "</span> <span class="p">|</span> sed <span class="s1">'s/remote //g'</span> <span class="p">|</span> sed <span class="s1">'s/ [[:digit:]]\+//g'</span><span class="k">)</span>
vpnNotification <span class="s2">"VpnConnecting"</span> <span class="nv">$hostnameVPN</span>
<span class="c1"># boucle qui permet de verifier si le VPN se connecte bien</span>
<span class="nv">stop</span><span class="o">=</span><span class="m">0</span>
<span class="k">while</span> <span class="o">[</span> <span class="nv">$stop</span> -lt <span class="m">10</span> <span class="o">]</span>
<span class="k">do</span> <span class="c1"># temps d'attente entre chaque tentative</span>
<span class="k">if</span> ifconfig <span class="p">|</span> grep -iq <span class="nv">$INTERFACE</span><span class="p">;</span> <span class="k">then</span>
vpnNotification <span class="s2">"VpnEnabled"</span> <span class="nv">$hostnameVPN</span>
<span class="nv">stop</span><span class="o">=</span><span class="m">10</span>
<span class="nb">exit</span>
<span class="k">fi</span>
sleep <span class="m">5</span>
<span class="nv">stop</span><span class="o">=</span><span class="k">$((</span>stop+1<span class="k">))</span>
<span class="k">done</span>
<span class="o">}</span>
<span class="c1"># boucle qui permet d'attendre que le réseau soit connecté</span>
<span class="nv">stop</span><span class="o">=</span><span class="s2">"0"</span>
<span class="k">while</span> <span class="o">[</span> <span class="nv">$stop</span> -lt <span class="m">1</span> <span class="o">]</span>
<span class="k">do</span>
sleep <span class="m">3</span> <span class="c1"># temps d'attente entre chaque tentative</span>
<span class="nv">_IP</span><span class="o">=</span><span class="k">$(</span>hostname -I<span class="k">)</span> <span class="o">||</span> <span class="nb">true</span>
<span class="k">if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$_IP</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nv">stop</span><span class="o">=</span><span class="m">1</span>
<span class="k">fi</span>
<span class="k">done</span>
<span class="k">if</span> ps -aux <span class="p">|</span> grep <span class="s2">"[o]penvpn"</span> >> /dev/null <span class="m">2</span>><span class="p">&</span><span class="m">1</span><span class="p">;</span> <span class="k">then</span>
<span class="c1">#Connexion VPN active</span>
<span class="c1"># vpn server 1</span>
quitOpenVPN <span class="nv">$fichierOvpnLAN</span> <span class="nv">$hostnameVpnLAN</span>
<span class="c1"># vpn server 2</span>
quitOpenVPN <span class="nv">$fichierOvpnNotLAN</span> <span class="nv">$hosnameVpnNotLAN</span>
<span class="k">else</span>
ping <span class="nv">$hostnameVpnLAN</span> -c <span class="m">2</span> >> /dev/null <span class="m">2</span>><span class="p">&</span><span class="m">1</span>
<span class="nv">macRecover</span><span class="o">=</span><span class="k">$(</span>arp -n <span class="p">|</span> grep -i -o <span class="nv">$MacVpnLocal</span><span class="k">)</span>
<span class="k">if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$macRecover</span><span class="s2">"</span> <span class="o">==</span> <span class="s2">"</span><span class="nv">$MacVpnLocal</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="c1"># echo "local/LAN/First VPN"</span>
startOpenVPN <span class="nv">$hostnameVpnLAN</span> <span class="nv">$fichierOvpnLAN</span> <span class="nv">$sshLanEnable</span> <span class="nv">$openVpn1Param</span>
<span class="k">else</span>
<span class="c1"># echo "tor/wan/second VPN"</span>
startOpenVPN <span class="nv">$hosnameVpnNotLAN</span> <span class="nv">$fichierOvpnNotLAN</span> <span class="nv">$sshNotLanEnable</span> <span class="nv">$openVpn2Param</span>
<span class="k">fi</span>
<span class="k">fi</span></code></pre>
<ul>
<li>
<p><strong>Éditez les valeurs suivantes</strong></p>
<ul>
<li>
<em><strong>hostnameVpnLAN="192.168.1.69"</strong></em> => (VPN1 hostname) l'adresse IP locale (LAN) de votre serveur OpenVPN</li>
<li>
<em><strong>MacVpnLocal="69:69:69:69:69:69"</strong></em> => l'adresse mac de votre serveur OpenVPN (tapez ifconfig dans un terminal sur votre server)</li>
<li>
<strong><em>fichierOvpnLAN="/etc/openvpn/myUser_LAN.ovpn"</em></strong> => (VPN1) le PATH de votre fichier de conf .ovpn en LAN</li>
<li>
<em><strong>fichierOvpnNotLAN="/etc/openvpn/myUser.ovpn"</strong></em> => (VPN2) le PATH de votre fichier de conf .ovpn pour les connnexions WAN/SSH</li>
</ul>
</li>
</ul>
<ol>
<li><strong>Sauvez et quittez avec <em>CTRL+X</em>, puis rendez votre fichier exécutable</strong></li>
</ol>
<pre><code>sudo chmod +x /opt/scripts/vpnSwitcher.bash
</code></pre>
<ol>
<li><strong>Lancez ensuite le script afin de le tester</strong></li>
</ol>
<pre><code>sudo /opt/scripts/vpnSwitcher.bash
</code></pre>
<p><strong>S'il fonctionne correctement, ajoutez le au démarrage du client soit via <em>/etc/rc.local</em> soit via cron</strong></p>
<pre><code>sudo crontab -e
</code></pre>
<ol>
<li><strong>Ajoutez enfin la ligne suivante (CTRL+X pour sauver et quitter)</strong></li>
</ol>
<pre><code>@reboot /opt/scripts/vpnSwitcher.bash
</code></pre>
<h2 id="toc-farm-link">Farm Link</h2>
<ul>
<li><a href="http://pjpxyxbxckp3hac6ogzwuqpwqrqex2emsn6b2fizn2hqqf5zhjoqi7ad.onion/doku.php?id=tutoriel_fr:tuto_howto_monter_un_serveur_openvpn_sur_odroid_ubuntu_minimal_avec_pivpn">[Tuto/HowTo] [GNU/Linux] Monter un serveur VPN sur Odroid (Ubuntu Minimal) avec PiVPN</a></li>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=589">[SOLUTION] Désactiver sur Ubuntu le passage de tout le trafic réseau par le VPN</a> (ndlr: lien mort, reposter backup article)</li>
<li><a href="//linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-acceder-a-son-vpn-depuis-le-reseau-tor-via-ssh-tunneling">[Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling</a></li>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=516">[Tuto/HowTo] Restreindre l'accès à un serveur en fonction du pays grâce à IPTables et GeoIP</a> (ndlr: lien mort reposter backup article)</li>
<li><a href="//linuxfr.org/wiki/outrepasser-les-problemes-de-hairpinning-boucle-local-sur-gnu-linux">Outrepasser les problèmes de hairpinning (boucle local) sur GNU/Linux</a></li>
<li><a href="http://pjpxyxbxckp3hac6ogzwuqpwqrqex2emsn6b2fizn2hqqf5zhjoqi7ad.onion/doku.php?id=tutoriel_fr:tuto_howto_debian_ubuntu_connecter_2_reseaux_openvpn">[FR] 📡 [Debian/Ubuntu] Connecter 2 réseaux OpenVPN</a></li>
</ul>
<div><a href="https://linuxfr.org/wiki/tuto-se-connecter-a-son-openvpn-depuis-son-lan-et-wan-malgre-routeur-pas-compatible-hairpinning.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112755/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/tuto-se-connecter-a-son-openvpn-depuis-son-lan-et-wan-malgre-routeur-pas-compatible-hairpinning#comments">ouvrir dans le navigateur</a>
</p>
TutoMakerhttps://linuxfr.org/nodes/112755/comments.atomtag:linuxfr.org,2005:Post/383262017-07-23T14:09:45+02:002017-07-23T14:09:45+02:00script lancement openvpn<p>Bonjour à tous,</p>
<p>J'ai un serveur openvpn. <br>
Actuellement pour m'y connecter depuis mon poste la commande </p>
<pre><code>sudo openvpn --config client1.ovpn
</code></pre>
<p>J'aimerai me mettre un bouton sous X pour lancer et couper la connexion,<br>
N'ayant pas trouvé un moyen de faire ca nativement sous ubuntu 14 (et sans réponse sur le forum) avec le fichier .ovpn, j'ai codé un petit script</p>
<pre><code>#!/bin/sh
OPENVPNCONFFILE="~/client1.ovpn";
if ifconfig | grep -iq tun; then
sudo pkill -SIGTERM -f 'openvpn'
notify-send "Connexion VPN fermé"
else
sudo openvpn --config ~/client1.ovpn
notify-send "Connexion VPN activé"
fi
</code></pre>
<p>Mais je rencontre deux souci<br>
- si je ne lance pas le script dans un terminal depuis le lanceur, il ne me demande pas le passe sudo et donc ne se connecte pas<br>
- si je le lance dans un terminal, dès que je ferme le terminal, la connexion se coupe</p>
<p>Enfin la notification de commande<br>
notify-send "Connexion VPN activé"<br>
ne s'affiche qu'a la déconnexion</p><div><a href="https://linuxfr.org/forums/programmation-shell/posts/script-lancement-openvpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112344/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/programmation-shell/posts/script-lancement-openvpn#comments">ouvrir dans le navigateur</a>
</p>
gotcha5832https://linuxfr.org/nodes/112344/comments.atomtag:linuxfr.org,2005:Post/383232017-07-22T15:41:34+02:002017-07-23T16:15:31+02:00Connecter deux réseaux OpenVPN<p>J'essaye de connecter deux serveurs OpenVPN afin que les clients des deux réseaux puissent se joindre.</p>
<p>Mes fichiers de configurations sont ceux créé par PiVPN et il me semble que les push route sont faux (si je retire --route-nopull j'arrive encore a joindre le LAN et l'intérieur du réseau VPN mais plus aucun accès à internet).</p>
<p>Donc sauriez-vous se qu'il faut indiquer dans les fichiers /etc/openvpn/server.conf afin que le routage entre les deux réseaux fonctionne et ce sans forcer les clients à faire passer tout leur trafic internet par les dits serveurs VPN?</p>
<p>Actuellement : <br>
serveur A est connecté (openvpn client) à serveur B<br>
serveur B est connecté (openvpn client) à serveur A<br>
chacun peut ping sans problème les clients du conjoint, mais aucun client ne peut les imiter</p>
<p>Voici le fichier de conf actuel de serveur B (10.8.5.1)</p>
<pre><code>dev tun
proto tcp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh4096.pem
topology subnet
server 10.8.5.0 255.255.255.0
# server and remote endpoints
ifconfig 10.8.5.1 10.8.5.2
# Add route to Client routing table for the OpenVPN Server
push "route 10.8.5.1 255.255.255.255"
push "route 10.8.6.1 255.255.255.255"
# Add route to Client routing table for the OPenVPN Subnet
push "route 10.8.5.0 255.255.255.0"
push "route 10.8.6.0 255.255.255.0 10.8.5.1"
# your local subnet
#push "route 0.0.0.0 "
# Set your primary domain name server address for clients
push "dhcp-option DNS 10.8.5.1"
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
#push "redirect-gateway def1"
client-to-client
duplicate-cn
keepalive 10 120
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
#crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
log /var/log/openvpn.log
verb 1
# Generated for use by PiVPN.io
</code></pre>
<p>note : aucune règle iptable ne perturbe ce labo</p><div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/connecter-deux-reseaux-openvpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112338/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/connecter-deux-reseaux-openvpn#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/112338/comments.atomtag:linuxfr.org,2005:Post/382922017-07-10T22:05:26+02:002017-07-10T22:05:26+02:00lier 2 daemon<p>Bonjour,<br><br>
Je souhaiterai démarrer un daemon seulement lorsqu'un autre daemon est lancé mais dans aussi arrêter si le premier daemon s'arrête.<br><br>
Existe-t-il un utilitaire non gui pour faire ca ?<br><br>
si non, quelle méthode me conseillez-vous ?<br>
1. créer mon démon qui lance les 2 programmes l'un après l'autre puis qui les surveilles.<br>
2. laisser le daemon "opensvn" en place et créer un démon qui gère l'autre programme en fnc de l'état de "opensvn".<br>
3. ou une autre solution.<br><br>
merci pour vos reponses</p><div><a href="https://linuxfr.org/forums/linux-general/posts/lier-2-daemon.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112275/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/lier-2-daemon#comments">ouvrir dans le navigateur</a>
</p>
AQkinkinhttps://linuxfr.org/nodes/112275/comments.atomtag:linuxfr.org,2005:Post/382902017-07-10T18:30:56+02:002017-07-10T18:30:56+02:00openvpn<p>Bonjour a touse</p>
<p>Je suis en train de me mettre un serveur openvpn sur ubuntu16 et m'y connecter sous ubuntu14</p>
<p>Pour cela je me suis pris un vps chez ovh en ubuntu16.<br>
J'ai suivi le tuto <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04">https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04</a><br>
pour la mise en place du serveur.</p>
<p>Mais une fois connecté je n'ai pas interet</p>
<pre><code>$ sudo openvpn --config client1.ovpn
Mon Jul 10 23:18:29 2017 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Jun 22 2017
Mon Jul 10 23:18:29 2017 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Mon Jul 10 23:18:29 2017 Control Channel Authentication: tls-auth using INLINE static key file
Mon Jul 10 23:18:29 2017 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Jul 10 23:18:29 2017 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Jul 10 23:18:29 2017 Socket Buffers: R=[212992->131072] S=[212992->131072]
Mon Jul 10 23:18:29 2017 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Mon Jul 10 23:18:29 2017 UDPv4 link local: [undef]
Mon Jul 10 23:18:29 2017 UDPv4 link remote: [AF_INET]XXX.XXX.XXX.XXX:1194
Mon Jul 10 23:18:29 2017 TLS: Initial packet from [AF_INET]XXX.XXX.XXX.XXX:1194, sid=223f4e17 93d78ad9
Mon Jul 10 23:18:29 2017 VERIFY OK: depth=1, […]
Mon Jul 10 23:18:29 2017 Validating certificate key usage
Mon Jul 10 23:18:29 2017 ++ Certificate has key usage 00a0, expects 00a0
Mon Jul 10 23:18:29 2017 VERIFY KU OK
Mon Jul 10 23:18:29 2017 Validating certificate extended key usage
Mon Jul 10 23:18:29 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Mon Jul 10 23:18:29 2017 VERIFY EKU OK
Mon Jul 10 23:18:29 2017 VERIFY OK: depth=0, […]
Mon Jul 10 23:18:32 2017 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mon Jul 10 23:18:32 2017 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Jul 10 23:18:32 2017 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mon Jul 10 23:18:32 2017 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Jul 10 23:18:32 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Mon Jul 10 23:18:32 2017 [server] Peer Connection Initiated with [AF_INET]149.202.51.159:1194
Mon Jul 10 23:18:34 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Mon Jul 10 23:18:34 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
Mon Jul 10 23:18:34 2017 OPTIONS IMPORT: timers and/or timeouts modified
Mon Jul 10 23:18:34 2017 OPTIONS IMPORT: --ifconfig/up options modified
Mon Jul 10 23:18:34 2017 OPTIONS IMPORT: route options modified
Mon Jul 10 23:18:34 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Mon Jul 10 23:18:34 2017 ROUTE_GATEWAY 10.10.10.254/255.255.255.0 IFACE=wlan0 HWADDR=00:XX:XX:XX:XX:XX
Mon Jul 10 23:18:34 2017 TUN/TAP device tun0 opened
Mon Jul 10 23:18:34 2017 TUN/TAP TX queue length set to 100
Mon Jul 10 23:18:34 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Jul 10 23:18:34 2017 /sbin/ip link set dev tun0 up mtu 1500
Mon Jul 10 23:18:34 2017 /sbin/ip addr add dev tun0 local 10.8.0.6 peer 10.8.0.5
Mon Jul 10 23:18:34 2017 /etc/openvpn/update-resolv-conf tun0 1500 1570 10.8.0.6 10.8.0.5 init
dhcp-option DNS 208.67.222.222
dhcp-option DNS 208.67.220.220
Mon Jul 10 23:18:34 2017 /sbin/ip route add 149.202.51.159/32 via 10.10.10.254
RTNETLINK answers: File exists
Mon Jul 10 23:18:34 2017 ERROR: Linux route add command failed: external program exited with error status: 2
Mon Jul 10 23:18:34 2017 /sbin/ip route add 0.0.0.0/1 via 10.8.0.5
Mon Jul 10 23:18:34 2017 /sbin/ip route add 128.0.0.0/1 via 10.8.0.5
Mon Jul 10 23:18:34 2017 /sbin/ip route add 10.8.0.1/32 via 10.8.0.5
Mon Jul 10 23:18:34 2017 GID set to nogroup
Mon Jul 10 23:18:34 2017 UID set to nobody
Mon Jul 10 23:18:34 2017 Initialization Sequence Completed
</code></pre>
<p>je ping sans soucis </p>
<pre><code>gotcha@prbook:~$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=214 ms
^C
--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 211.603/213.869/215.109/1.648 ms
</code></pre>
<p>Mais impossible de ping sur internet</p>
<pre><code>gotcha@prbook:~$ ping google.fr
PING google.fr (172.217.24.163) 56(84) bytes of data.
</code></pre>
<p>coté server /etc/sysctl.conf </p>
<pre><code>net.ipv4.ip_forward = 1
</code></pre>
<p>/etc/openvpn/server.conf :</p>
<pre><code>push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
</code></pre><div><a href="https://linuxfr.org/forums/linux-general/posts/openvpn-002088f9-d1ab-4483-b571-3a9da3393a04.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112273/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/openvpn-002088f9-d1ab-4483-b571-3a9da3393a04#comments">ouvrir dans le navigateur</a>
</p>
gotcha5832https://linuxfr.org/nodes/112273/comments.atomtag:linuxfr.org,2005:Post/381222017-05-09T00:19:15+02:002017-05-09T01:28:10+02:00[Tuto/HowTo] Accéder à son VPN depuis le réseau Tor via SSH Tunneling<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#introduction">Introduction</a></li>
<li>
<a href="#mise-en-place-sur-le-serveur-openvpn">Mise en place sur le Serveur OpenVPN</a><ul>
<li><a href="#changer-le-port-udp-dopenvpn-par-un-port-tcp">Changer le port UDP d'OpenVPN par un port TCP</a></li>
<li><a href="#installer-le-serveur-ssh-et-configurer-un-tor-hidden-service">Installer le serveur SSH et configurer un Tor Hidden Service</a></li>
<li><a href="#cr%C3%A9er-lutilisateur-d%C3%A9di%C3%A9-pour-recevoir-le-tunnel-ssh">Créer l'utilisateur dédié pour recevoir le tunnel SSH</a></li>
</ul>
</li>
<li>
<a href="#mise-en-place-sur-le-client">Mise en place sur le Client</a><ul>
<li><a href="#monter-un-tunnel-ssh-cross-canal-au-d%C3%A9marrage-puis-lancer-openvpn">Monter un tunnel SSH cross canal au démarrage puis lancer openvpn</a></li>
<li><a href="#ajouter-127001-comme-ip-%C3%A0-lhostname-de-votre-serveur-vpn-dans-le-fichier-etchosts">Ajouter 127.0.0.1 comme IP à l'hostname de votre serveur VPN dans le fichier <em>/etc/hosts</em></a></li>
</ul>
</li>
<li><a href="#farm-link">Farm Link</a></li>
</ul><p><strong>musique d'entrain :</strong> <a href="https://www.youtube.com/watch?v=uVEbbE2EB1Q">DJ Antoine - Sky Is The Limit | Mix #1</a><br><strong>Ce tutoriel fonctionne sur :</strong> <a href="https://fr.wikipedia.org/wiki/Ubuntu">Ubuntu</a>, <a href="https://fr.wikipedia.org/wiki/Debian">Debian</a>, <a href="https://fr.wikipedia.org/wiki/Raspbian">Raspbian</a>.</p>
<h2 id="introduction">Introduction</h2>
<ul>
<li>L'objectif de ce tutoriel est de pouvoir joindre un <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9_virtuel">VPN</a> pas forcément accessible depuis le net.</li>
<li>Lorsque le serveur se trouvera sur le même réseau <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_local">LAN</a> que le client, alors un <a href="https://korben.info/wiki/tunnel_ssh#qu%27est-ce_qu%27un_tunnel_ssh%C2%A0?">tunnel SSH</a> sera établi en <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_local">LAN</a>.</li>
<li>Lorsque le serveur ne se trouvera pas sur le même <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_local">LAN</a> que le client, alors un <a href="https://korben.info/wiki/tunnel_ssh#qu%27est-ce_qu%27un_tunnel_ssh%C2%A0?">tunnel SSH</a> sera établi à travers <a href="https://fr.wikipedia.org/wiki/Tor_%28r%C3%A9seau%29">Tor</a>.</li>
<li>Les communications entre le serveur VPN et le client seront encapsulées dans le tunnel de données SSH.</li>
<li>Pour ce faire nous allons :</li>
<li>
<p><strong>Sur le serveur</strong></p>
<ul>
<li>Changer le protocole utilisé par défaut par le serveur OpenVPN, le port UDP 1194 que nous allons remplacer par TCP 1194.</li>
<li>Ensuite nous allons <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=40&t=340">créer un utilisateur dédié pour le tunneling SSH</a>.</li>
<li>Installer <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=45&t=159">openssh-server et rendre ce dernier accessible via Tor Hidden Service</a>.</li>
</ul>
</li>
<li>
<p><strong>Sur le client</strong></p>
<ul>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=40&t=369">Monter un tunnel SSH cross canal</a> au démarrage et lancer juste après le client openvpn</li>
</ul>
</li>
</ul><h2 id="mise-en-place-sur-le-serveur-openvpn">Mise en place sur le Serveur OpenVPN</h2>
<h3 id="changer-le-port-udp-dopenvpn-par-un-port-tcp">Changer le port UDP d'OpenVPN par un port TCP</h3>
<p><strong>Note :</strong> si vous vous interrogez sur le pourquoi il faut changer de protocole, c'est car Tor ne supporte pas l'UDP. </p>
<ol>
<li><strong>Éditez le fichier <em>/etc/openvpn/server.conf</em></strong></li>
</ol><pre><code>sudo nano /etc/openvpn/server.conf
</code></pre>
<ol>
<li><p><strong>Remplacez <em>proto udp</em> par <em>proto tcp</em></strong></p></li>
<li><p><strong>Recommencez l'opération pour tout vos fichiers de configurations clients</strong><br><strong>sur PiVPN éditez les fichiers dans <em>/home/pivpn/ovpns/</em>, voici une ligne de commande qui le fait pour vous :</strong></p></li>
</ol><pre><code>sudo sed -i -- 's/proto udp/proto tcp/g' /home/pivpn/ovpns/*.ovpn
</code></pre>
<p>Adaptez éventuellement l'utilisateur pivpn par celui que vous avez utilisé. Pensez à répéter l'opération sur les machines clientes où vous avez déjà exporté les fichiers de configurations client d'openvpn (.ovpn).</p>
<h3 id="installer-le-serveur-ssh-et-configurer-un-tor-hidden-service">Installer le serveur SSH et configurer un Tor Hidden Service</h3>
<p><strong>Note :</strong> lancez chaque commande à la fois, ne faites pas un copié-collé du tout ;) </p>
<pre><code>sudo su
apt-get install tor openssh-server -y
mkdir -p /var/lib/tor/hidden_service/ssh
echo "HiddenServiceDir /var/lib/tor/hidden_service/ssh" >> /etc/tor/torrc
echo "HiddenServicePort 22 127.0.0.1:22" >> /etc/tor/torrc
chown debian-tor:root -R /var/lib/tor/hidden_service/
chmod 700 -R /var/lib/tor/hidden_service/
service tor restart
cat /var/lib/tor/hidden_service/ssh/hostname
</code></pre>
<ul>
<li><strong>Pensez à conserver le retour de la dernière commande (vous affichant l'adresse.onion) car elle vous sera utile pour l'installation du client.</strong></li>
</ul><h3 id="créer-lutilisateur-dédié-pour-recevoir-le-tunnel-ssh">Créer l'utilisateur dédié pour recevoir le tunnel SSH</h3>
<ol>
<li>*<em>Créez votre utilisateur dédié *</em>
</li>
</ol><pre><code>sudo adduser proxy-ssh
</code></pre>
<ol>
<li>*<em>Générez les clés de sécurité de l'user *</em>
</li>
</ol><pre><code>su proxy-ssh
ssh-keygen -t ed25519 -o -a 666
ssh-keygen -t rsa -b 4096 -o -a 666
exit
</code></pre>
<ul>
<li>
<strong>proxy-ssh</strong> : le pseudo de votre utilisateur sur le serveur</li>
<li>
<strong>-o -a 666</strong> : permet de faire boucler l’algorithme 666 fois</li>
<li>
<strong>-b 4096</strong> : précise qu'on veut une clés a 4096 bits</li>
<li>
<strong>-t rsa</strong> : on utilise l’algorithme RSA</li>
<li>
<strong>-t ed25519</strong> : on utilise l'algorithme EdDSA</li>
</ul><ol>
<li><strong>Éditez <em>/etc/ssh/sshd/config</em></strong></li>
</ol><pre><code>sudo nano /etc/ssh/sshd_config
</code></pre>
<ol>
<li><strong>Ajoutez les lignes suivantes en adaptant à vos besoins</strong></li>
</ol><pre><code>Match user proxy-ssh
PermitOpen 127.0.0.1:*
</code></pre>
<p><strong><em>proxy-ssh</em></strong> votre utilisateur dédié</p>
<ol>
<li><strong>Redémarrez le serveur SSH</strong></li>
</ol><pre><code>sudo service ssh restart
</code></pre>
<h2 id="mise-en-place-sur-le-client">Mise en place sur le Client</h2>
<h3 id="monter-un-tunnel-ssh-cross-canal-au-démarrage-puis-lancer-openvpn">Monter un tunnel SSH cross canal au démarrage puis lancer openvpn</h3>
<ol>
<li>*<em>Installez les pré-requis *</em>
</li>
</ol><pre><code>sudo apt-get install openssh-client autossh tor openvpn
</code></pre>
<ol>
<li><p><strong>Téléchargez sur votre client le fichier de configuration (.ovpn) et placez le dans <em>/etc/openvpn/</em></strong></p></li>
<li><p><strong>Rendez compatible le client ssh avec le réseau Tor</strong></p></li>
</ol><pre><code>sudo nano /etc/ssh/ssh_config
</code></pre>
<ol>
<li><strong>Et ajoutez ces lignes</strong></li>
</ol><pre><code> Host *.onion
ProxyCommand nc -xlocalhost:9050 -X5 %h %p
</code></pre>
<ol>
<li><strong>Exportez votre clés sur votre serveur</strong></li>
</ol><pre><code>ssh-copy-id -i ~/.ssh/id_rsa.pub proxy-ssh@adresseServerSSH
</code></pre>
<ol>
<li><strong>Créez le dossier <em>/opt/scripts</em></strong></li>
</ol><pre><code>sudo mkdir /opt/scripts
</code></pre>
<ol>
<li><strong>Créez le script</strong></li>
</ol><pre><code>sudo nano /opt/scripts/startSshTunnelingAndVPN.sh
</code></pre>
<ol>
<li><strong>Ajoutez le code suivant en l'adaptant</strong></li>
</ol><pre><code>#!/bin/bash
# -> WTFPL - infos script : https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=587&p=1252#p1253
# -> code by voxdemonix <-
# -> V1.3 <-
#su monUser -c 'autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 8080:127.0.0.1:80 proxy-ssh@torOrWanadress.onion -f'
if [ ! "$SUDO_USER" ]; then
echo "!!! i need root !!!"
exit 0
fi
IpVpnLocale="192.168.1.42" # l'adresse IP locale de votre serveur VPN/SSH
AdresseServerOnion="torOrWanadress.onion"
MacVpnLocal="00:00:00:00:00:00" # l'adresse mac du serveur VPN/SSH (tapez ifconfig dans un terminal sur votre server pour la voir)
UserLocalForSshTunneling="myLocalUser" # l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)
UserRemoteForSshTunneling="proxy-ssh" # l'user a utiliser côté server ( /!\ n'utilisez jamais root !)
portEntree="1194" # le port sur le pc local, par défaut 1194
portSortie="1194" # le port sur le serveur, par défaut 1194
fichierOVPN="myUser.ovpn" # le nom de votre fichier de configuration .ovnp
# boucle qui permet d'attendre que le réseau soit connecté
stop="0"
while [ $stop -lt 1 ]
do
sleep 120 # temps d'attente entre chaque tentative
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
#printf "My IP address is %s\n" "$_IP"
stop=1
fi
done
ping $IpVpnLocale -c 2 >> /dev/null 2>&1
macRecover=$(arp -n | grep -i -o $MacVpnLocal)
if [ "$macRecover" == "$MacVpnLocal" ]; then
# echo "local"
su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$IpVpnLocale -f"
else
# echo "tor/wan"
su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$AdresseServerOnion -f"
fi
sleep 10
# sur Ubuntu et Raspbian ajoutez --route-nopull à la commande suivante si vous ne voulez pas forcer le trafic à passer par le VPN
openvpn --daemon --cd /etc/openvpn --config $fichierOVPN
</code></pre>
<ul>
<li>
<strong>IpVpnLocale="192.168.1.42"</strong> => l'adresse IP locale de votre serveur VPN/SSH</li>
<li>
<strong>AdresseServerOnion="monTorHiddenService.onion"</strong> l'hostname WAN ou l'adresse Tor Hidden Service au choix</li>
<li>
<strong>MacVpnLocal="00:00:00:00:00:00"</strong> => l'adresse mac du serveur VPN/SSH (tapez ifconfig dans un terminal sur votre server pour la voir)</li>
<li>
<strong>UserLocalForSshTunneling="myUserLocal"</strong> => l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)</li>
<li>
<strong>UserRemoteForSshTunneling="myUserServer"</strong> => l'user a utiliser côté serveur ( /!\ n'utilisez <strong>jamais</strong> root !)</li>
<li>
<strong>portEntree="1194"</strong> => le port sur le pc local, par défaut 1194</li>
<li>
<strong>portSortie="1194"</strong> => le port sur le serveur, par défaut 1194</li>
<li>
<strong>fichierOVPN="myUser.ovpn"</strong> => le nom de votre fichier de configuration pour le client openvpn (il doit obligatoirement se trouver dans <em>/etc/openvpn/</em>)</li>
</ul><ol>
<li><strong>Rendez exécutable le script</strong></li>
</ol><pre><code>sudo chmod +x /opt/scripts/*
</code></pre>
<ol>
<li><strong>Ajoutez le lancement du script au boot en éditant <em>/etc/rc.local</em></strong></li>
</ol><pre><code>sudo nano /etc/rc.local
</code></pre>
<ol>
<li><strong>Ajoutez la ligne suivante juste avant <em>exit 0</em></strong></li>
</ol><pre><code>sudo /opt/scripts/startSshTunnelingAndVPN.sh
</code></pre>
<h3 id="ajouter-127001-comme-ip-à-lhostname-de-votre-serveur-vpn-dans-le-fichier-etchosts">Ajouter 127.0.0.1 comme IP à l'hostname de votre serveur VPN dans le fichier <em>/etc/hosts</em>
</h3>
<ol>
<li><strong>Éditez votre fichier <em>/etc/hosts</em></strong></li>
</ol><pre><code>sudo nano /etc/hosts
</code></pre>
<ol>
<li><strong>Ajoutez dedans la ligne suivante en l'adaptant</strong></li>
</ol><pre><code>127.0.0.1 hostnameDeVotreVPN
</code></pre>
<h2 id="farm-link">Farm Link</h2>
<ul>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=578">[Tuto/HowTo] [GNU/Linux] Créer un serveur VPN avec Yunohost</a></li>
<li><a href="//linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-monter-un-serveur-vpn-avec-pivpn">[Tuto/HowTo] [GNU/Linux] Monter un serveur VPN sur Raspberry Pi (Raspbian) avec PiVPN</a></li>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=576">[Tuto/howTo] [GNU/Linux] Connecter OpenVPN au démarrage</a></li>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=588">[Tuto/HowTo] [GNU/Linux] mettre en place un ou plusieurs Tunnels SSH</a></li>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=40&t=369">[Tuto/HowTo] [GNU/Linux] Sécuriser utilisateur dédié pour Proxy/Tunneling SSH</a></li>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=40&t=340">[Tuto/HowTo] Garder un contrôle discret sur son serveur avec tor et ssh</a></li>
<li><a href="//linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-monter-un-serveur-vpn-avec-pivpn">LinuxFR - [Tuto/HowTo] Monter un serveur VPN avec PiVPN</a></li>
<li><a href="https://korben.info/wiki/tunnel_ssh">Korben - Tunnel SSH</a></li>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=590">[Tuto/HowTo] [GNU/Linux] How to connect to OpenVPN over Tor via SSH Tunneling</a></li>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=587">[Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling</a> (tutoriel d'origine)</li>
</ul><div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-acceder-a-son-vpn-depuis-le-reseau-tor-via-ssh-tunneling.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/111851/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-acceder-a-son-vpn-depuis-le-reseau-tor-via-ssh-tunneling#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/111851/comments.atomtag:linuxfr.org,2005:Post/381192017-05-06T15:48:40+02:002017-05-07T17:50:22+02:00[Tuto/HowTo] Fixer ip des clients sur openvpn<h2 id="mise-en-place">Mise en place</h2>
<ol>
<li><strong>Créez le dossier où ranger les configuration pour les clients</strong></li>
</ol><pre><code>sudo mkdir -p /etc/openvpn/ccd
</code></pre>
<ol>
<li><strong>Éditez <em>/etc/openvpn/server.conf</em></strong></li>
</ol><pre><code>sudo nano /etc/openvpn/server.conf
</code></pre>
<ol>
<li><strong>Et ajoutez dedans</strong></li>
</ol><pre><code>client-config-dir /etc/openvpn/ccd
</code></pre>
<ol>
<li><strong>Si vous voulez empêcher un client n'ayant pas de fichier de config de se connecter au VPN, ajoutez aussi, à la ligne le paramètre suivant</strong></li>
</ol><pre><code>ccd-exclusive
</code></pre>
<ol>
<li><strong>Créez un fichier par utilisateur et donnez leur le nom de chaque utilisateur</strong></li>
</ol><pre><code>sudo nano /etc/openvpn/ccd/monClient
</code></pre>
<ol>
<li><strong>Ajoutez dedans ifconfig-push suivit de l'adresse IP que vous souhaitez attribuer au client puis le masque de sous réseau</strong></li>
</ol><pre><code>ifconfig-push 10.8.0.42 255.255.255.0
</code></pre>
<ul>
<li>
<strong><em>10.8.0.42</em></strong> => l'adresse IP que vous souhaitez attribuer à votre client à l'intérieur du VPN. Ici on demande au serveur d'attribuer l'adresse 10.8.0.42</li>
<li>
<em><strong>255.255.255.0</strong></em> => Le masque de <a href="https://fr.wikipedia.org/wiki/Sous-r%C3%A9seau">sous réseau</a> (laissez 255.255.255.0)</li>
</ul><ol>
<li><strong>Accordez les permissions aux dossier et fichiers précédemment créés afin que l'utilisateur faisant tourner openvpn (<a href="https://fr.wikipedia.org/wiki/Nobody_%28informatique%29">nobody</a>) puisse y accéder</strong></li>
</ol><pre><code>sudo chown nobody:nogroup -R /etc/openvpn/ccd
sudo chmod 770 -R /etc/openvpn/ccd
</code></pre>
<ol>
<li><strong>Redémarrez OpenVPN ou la machine au choix.</strong></li>
</ol><pre><code>sudo service openvpn restart
</code></pre>
<h3 id="farm-link">Farm Link</h3>
<ul>
<li><a href="https://15minutesoffame.be/nico/blog2/index.php?article21/configuration-openvpn-ip-statiques-et-redirection-de-ports">Configuration OpenVPN : IP statiques et redirection de ports</a></li>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=576&p=1237#p1237">[Tuto/HowTo] [GNU/Linux] Fixer ip des client sur openvpn</a> (tutoriel d'origine)</li>
<li><a href="//linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-monter-un-serveur-vpn-avec-pivpn">[Tuto/HowTo] Monter un serveur VPN avec PiVPN</a></li>
</ul><div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-fixer-ip-des-clients-sur-openvpn.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/111838/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/tuto-howto-fixer-ip-des-clients-sur-openvpn#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/111838/comments.atom