{"id":1099,"date":"2010-09-27T10:15:21","date_gmt":"2010-09-27T08:15:21","guid":{"rendered":"http:\/\/michauko.org\/blog\/?p=1099"},"modified":"2010-09-27T10:15:21","modified_gmt":"2010-09-27T08:15:21","slug":"sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire","status":"publish","type":"post","link":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/","title":{"rendered":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire"},"content":{"rendered":"<p>Salut,<br \/>\nUn petit article sur ce sujet r\u00e9current car il y a plein de m\u00e9thodes, dont une assez simple, mais avec 2\/3 points de param\u00e9trage pr\u00e9cis.<br \/>\nLe but est de permettre \u00e0 un client\/fournisseur d&rsquo;envoyer\/r\u00e9cup\u00e9rer des fichiers sur un serveur, en SFTP, sans pour autant lui donner acc\u00e8s en SSH (ex\u00e9cuter des commandes) et sans voir autre part que son \u00ab\u00a0home\u00a0\u00bb.<br \/>\nLe tout sur un serveur SSH d\u00e9j\u00e0 mont\u00e9 et par ailleurs utilis\u00e9 pour du SSH normal en interne, avec du SFTP normal aussi.<\/p>\n<p>Il y a 3 m\u00e9thodes courantes pour commencer \u00e0 jouer avec les chroot ssh\/sftp :<\/p>\n<ul>\n<li>\nH\u00e9berger un serveur SSH en chroot normal : c&rsquo;est chiant. Cr\u00e9er un \u00ab\u00a0home\u00a0\u00bb, reproduire un minimum d&rsquo;arborescence standard, d&rsquo;utilisateurs etc.\n<\/li>\n<li>\nUtiliser rssh comme shell alternatif, c&rsquo;est un shell qui limite l&rsquo;utilisateur \u00e0 du SFTP, SCP, CVS, RSYNC etc. On choisit ce qu&rsquo;on veut tol\u00e9rer. Mais, l&rsquo;utilisateur peut quand m\u00eame se promener dans le syst\u00e8me (tout \u00ab\u00a0\/\u00a0\u00bb).\n<\/li>\n<li>\nEnfin, ce que je vais d\u00e9crire : utiliser la fonctionnalit\u00e9 de \u00ab\u00a0chroot\u00a0\u00bb int\u00e9gr\u00e9e aux serveurs SSH (serveur ssh >= 4.8, donc n&rsquo;importe quel SSH d&rsquo;une Debian stable de nos jours). On va simplement brider quelques comptes et mettre quelques permissions bien senties.\n<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h1>Adaptation d&rsquo;un utilisateur<\/h1>\n<p>Le mieux est de pr\u00e9voir large : on risque d&rsquo;avoir plusieurs clients\/fournisseurs qui voudront acc\u00e9der.<br \/>\nOn va donc cr\u00e9er un groupe des utilisateurs SFTP seulement, nomm\u00e9 \u00ab\u00a0sftpusers\u00a0\u00bb.<br \/>\nJe cr\u00e9e un utilisateur pour mon client, nomm\u00e9 xfer1, en changeant son home :<\/p>\n<pre>xfer1:x:1011:1012:Transfert client1,,,:\/transferts_partenaires\/xfer1\/:bin\/bash<\/pre>\n<p>Notez que le groupe 1012 est le groupe \u00ab\u00a0sftpusers\u00a0\u00bb :<\/p>\n<pre>$ id xfer1\r\nuid=1011(xfer1) gid=1012(sftpusers) groupes=1012(sftpusers)<\/pre>\n<h1>Cr\u00e9ation du r\u00e9pertoire d&rsquo;\u00e9change, permissions<\/h1>\n<p>On cr\u00e9e l&rsquo;arborescence qui va servir de home bidon \u00e0 tout ces utilisateurs :<\/p>\n<pre>$ mkdir --parents \/transferts_partenaires\/xfer1\/\r\n$ chown -R root:sftpusers \/transferts_partenaires\/\r\n$ chmod -R 750 \/transferts_partenaires\/<\/pre>\n<p>Les permissions ci-dessus sont hyper importantes. Le serveur SFTP refusera la connexion si le home de ces utilisateurs n&rsquo;est pas en <strong>\u00e9criture uniquement pour le root <\/strong>! Donc oui, en l&rsquo;\u00e9tat, notre utilisateur <code>xfer1:sftpusers<\/code> ne peut pas \u00e9crire dans son home. Il pourra lire, ce qui peut \u00eatre suffisant si vous lui mettez simplement des fichiers \u00e0 disposition. Mais pour \u00e9crire, il faudra cr\u00e9er un sous-r\u00e9pertoire, genre \u00ab\u00a0upload\u00a0\u00bb.<\/p>\n<pre>mkdir \/transferts_partenaires\/xfer1\/upload\/\r\nchown xfer1:sftpusers \/transferts_partenaires\/xfer1\/upload\/\r\nchmod 700 \/transferts_partenaires\/xfer1\/upload\/<\/pre>\n<h1>D\u00e9claration du compte en SFTP uniquement<\/h1>\n<p>Enfin, on param\u00e8tre le serveur SSH comme suit. Modifiez votre fichier <code>\/etc\/ssh\/sshd_config<\/code> :<\/p>\n<pre># param par d\u00e9faut, on change : Subsystem sftp \/usr\/lib\/openssh\/sftp-server\r\nSubsystem     sftp   internal-sftp -f AUTH -l VERBOSE\r\n\r\n# plus loin...\r\nMatch Group sftpusers\r\n        ChrootDirectory \/transferts_partenaires\/%u\r\n        ForceCommand internal-sftp\r\n        AllowTcpForwarding no\r\n        GatewayPorts no\r\n        X11Forwarding no<\/pre>\n<p>A noter que les AllowUsers\/DenyUsers s&rsquo;appliquent toujours. L&rsquo;utilisateur xfer1 &#8211; ou plut\u00f4t les utilisateurs du groupe sftpusers &#8211; doivent \u00eatre autoris\u00e9s d&rsquo;une mani\u00e8re ou d&rsquo;une autre.<br \/>\nA noter aussi la beaut\u00e9 du geste avec le \u00ab\u00a0%u\u00a0\u00bb pour indiquer le nom de l&rsquo;utilisateur.<\/p>\n<p>Ensuite vous recharger le serveur SSH et testez les connexions SFTP et SSH-qui-passent-pas, sans oublier la distinction lecture\/\u00e9criture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salut, Un petit article sur ce sujet r\u00e9current car il y a plein de m\u00e9thodes, dont une assez simple, mais avec 2\/3 points de param\u00e9trage pr\u00e9cis. Le but est de permettre \u00e0 un client\/fournisseur d&rsquo;envoyer\/r\u00e9cup\u00e9rer &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[391,2,82,389,83],"tags":[446,447,378,445,146],"class_list":["post-1099","post","type-post","status-publish","format-standard","hentry","category-autres-outils","category-debian","category-pl","category-reseau-secu","category-ubuntu","tag-chroot","tag-rssh","tag-scp","tag-sftp","tag-ssh"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko\" \/>\n<meta property=\"og:description\" content=\"Salut, Un petit article sur ce sujet r\u00e9current car il y a plein de m\u00e9thodes, dont une assez simple, mais avec 2\/3 points de param\u00e9trage pr\u00e9cis. Le but est de permettre \u00e0 un client\/fournisseur d&rsquo;envoyer\/r\u00e9cup\u00e9rer &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/\" \/>\n<meta property=\"og:site_name\" content=\"Le blog de Michauko\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-27T08:15:21+00:00\" \/>\n<meta name=\"author\" content=\"michauko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"michauko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/\"},\"author\":{\"name\":\"michauko\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"headline\":\"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire\",\"datePublished\":\"2010-09-27T08:15:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/\"},\"wordCount\":467,\"commentCount\":26,\"keywords\":[\"chroot\",\"rssh\",\"scp\",\"sftp\",\"ssh\"],\"articleSection\":[\"autres outils\",\"Debian\",\"planet-libre.org\",\"reseau et s\u00e9cu\",\"Ubuntu\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/\",\"name\":\"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\"},\"datePublished\":\"2010-09-27T08:15:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\",\"name\":\"Le blog de Michauko\",\"description\":\"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/michauko.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\",\"name\":\"michauko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"caption\":\"michauko\"},\"sameAs\":[\"http:\\\/\\\/michauko.org\\\/\"],\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/author\\\/randomized2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/","og_locale":"fr_FR","og_type":"article","og_title":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko","og_description":"Salut, Un petit article sur ce sujet r\u00e9current car il y a plein de m\u00e9thodes, dont une assez simple, mais avec 2\/3 points de param\u00e9trage pr\u00e9cis. Le but est de permettre \u00e0 un client\/fournisseur d&rsquo;envoyer\/r\u00e9cup\u00e9rer &hellip;","og_url":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/","og_site_name":"Le blog de Michauko","article_published_time":"2010-09-27T08:15:21+00:00","author":"michauko","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"michauko","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/#article","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/"},"author":{"name":"michauko","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"headline":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire","datePublished":"2010-09-27T08:15:21+00:00","mainEntityOfPage":{"@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/"},"wordCount":467,"commentCount":26,"keywords":["chroot","rssh","scp","sftp","ssh"],"articleSection":["autres outils","Debian","planet-libre.org","reseau et s\u00e9cu","Ubuntu"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/","url":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/","name":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire - Le blog de Michauko","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/#website"},"datePublished":"2010-09-27T08:15:21+00:00","author":{"@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"breadcrumb":{"@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/michauko.org\/blog\/sftp-chroot-et-pas-de-ssh-bloquer-un-utilisateur-dans-un-repertoire-1099\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/michauko.org\/blog\/"},{"@type":"ListItem","position":2,"name":"SFTP, chroot et pas de SSH : bloquer un utilisateur dans un r\u00e9pertoire"}]},{"@type":"WebSite","@id":"https:\/\/michauko.org\/blog\/#website","url":"https:\/\/michauko.org\/blog\/","name":"Le blog de Michauko","description":"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/michauko.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9","name":"michauko","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","caption":"michauko"},"sameAs":["http:\/\/michauko.org\/"],"url":"https:\/\/michauko.org\/blog\/author\/randomized2\/"}]}},"_links":{"self":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/1099","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/comments?post=1099"}],"version-history":[{"count":7,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/1099\/revisions"}],"predecessor-version":[{"id":1106,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/1099\/revisions\/1106"}],"wp:attachment":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/media?parent=1099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/categories?post=1099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/tags?post=1099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}