Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/03/2019, à 09:03

DonutMan75

[RESOLU] SSHD, chroot et montage samba

Bonjour à tous,
j'ai une petite question de principe à vous soumettre.
Je souhaite répliquer le contenu de mon NAS personnel avec un poste distant (hors de mon domicile quoi).
Du coup, j'ai mis en place un petit raspberry à la maison avec :

  • un montage Samba en lecture seule de mon NAS

  • un serveur SSH accessible depuis l'extérieur

L'idée est que le poste extérieur se connecte régulièrement pour mettre-à-jour sa copie du NAS.
Je potasse un peu la doc pour être sûr de sécuriser convenablement le serveur et je me penche actuellement sur le chroot.

Voici ma question :
Selon vous est-il pertinent de faire un chroot vers un répertoire qui contient un montage samba ? C'est casse-gueule ? Y'a t'il des précautions particulières à prendre ? Si quelqu'un a déjà tenté le truc, je suis preneur de tout retour d'expérience smile

Merci d'avance pour vos retours smile

Bonne journée !



Donut

Dernière modification par DonutMan75 (Le 30/04/2019, à 10:19)

Hors ligne

#2 Le 27/03/2019, à 17:06

krodelabestiole

Re : [RESOLU] SSHD, chroot et montage samba

si tu chroot c'est parce que tu crains que quelqu'un ait accès à ta clé privée ?
ou que le mot de passe de l'utilisateur ne soit pas assez sécurisé ?

a priori je te conseille surtout de vérifier ta sécurité en amont, à ce niveau.

d'une manière générale on a pas assez d'info ici pour jauger des risques potentiels :
qui aura accès à ton serveur en SSH, ou un accès physique aux machines sur lesquelles sont enregistrées les clés privées ?
qui consultera le répertoire partagé via SMB ?
a priori sur cet espace comme info sensible il n'y aura que la clé publique, donc pas de quoi s'inquiéter... ou reformule peut-être ta question en expliquant ce qui t'inquiète ?

En ligne

#3 Le 27/03/2019, à 18:41

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Salut Krodelabestiole,
merci pour ton retour smile
Non je ne crains rien de particulier,
le serveur sera chez moi, donc aucun risque d'accès physique.
Seul mon poste distant sera sensé se connecter sur le serveur.
Et a priori le raspberry serveur n'aura pas d'autres finalités que ça. J'ai dessus un compte principal (sudoer) et un compte lamba dédié à la connection ssh.

Néanmoins, je me disais que c'était l'occasion de bétonner la sécurité... juste pour le fun (et l'apprentissage) ^^

Ce que je compte faire pour le moment :

  • montage samba en lecture seule

  • connection par clef

  • restreindre l'accès ssh au seul utilisateur lambda (via AllowUsers toto dans sshd_config)

  • mettre en place un chroot pour limiter l'accès aux seules ressources essentielles

  • changer le port par défaut pour éviter les évetnuels scans/attaques automatiques

D'un côté je me dis que le chroot n'a aucune raison de créer de conflit avec samba (on change juste la définition de '/'), mais il y a peut être des subtilités que je ne maîtrise pas...

A bientôt smile

D.

Hors ligne

#4 Le 27/03/2019, à 18:52

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Dans mon cas, sans chroot un intrus qui se connecterait à partir du poste distant pourrait avoir accès en lecture seule à mon NAS, pourrait récupérer le /etc/passwd (chiffré certes) qui contiendrait entre autres le mot de passe du compte principal et pourrait explorer l'environnement réseau de mon domicile.
Avec un chroot, l'intrus pourra toujours accéder au NAS mais n'aurait plus accès au /etc/passwd... j'ignore si on peut également restreindre l'exploration du réseau via chroot (sans doute) mais je peux aussi mettre en place une petite règle iptables qui interdirait tout sauf ssh pour le routeur et samba pour le NAS...

Hors ligne

#5 Le 27/03/2019, à 19:05

bruno

Re : [RESOLU] SSHD, chroot et montage samba

Je ne suis pas sûr de bien comprendre les demandes wink
Avec openssh-server on peut bloquer un utilisateur dans n'importe quel dossier de son choix. Il suffit que le dossier en question appartienne à root.
Si tu n'as qu'un seul utilisateur autorisé à se connecter en SSH et bloqué dans un dossier (chroot), comment va tu administrer le RaspberryPi ?
Si la connexion ne sa fait que par clés, les attaques par force brute n'ont aucune chance. Le changement de port par défaut ne sert strictement à rien. De toute façon ce n'est pas une mesure de sécurité, cela peut même la diminuer.

Le fichier /etc/password ne contient aucun mot de passe, même chiffré.

Dernière modification par bruno (Le 27/03/2019, à 19:07)

Hors ligne

#6 Le 27/03/2019, à 21:51

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Bonsoir bruno, et merci pour ton retour !
Oui en effet, je suis peut-être à côté de la plaque et la sécurité par défaut est très probablement satisfaisante. Mais j'étais curieux de tester les options de chroot de sshd.
Ma problématique au final est moins de sécuriser un serveur que d'apprendre à utiliser cette possibilité ^^

bruno a écrit :

Avec openssh-server on peut bloquer un utilisateur dans n'importe quel dossier de son choix. Il suffit que le dossier en question appartienne à root.

fais-tu allusion à ChrootDirectory de sshd_config ?

Match User toto
  ChrootDirectory /home/toto
bruno a écrit :

Si tu n'as qu'un seul utilisateur autorisé à se connecter en SSH et bloqué dans un dossier (chroot), comment va tu administrer le RaspberryPi ?

euh... ah oui tiens, remarque très pertinente !
Je vais creuser ça, mais j'avais lu dans la doc de ssh qu'on pouvait définir des IP avec Allow_users. Je verrai bien un truc du style :

AllowUsers admin@192.168.0.4 # Compte sudoer, ne pouvant être loggué qu'à partir d'une machine d'aministration de mon réseau local (donc, pas de l'extérieur)
AllowUsers toto # Compte lambda pour dupliquer le NAS, pouvant être loggué depuis n'importe où (et donc de l'extérieur)
bruno a écrit :

Le changement de port par défaut ne sert strictement à rien. De toute façon ce n'est pas une mesure de sécurité, cela peut même la diminuer.

Ah tiens, il m'avait semblé que c'était une protection efficace contre les scans automatiques de serveurs ssh, mais il y a donc des risques avec le changement de port ?

Enfin en tout cas, merci pour ton retour... et désolé si ma requête semble un peu alambiquée tongue

Bonne soirée à tous !

Donut

Hors ligne

#7 Le 27/03/2019, à 22:19

bruno

Re : [RESOLU] SSHD, chroot et montage samba

Oui, je t'invite à lire la doc (page de man de sshd_config) la directive Match permet de filtrer les utilisateurs (User ou Group) mais aussi les adresses IP (Address).
Des exemples : https://www.blog-libre.org/2015/11/21/l … hd_config/

Pour le changement de port, tu fais comme tu veux. J'ai argumenté mon point de vue ici.

Hors ligne

#8 Le 28/03/2019, à 08:18

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Yop yop,
en effet tes arguments sur le changement de port font réfléchir..
je vais potasser la page sur le sshd_config

Bonne journée à tous smile

Hors ligne

#9 Le 28/03/2019, à 08:32

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Bon sinon, concernant ma requête initiale j'ai fait un test qui semble concluant.

Sur ma machine contenant :

  1. le montage Samba du NAS dans /nas (montage à la demande via autofs)

  2. le répertoire /home/sshtest/ ayant vocation à être chrooté

J'ai copié les programmes bash et ls avec leurs dépendances dans /home/sshtest/ (et je n'ai RIEN MIS D'AUTRE, aucun répertoire sys, proc etc... juste bin et lib)
J'ai ensuite fait un montage bind du NAS dans le répertoire chrooté

$ sudo mount --bind /nas/ /home/sshtest/nastest/

Un chroot sur /home/sshtest me permet ensuite d'accéder à mon NAS

$ sudo chroot /home/sshtest/
> cd /nastest
> ls
(le contenu du NAS est affiché)
> exit

Donc en conclusion : accéder à un montage Samba dans un environnement chrooté minimal fonctionne !
Maintenant existe-t'il des subtilités qui font que ce ne serait pas propre ou dangereux ? Je l'ignore...

D.

Dernière modification par DonutMan75 (Le 28/03/2019, à 08:32)

Hors ligne

#10 Le 29/04/2019, à 10:59

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Bonjour,
Pour relancer un peu la discussion, voici ce qui m'interpelle dans la documention de ssh :

man sshd_config a écrit :

     ChrootDirectory
             Specifies the pathname of a directory to chroot(2) to after authentication.  At session startup sshd(8)
             checks that all components of the pathname are root-owned directories which are not writable by any other
             user or group.  After the chroot, sshd(8) changes the working directory to the user's home directory.  Argu‐
             ments to ChrootDirectory accept the tokens described in the TOKENS section.

             The ChrootDirectory must contain the necessary files and directories to support the user's session.  For an
             interactive session this requires at least a shell, typically sh(1), and basic /dev nodes such as null(4),
             zero(4), stdin(4), stdout(4), stderr(4), and tty(4) devices.  For file transfer sessions using SFTP no addi‐
             tional configuration of the environment is necessary if the in-process sftp-server is used, though sessions
             which use logging may require /dev/log inside the chroot directory on some operating systems (see
             sftp-server(8) for details).

             For safety, it is very important that the directory hierarchy be prevented from modification by other pro‐
             cesses on the system (especially those outside the jail).  Misconfiguration can lead to unsafe environments
             which sshd(8) cannot detect.

             The default is none, indicating not to chroot(2).

Autrement dit et selon ce que j'en comprends,
si sur le serveur qui héberge sshd l'utilisateur user_backup est chrooté vers /jail et que ce répertoire contient un montage samba /jail/montage_samba/ et qu'un autre utilisateur (potentiellement sur une autre machine) modifie l'arborescence pendant que user_backup est connecté alors ça peut conduire à quelque chose de potentiellement dangereux...

Hors ligne

#11 Le 29/04/2019, à 16:30

bruno

Re : [RESOLU] SSHD, chroot et montage samba

Ce qui est dangereux c'est de faire des trucs aussi tordus wink
Je ne comprends pas ta démarche.
Un partage samba ne devrait être accessible qu'aux utilisateurs samba autorisés et à l'administrateur système.
D'autre part avoir des utilisateurs SSH (avec un shell pas uniquement SFTP) dans un environnement chrooté est quelque chose de lourd et complexe à configureret à maintenir, avec tous les risques que cela comporte. La page de man avertit que la modification de l'arborescence du dossier chrooté par un processus externe est potentiellement dangereuse.
Si tu veux des utilisateurs SSH avec un shell restaient il y a bien d'autres solutions plus simples (rbash, rssh, etc.)

Hors ligne

#12 Le 30/04/2019, à 09:04

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Bonjour Bruno !

bruno a écrit :

Ce qui est dangereux c'est de faire des trucs aussi tordus
Je ne comprends pas ta démarche.

Oui je comprends... hmm
L'idée de base est de dupliquer le contenu de mon NAS personnel sur un poste distant.
Comme je ne souhaite pas exposer mon NAS à l'extérieur de mon réseau privé, j'ai dans l'idée d'utiliser un serveur ssh sur un raspberry pour faire le lien.
Voici un petit schéma pour montrer ce que j'avais en tête.

schema reseau

Selon ce montage, seul le port SSH du raspberry serait visible de l'extérieur.

Quels sont les risques contre lesquels je veux me prémunir ?
- attaque d'un poste tiers : je mets en place une authentification par clefs, le compte administrateur du raspberry n'est accessible que depuis une machine bien particulière du réseau local (donc pas attaquable depuis l'extérieur normalement), seul un compte minimaliste dédié au backup peut se connecter depuis l'extérieur
- intrus qui se connecterait à ma place depuis l'ordinateur distant (c'est une machine au bureau) : je pourrais chiffrer la clef du compte minimaliste mais ça complexifierait mes scripts. S'il peut se connecter en tant qu'utilisateur minimaliste alors il pourrait explorer mon réseau local et récupérer les credentials du montage samba (par exemple). Si je chroot, ça limite d'autant ces possibilités.
- dans tous les cas, les credentials samba sont spécifiques au compte minimaliste et sont en lecture seule seulement (au pire on récup des données perso mais on ne pourra pas les supprimer)

Mais bon, d'après vos retours ça n'a pas l'air d'être une très bonne idée.. Une sécurité moyenne mais maîtrisée vaut mieux qu'une super sécurité pas maîtrisée, si je résume ? wink
Pourtant d'après la doc, ça me semblait plutôt pas mal ce chroot...

Merci d'avance pour vos retours smile

Donut

Hors ligne

#13 Le 30/04/2019, à 09:51

bruno

Re : [RESOLU] SSHD, chroot et montage samba

Tu te compliques la vie pour rien et effectivement plus la solution est complexe et mal maîtrisée et plus les risques sont importants.

Sur ton Raspberry tu montes en cifs ton partage samba. Ton poste distant n'a qu'a exécuter un script rsync (ou un scp) pour rapatrier le contenu du dossier monté.

Si tu veux synchroniser tes fichiers sur ton poste distant, il n'y a pas de problème de sécurité à se connecter en root à ton Raspberry pour faire un rsync du moment que l’authentification de root ne peut se faire que par clés (RSA 4096 bits ou mieux ED25519) et que ta clé privée est en lieu sûr, protégée par une phrase de passe.

Si tu veux simplement accéder aux fichiers depuis le poste de distant, il suffit de créer un utilisateur sans shell sur le Raspberry et de configurer sshd pour que cet utilisateur soit chrooté et ne puisse faire que du SFTP.

Hors ligne

#14 Le 30/04/2019, à 10:18

DonutMan75

Re : [RESOLU] SSHD, chroot et montage samba

Super merci pour toutes ces précisions !
Je passe le sujet en résolu smile

Hors ligne