{"id":700,"date":"2016-12-06T15:44:42","date_gmt":"2016-12-06T13:44:42","guid":{"rendered":"http:\/\/www.memoiresecondaire.fr\/?p=700"},"modified":"2016-12-06T15:56:27","modified_gmt":"2016-12-06T13:56:27","slug":"passerelle-sshfssamba","status":"publish","type":"post","link":"https:\/\/www.memoiresecondaire.fr\/?p=700","title":{"rendered":"Passerelle SSHFS\/Samba"},"content":{"rendered":"<p><em>Attention, article velu pour barbu linuxien. Si tu comprends pas, alors ce n&rsquo;est probablement pas pour toi :). Cet article est plus une r\u00e9f\u00e9rence pour moi-m\u00eame, mais si \u00e7a peut en aider d&rsquo;autres, c&rsquo;est tout bon.<\/em><\/p>\n<hr \/>\n<p>J&rsquo;ai actuellement un serveur de stockage h\u00e9berg\u00e9 chez OVH sur lequel j&rsquo;effectue r\u00e9guli\u00e8rement des sauvegardes et qui me sers un peu \u00e0 tout. Une sorte de box \u00e0 tout faire informatique. Je partage quelques fichiers \u00e0 l&rsquo;aide nextcloud, je downloade un peu tavu, j&rsquo;ai divers sites dont ce blog et pour acc\u00e9der aux fichiers j&rsquo;ai plusieurs possibilit\u00e9s (FTP, WebDav etc). Ma pr\u00e9f\u00e9r\u00e9e est d&rsquo;utiliser FUSE pour monter en local le partage de fichier distant SFTP.<br \/>\nOr, si cela fonctionne bien avec un client Linux via SSHFS, c&rsquo;est bien plus difficile sous Windows.<br \/>\nJ&rsquo;ai essay\u00e9 <a href=\"https:\/\/code.google.com\/archive\/p\/win-sshfs\/\" target=\"_blank\">Dokan\/Win-SSHFS<\/a>, sans vraiment \u00eatre convaincu, d&rsquo;autant plus que le code n&rsquo;est plus maintenu, et quelques autres solutions dont aucune ne m&rsquo;a donn\u00e9 satisfaction.<br \/>\nJe me suis donc lanc\u00e9 dans la cr\u00e9ation d&rsquo;une passerelle Linux\/Windows de partage de fichier.<\/p>\n<p>J&rsquo;ai commenc\u00e9 \u00e0 l&rsquo;aide d&rsquo;un RaspberyPi sous Raspbian branch\u00e9 en permanence chez moi. La solution fonctionne tr\u00e8s bien, d&rsquo;autant plus qu&rsquo;elle me sert aussi de routeur, de serveur VPN et parfois de point d&rsquo;acc\u00e8s Wifi.<br \/>\nJe peux aussi, au besoin, la d\u00e9brancher et l&#8217;emmener avec moi n&rsquo;importe o\u00f9.<br \/>\nC&rsquo;est pratique.<br \/>\nMais je cherchais surtout une solution purement logicielle.<br \/>\nJe souhaitais une VM la plus petite possible, utilisant le minimum de RAM, pour qu&rsquo;elle soit portable et rapide. La qu\u00eate du Graal un peu.<br \/>\nEt l\u00e0, paf, apr\u00e8s plusieurs jours de recherche et de test je tombe sur mon Graal justement.<br \/>\n<a href=\"http:\/\/distro.ibiblio.org\/tinycorelinux\/welcome.html\" target=\"_blank\">TinyCore<\/a> que \u00e7a s&rsquo;appelle.<br \/>\nUne distribution Linux de 11Mo, ultra-modulaire, qui se charge int\u00e9gralement en RAM et qui met moins de 5 secondes \u00e0 se charger.<br \/>\nElle contient le strict minimum pour un syst\u00e8me linux de base mais on peut ensuite y ajouter des tas d&rsquo;extensions.<br \/>\nC\u2019est id\u00e9al pour qui a un besoin extr\u00eamement pr\u00e9cis, une seule fonction et qui veut se concentrer dessus.<\/p>\n<p>Pour mon propre besoin, voici les \u00e9tapes qui m&rsquo;ont permis de construire cette passerelle.<\/p>\n<ol>\n<li>Machine virtuelle\n<ol>\n<li>T\u00e9l\u00e9chargement et installation de <a href=\"https:\/\/www.virtualbox.org\/\" target=\"_blank\">VirtualBox<\/a> dans sa derni\u00e8re version<\/li>\n<li>Cr\u00e9ation d&rsquo;une machine virtuelle avec la config suivante\n<ol>\n<li>Disque dur 100Mo (juste pour conserver les extensions et les fichiers de config)<\/li>\n<li>RAM 64Mo<\/li>\n<li>Pas d&rsquo;USB, Pas de carte son<\/li>\n<li>R\u00e9seau en Pont<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>TinyCore\n<ol>\n<li>T\u00e9l\u00e9charger <a href=\"http:\/\/distro.ibiblio.org\/tinycorelinux\/downloads.html\" target=\"_blank\">le fichier ISO de CorePlus<\/a> sur le site officiel. C&rsquo;est un plus gros fichier mais il contient l&rsquo;installeur complet.<\/li>\n<li>Booter la VM sur l&rsquo;ISO<\/li>\n<li>Suivre la <a href=\"http:\/\/distro.ibiblio.org\/tinycorelinux\/install.html\">proc\u00e9dure d&rsquo;installation<\/a><\/li>\n<li>Enlever l&rsquo;ISO et rebooter<\/li>\n<\/ol>\n<\/li>\n<li>Configuration de TinyCore\n<ol>\n<li>Modifier le fichier extlinux (qui est lu au boot) pour y ajouter quelques options\n<ol>\n<li>vi \/mnt\/sda1\/tce\/boot\/extlinux\/extlinux.conf<\/li>\n<li>home=sda1 opt=sda1 kmap=azerty\/fr-latin9 quiet host=sshfstc<\/li>\n<\/ol>\n<\/li>\n<li>Rebooter (Par d\u00e9faut aucun fichier n&rsquo;est sauvegard\u00e9. Home et Opt d\u00e9finissent deux r\u00e9pertoires persistants au reboot.)<\/li>\n<li>Ajouter les extensions Openssh, SSHFS et Samba<br \/>\ntce =&gt; S =&gt; openssh =&gt; Q =&gt; Install<br \/>\ntce =&gt; S =&gt; sshfs =&gt; Q =&gt; Install<br \/>\ntce =&gt; S =&gt; samba=&gt; Q =&gt; Install<\/li>\n<\/ol>\n<\/li>\n<li>Configuration de Samba (SHARE est \u00e0 remplacer par un nom de partage quelconque)\n<ol>\n<li>Cr\u00e9er le r\u00e9pertoire \u00e0 partager\n<ol>\n<li>mkdir \/opt\/SHARE<\/li>\n<\/ol>\n<\/li>\n<li>Modifier le fichier de conf\n<ol>\n<li>vi \/usr\/local\/etc\/samba\/smb.conf<\/li>\n<li>Remplacer tout par :\n<ol>\n<li>[SHARE]<\/li>\n<li>writable=yes<\/li>\n<li>browsable=yes<\/li>\n<li>path=\/opt\/SHARE<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Ajouter un utilisateur\n<ol>\n<li>sudo smbpasswd -a tc<\/li>\n<li>&lt;motdepasse&gt;<\/li>\n<\/ol>\n<\/li>\n<li>Lancer Samba au d\u00e9marrage\n<ol>\n<li>vi \/opt\/bootsync.sh<\/li>\n<li>\/usr\/local\/etc\/init.d\/samba start<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Configuration de ssh\/sshfs\n<ol>\n<li>Cr\u00e9er les cl\u00e9s publique et priv\u00e9e dans le r\u00e9pertoire root\n<ol>\n<li>cd root; sudo ssh-keygen; sudo cat .ssh\/id_rsa.pub | ssh user@hostname \u00ab\u00a0cat &#8211; &gt;&gt; .ssh\/authorized_keys\u00a0\u00bb<\/li>\n<li>Se connecter une premi\u00e8re fois sur le serveur distant, \u00e7a ne doit plus demander de mot de passe\n<ol>\n<li>ssh user@hostname<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Ajouter le montage du syst\u00e8me de fichier distant\n<ol>\n<li>vi \/opt\/bootlocal.sh<\/li>\n<li>sleep 20 #Je mets 20 secondes de s\u00e9curit\u00e9 avant de tenter le montage distant. On doit probablement pouvoir le r\u00e9duire ou mettre un test qui checke que c&rsquo;est bien mont\u00e9 et qui tente de le monter sinon.<\/li>\n<li>sshfs user@hostname:\/&lt;r\u00e9pertoire distant&gt; \/opt\/SHARE -o allow_other,reconnect,_netdev,uid=1001,gid=50<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Finalisation\n<ol>\n<li>On sauvegarde les param\u00e8tres. TinyCore ne sauvegarde que les r\u00e9pertoires home, opt et les fichiers et r\u00e9pertoires list\u00e9s dans \/opt\/.filetool.lst\n<ol>\n<li>vi \/opt\/.filetool.lst<\/li>\n<li>\/root\/.ssh<\/li>\n<li>\/usr\/local\/etc\/ssh<\/li>\n<li>\/usr\/local\/etc\/samba<\/li>\n<\/ol>\n<\/li>\n<li>filetool.sh -b<\/li>\n<li>Reboot<\/li>\n<li>Depuis un client Windows le partage est accessible via \\\\sshfstc\\SHARE avec l&rsquo;utilisateur tc et le mot de passe &lt;motdepasse&gt; d\u00e9fini plus haut.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Attention, article velu pour barbu linuxien. Si tu comprends pas, alors ce n&rsquo;est probablement pas pour toi :). Cet article est plus une r\u00e9f\u00e9rence pour moi-m\u00eame, mais si \u00e7a peut en aider d&rsquo;autres, c&rsquo;est tout bon. J&rsquo;ai actuellement un serveur de stockage h\u00e9berg\u00e9 chez OVH sur lequel j&rsquo;effectue r\u00e9guli\u00e8rement des sauvegardes et qui me sers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[56,59,57,58],"class_list":["post-700","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-linux","tag-samba","tag-ssh","tag-sshfs"],"_links":{"self":[{"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/posts\/700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=700"}],"version-history":[{"count":16,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions"}],"predecessor-version":[{"id":735,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions\/735"}],"wp:attachment":[{"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.memoiresecondaire.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}