{"id":2213,"date":"2016-12-26T16:15:22","date_gmt":"2016-12-26T14:15:22","guid":{"rendered":"http:\/\/stephane.weblog.starend.org\/?p=2213"},"modified":"2016-12-27T15:55:34","modified_gmt":"2016-12-27T13:55:34","slug":"script-vpn-en-vadrouille","status":"publish","type":"post","link":"http:\/\/stephane.weblog.starend.org\/?p=2213","title":{"rendered":"Script VPN en vadrouille"},"content":{"rendered":"<p style=\"text-align: justify;\">De balade de nouveau en Colombie.<\/p>\n<p style=\"text-align: justify;\">Cette ann\u00e9e, j&rsquo;ai refait mon script de connexion vers la maison. Il s&rsquo;agit de faire croire \u00e0 face de bouc et co que je suis toujours \u00e0 la maison pas qu&rsquo;ils me posent tout un tas de questions dont moi-m\u00eame ne suis pas s\u00fcr de pouvoir r\u00e9pondre&#8230;<\/p>\n<p style=\"text-align: justify;\">Tout est fait sous <a title=\"Linux Debian 8\" href=\"http:\/\/www.debian.org\/\" target=\"_blank\">Linux Debian<\/a> mais il est facile d&rsquo;adapter \u00e0 d&rsquo;autres distribution.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<h2 style=\"text-align: justify;\">C\u00f4t\u00e9 serveur<\/h2>\n<p style=\"text-align: justify;\">Pr\u00e9-requis, avoir une machine \u00e0 la maison qui \u00e9coute en SSH (port tcp\/22), c&rsquo;est le serveur. Et le routeur (box) de la maison doit rediriger les connexions SSH de l&rsquo;ext\u00e9rieur vers ce serveur.<br \/>\nCette machine doit permettre le routage et masquer les connexions qui passent par elle. Les commandes :<\/p>\n<ul>\n<li style=\"text-align: justify;\"><code>sysctl -w net.ipv4.ip_forward=1<\/code><\/li>\n<li style=\"text-align: justify;\"><code>iptables -t nat -A POSTROUTING -s 10.3.0.0\/24 -o eth0 -j MASQUERADE<\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Il faut autoriser les VPN dans le d\u00e9mon SSHD, ajouter dans <code>\/etc\/ssh\/sshd_config<\/code> :<br \/>\nPermitRootLogin yes<br \/>\nPermitTunnel yes<br \/>\nEt red\u00e9marrer le d\u00e9mon :<\/p>\n<ul>\n<li style=\"text-align: justify;\"><code>service ssh restart<\/code><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">C\u00f4t\u00e9 client<\/h2>\n<p style=\"text-align: justify;\">Sur mon poste utilisateur en Colombie, je cr\u00e9e dans <code>\/usr\/local\/bin\/tun2home.sh<\/code> le script :<\/p>\n<pre>#!\/bin\/bash\r\nID=$(id | cut -d '=' -f 2 | cut -d '(' -f 1)\r\necho $ID\r\n[ \"$ID\" != \"0\" ] &amp;&amp; sudo \/usr\/local\/bin\/tun2home.sh\r\n[ \"$ID\" != \"0\" ] &amp;&amp; return 2&gt;&amp;-\r\n[ \"$ID\" != \"0\" ] &amp;&amp; exit 2&gt;&amp;-\r\n# Verif cnx\r\n[ \"$(ip a | grep tun0)\" != \"\" ] &amp;&amp; echo \"Already running...\"\r\n[ \"$(ip a | grep tun0)\" != \"\" ] &amp;&amp; return 2&gt;&amp;-\r\n[ \"$(ip a | grep tun0)\" != \"\" ] &amp;&amp; exit 2&gt;&amp;-\r\n# cnx\r\nSERVER=\"1.2.3.4\"\r\nssh -p 443 -w0:0 root@$SERVER -f -- \\\r\n  ifconfig tun0 10.3.0.2 pointopoint 10.3.0.1\r\nifconfig tun0 10.3.0.1 pointopoint 10.3.0.2\r\n# routage\r\nOLDGATEWAY=$(ip r | grep default | head -1 | cut -d ' ' -f 3)\r\nroute add -host $SERVER gw $OLDGATEWAY\r\nroute del default\r\nroute add default gw 10.3.0.2\r\n# Modif DNS\r\nroute add -host 8.8.8.8 gw $OLDGATEWAY\r\necho \"nameserver 8.8.8.8\" &gt; \/etc\/resolv.conf<\/pre>\n<p style=\"text-align: justify;\">Remplacer l&rsquo;adresse IP <code>1.2.3.4<\/code> par l&rsquo;adresse de la maison&#8230;<\/p>\n<p style=\"text-align: justify;\">Rendre ex\u00e9cutable le script :<\/p>\n<ul>\n<li style=\"text-align: justify;\"><code>chmod 755 \/usr\/local\/bin\/tun2home.sh<\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Modifier SUDO pour permettre aux utilisateurs de lancer la connexion VPN. Cr\u00e9er le fichier <code>\/etc\/sudoers.d\/tun2home<\/code> :<br \/>\n<code>%users ALL=NOPASSWD: \/usr\/local\/bin\/tun2home.sh<\/code><\/p>\n<p style=\"text-align: justify;\">Maintenant, un utilisateur peut initier le VPN vers la maison avec la commande :<\/p>\n<ul>\n<li style=\"text-align: justify;\"><code>tun2home.sh<\/code><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Optimisations<\/h2>\n<p style=\"text-align: justify;\">Le serveur SSH sur son port tcp\/22 habituel est une cible r\u00e9guli\u00e8re d&rsquo;attaque sur Internet. Mais m\u00eame si il y a peu de chance que les attaques r\u00e9ussissent sur un serveur \u00e0 jour, il est toujours p\u00e9nible de voir \u00e7a dans les logs toute la journ\u00e9e.<br \/>\nLa solution, changer le port par d\u00e9faut et penser \u00e0 changer la redirection de port sur le routeur de la maison. \u00c9videmment, certains ports sont plus opportuns que d&rsquo;autres et un choix judicieux peut aider \u00e0 camoufler le VPN ou \u00e0 contourner les blocages de ports de certains op\u00e9rateurs locaux peu scrupuleux.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De balade de nouveau en Colombie. Cette ann\u00e9e, j&rsquo;ai refait mon script de connexion vers la maison. Il s&rsquo;agit de faire croire \u00e0 face de bouc et co que je suis toujours \u00e0 la maison pas qu&rsquo;ils me posent tout un tas de questions dont moi-m\u00eame ne suis pas s\u00fcr de pouvoir r\u00e9pondre&#8230; Tout est &hellip; <a href=\"http:\/\/stephane.weblog.starend.org\/?p=2213\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Script VPN en vadrouille<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40,43,10,11,28,430],"tags":[],"_links":{"self":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts\/2213"}],"collection":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2213"}],"version-history":[{"count":5,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts\/2213\/revisions"}],"predecessor-version":[{"id":2218,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=\/wp\/v2\/posts\/2213\/revisions\/2218"}],"wp:attachment":[{"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2213"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/stephane.weblog.starend.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}