Vous n'êtes pas identifié(e).
Pages : 1
Dernière modification par klosius (26-06-2017 13:46:22)
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
ce répertoire a comme propriétaire toto:titi (titi est mon utilisateur que j'utilise tout les jours) (toto fais parti du groupe titi)
Si tu as changé les droits avec chmod, c'est du type user:group
Peux tu poster le contenu de
Histoire d'être sûr que ssh est correctement lancé
et
/var/log/auth.log ?
Enfin essaie de te connecter directement en ssh.
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
Active: active (running) since ven 2017-06-23 08:19:20 CEST; 1h 21min ago
Main PID: 25937 (sshd)
CGroup: /system.slice/ssh.service
└─25937 /usr/sbin/sshd -D
pour le auth.log:
941 Jun 23 09:47:26 jupiter sshd[28961]: Accepted password for toto from 192.168.0.202 port 64356 ssh2
942 Jun 23 09:47:26 jupiter sshd[28961]: pam_unix(sshd:session): session opened for user toto by (uid=0)
943 Jun 23 09:47:26 jupiter systemd: pam_unix(systemd-user:session): session opened for user toto by (uid=0)
944 Jun 23 09:47:26 jupiter systemd-logind[992]: New session 109 of user toto.
945 Jun 23 09:47:26 jupiter sshd[28966]: fatal: bad ownership or modes for chroot directory component "/var/radio/"
946 Jun 23 09:47:26 jupiter sshd[28961]: pam_unix(sshd:session): session closed for user toto
947 Jun 23 09:47:26 jupiter systemd-logind[992]: Removed session 109.
948 Jun 23 09:47:31 jupiter sshd[28977]: Accepted password for toto from 192.168.0.202 port 64356 ssh2
949 Jun 23 09:47:31 jupiter sshd[28977]: pam_unix(sshd:session): session opened for user toto by (uid=0)
950 Jun 23 09:47:31 jupiter systemd: pam_unix(systemd-user:session): session opened for user toto by (uid=0)
951 Jun 23 09:47:31 jupiter systemd-logind[992]: New session 110 of user toto.
952 Jun 23 09:47:31 jupiter sshd[28982]: fatal: bad ownership or modes for chroot directory component "/var/radio/"
953 Jun 23 09:47:31 jupiter sshd[28977]: pam_unix(sshd:session): session closed for user toto
954 Jun 23 09:47:31 jupiter systemd-logind[992]: Removed session 110.
955 Jun 23 09:47:31 jupiter systemd: pam_unix(systemd-user:session): session closed for user toto
et j'ai essayé de me connecter en ssh:
j'ai comme message
" Network error: Software caused connection abort"
par contre si j'enlève les lignes qui correspond au "Match user toto", j'arrive à me connecter mais je peux aussi me balader sur les répertoires du serveur , chose que je n'ai pas envie qu'il puisse faire .
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Ton utilisateur n'est pas proprio de /var/radio/, dans ton sshd_config il faut mettre /var/radio/pays
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
1022 Jun 23 10:31:03 jupiter sshd[30583]: Accepted password for toto from 192.168.0.202 port 64356 ssh2
1023 Jun 23 10:31:03 jupiter sshd[30583]: pam_unix(sshd:session): session opened for user toto by (uid=0)
1024 Jun 23 10:31:03 jupiter systemd-logind[992]: New session 118 of user toto.
1025 Jun 23 10:31:03 jupiter systemd: pam_unix(systemd-user:session): session opened for user toto by (uid=0)
1026 Jun 23 10:31:03 jupiter sshd[30588]: fatal: bad ownership or modes for chroot directory component "/var/radio/"
1027 Jun 23 10:31:03 jupiter sshd[30583]: pam_unix(sshd:session): session closed for user toto
1028 Jun 23 10:31:03 jupiter systemd-logind[992]: Removed session 118.
1029 Jun 23 10:31:03 jupiter systemd: pam_unix(systemd-user:session): session closed for user toto
1030 Jun 23 10:31:08 jupiter sshd[30599]: Accepted password for toto from 192.168.0.202 port 64356 ssh2
1031 Jun 23 10:31:08 jupiter sshd[30599]: pam_unix(sshd:session): session opened for user toto by (uid=0)
1032 Jun 23 10:31:08 jupiter systemd-logind[992]: New session 119 of user toto.
1033 Jun 23 10:31:08 jupiter systemd: pam_unix(systemd-user:session): session opened for user toto by (uid=0)
1034 Jun 23 10:31:08 jupiter sshd[30604]: fatal: bad ownership or modes for chroot directory component "/var/radio/"
1035 Jun 23 10:31:08 jupiter sshd[30599]: pam_unix(sshd:session): session closed for user toto
1036 Jun 23 10:31:08 jupiter systemd-logind[992]: Removed session 119.
1037 Jun 23 10:31:08 jupiter systemd: pam_unix(systemd-user:session): session closed for user toto
j'ai toujours le même répertoire
fatal: bad ownership or modes for chroot directory component "/var/radio/"
mon répertoire /var/radio/ appartiens a root:root
mais mon répertoire /var/radio/pays/ appartiens a toto:titi
et sur mon fichier /etc/passwd ma ligne qui correspond a toto est:
toto:x:1012:1012:utilisateur pour test:/var/radio:/bin/bash
tu aurai encore une idée?
Merci encore de m'aider
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
Hum pourquoi as tu spécifié le home de toto à /var/radio ?
parce que , quand je me connecte avec filezilla avec le user "toto", j'aimerai arriver au répertoire /var/radio/
Si tu met toto:titi proprio de radio ça marche ? smile
j'avais compris que le répertoire parents dois être en root
du genre
/home/ appartiens a root:root
mais
/home/toto/ appartiens a toto:toto
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
fatal: bad ownership or modes for chroot directory component "/var/radio/"
compliqué cette histoire !!!
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
toto:x:1012:1012:utilisateur pour test:/var/radio/pays:/bin/bash
donc, mon home est /var/radio/pays
mais où est-ce que je vois que mon chroot est /var/radio ? tu parle du chrootDirectory du fichier sshd_config ?
il a comme donnée:
ChrootDirectory /var/radio/pays
pour les détails des dossiers:
/var/radio root:root chmod 775
/var/radio/pays toto:titi chmod 775 ainsi que tous les sous répertoires et fichiers
Il faut également un shell pour que l'utilisateur puisse se connecter. As tu bien une copie de /usr/bin/bash dans ton chroot ? (et des autres commandes que tu veux).
Penses aussi à recréer les dossiers "vitaux du système" genre dev et compagnie.
j'ai rien compris
pour le bash je pense que c'est ok vu que j'arrive a me connecter et j'arrive dans mon répertoire tant que les lignes :
Match user toto
ChrootDirectory /var/radio/pays/
ForceCommand internal-sftp
AllowTCPForwarding no
n'y soient pas
dans la racine de mon serveur il y tout les dossiers " dev et compagnie" ( Debian fraîchement installé)
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
tu parle du chrootDirectory du fichier sshd_config ?
Oui
En chrootant dans /var/radio, les programmes qui seront exécutés dans le chroot croiront que /var/radio est /
Ils n'ont donc plus accès à la racine système mais QUE à /var/radio (donc pas de bash ou autres choses si pratiques ). C'est d'ailleurs la raison pour laquelle tu veux l'utiliser.
pour le bash je pense que c'est ok vu que j'arrive a me connecter et j'arrive dans mon répertoire tant que les lignes :
Match user toto
ChrootDirectory /var/radio/pays/
ForceCommand internal-sftp
AllowTCPForwarding no
n'y soient pas
Lorsque ces lignes n'y sont pas il n'y a simplement pas de chroot.
Il faut donc
1- régler les permissions correctement: uniquement les droits pour root sur le dossier chrooté - celui de sshd_config - et ses parents ; tous les droits aux dossiers à l'intérieur de ce dernier
2- préparer l'environnement (notamment ajouter bash ou sh (et d'autres commandes utiles comme ls, ... au chroot) - ex: /var/radio/usr/bin/bash ...
Pour ce faire copier les exécutables de ton système devrait (presque) suffire (/usr/bin/bash vers /var/radio/usr/bin/bash).
Si tu as des besoins spéciaux crée les dossiers suivants dev,etc,lib,usr,bin dans /var/radio et colle à l'intérieur ce dont tu as besoin (je sais c'est vague, mais à priori je ne vois pas trop ce dont tu as besoin ^^)
J'ai un gros doute sur les librairies partagées mais je pense qu'il faut aussi les copier:
a- trouver les librairies requises pour chacun des prog que tu as copié dans ton chroot (exemple pour bash
te donne la liste des librairies partagées utilisées par bash qu'il faut également copier dans ton chroot pour pouvoir utiliser bash)
b- copier la liste des fichiers obtenus à la commande précédente dans ton chroot (/var/radio/...)
Voili-voilou
Bon je te propose de faire ça pas à pas
Dernière modification par daufinsyd (23-06-2017 17:05:25)
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
woauw, en faite c'est tromper Debian en lui fessant croire que la racine est dans un autre répertoire.. et vu qu'il croit que c'est la racine, forcément on ne peut plus aller en aval... pas mal vu ...:P
Exactement
mais il y a quelque chose que je ne comprend pas, dans des tuto de chroot trouvé sur le net, ils donne toujours un exemple de confinement du user dans son home, c'est a dire /home/toto/
alors comment linux peut aller chercher /usr/bin/bash/ et les autres choses si sa racine est maintenant sur /home/toto/ ? tu m'a dit que copier le bash dans le répertoire chrooté, mais pourquoi on le fais pas dans les tuto qui prenne l'exemple de /home/toto/?
Est-ce que tu as le lien ? Du coup j'ai aussi cherché quelques tutos sur le net mais ils font comme ce que je préconise plus haut (enfin pour les quelques que j'ai regardé :timide: ) (je mets les liens si ça peut aider)
bon j'ai pris les trois premiers qui venaient XD
http://www.techrepublic.com/blog/linux- … rectories/
https://www.howtoforge.com/restricting- … an-squeeze
et enfin le tuto collector de debian
https://www.debian.org/doc/manuals/secu … nv.en.html (mais bon l'auteur dit qu'il a testé son tuto sur Debian 3.0 donc ça devrait marcher ^^)
je suis désolé si c'est pas très clair ma question...
dans mon cas, j'ai juste besoin que toto se connecte sur /var/radio/ et qu'il puisse déposer, effacer, modifier des répertoires/fichiers c'est tout ce qu'il dois faire.
je vais essayer de repenser tout ça
vu que toto dois pas sortir de /var/radio/ donc, si je comprend bien, le chroot dois se faire sur ce répertoire? donc /var/radio/ dois appartenir a root:root
puis créer un autre répertoire pour que toto puisse avoir tout les droits, et ce nouveau répertoire sera le home de toto /var/radio/pays/ qui dois appartenir a toto:toto ?
puis modifier le sshd_config pour chrooter le répertoire /var/radio ou /var/radio/pays ?
et copier l'executable /usr/bin/bash dans /var/radio/bin/bash ?
tout à fait
pour sshd_config c'est donc /var/radio (la racine du chroot).
Le home de ton user sera /var/radio/pays ce qui donne DANS le chroot /pays (/var/radio étant la racine du chroot)
N'oublie pas que pour fonctionner bash requiert des librairies partagées. Il faut donc également les copiers dans le chroot. Pour connaitre quelles sont les librairies en question il faut utiliser la commande ldd sur l'éxécutable
je suis désolé de poser autant de question, mais j'aime pas copier bêtement les instructions, j'aime comprendre pourquoi on le fait
Au contraire ! C'est hyper motivant d'aider quelqu'un qui cherche à comprendre
Dernière modification par daufinsyd (23-06-2017 21:05:37)
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
Pour connaitre quelles sont les librairies en question il faut utiliser la commande ldd sur l'éxécutable
vu que moi j'ai juste besoin que toto puisse downloader/uploader et deleter des répertoires/fichiers, c'est tout ce que toto pourra faire via un client sftp
voici d'autres liens que j'ai visité ( ils ne parlent pas de copier le bash ni des librairies )
https://kdecherf.com/blog/2009/03/01/cr … c-openssh/
http://michauko.org/blog/sftp-chroot-et … oire-1099/
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
de sshd_config ?
Pour les permissions
Root est proprio de /var/radio et seul son groupe peut y écrire.
D'ailleurs en toute rigueur pas besoin du droit d'éxécution pour les autres utilisateurs.
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
et
mon /var est en root:root
mon /var/radio est en root:root et en 775
mon /var/radio/pays est en toto:titi et en 775
au niveau de mon user toto dans le fichier paswd:
mais quand j'essai de me connecter j'ai toujours cette erreur dans auth.log:
j'ai beau changer de chrootdirectory dans le fichier sshd_config j'essai avec:
ou
ou
ou
mon log auth.log me donne toujours la même erreur
qu'est ce que j'ai fais de faux? et je fais très attention a la syntaxe ( c'est vite arriver d'oublier une lettre et hop rien ne va plus ..
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
À tout hasard quelles sont les permissions et propriétaire de / et /var ?
Tu peux bloquer le shell de toto par ailleurs
étant donné que tu comptes qu'interagir avec filezilla
PS: redémarres-tu bien ssh à chaque changement ?
si il devait t'indiquer une erreur :
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
Dans AllowUsers ne spécifie pas le groupe titi
titi est le user que j'utilise tout les jours c'est pour ça que je l'ai mis dans la ligne AllowUsers
Le ChrootDirectory est bon et root a les permissions d'écriture dessus mais au cas où supprime aussi les permissions d'écriture au groupe root (755)
j'ai pas bien compris pourquoi je devrai supprimer la permission d'écriture au groupe root, quel est la conséquence du faite que je ne puisse pas me connecter?
À tout hasard quelles sont les permissions et propriétaire de / et /var ?
je ne sais pas comment regarder les permissions et propriétaire de / (racine)
par contre /var c'est root:root 751 ( j'y ai pas touché c'est les permissions par défaut de Débian)
PS: redémarres-tu bien ssh à chaque changement ?
oui oui je redémarre a chaque fois
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Dernière modification par klosius (25-06-2017 21:34:00)
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
ChrootDirectory
Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.
(je ne sais pas si la trad existe, mon système étant en anglais, mais grossomodo /var/radio et les parents ne doivent être accessibles en écriture que par root).
Étant donné que ça marche quand tu utilises /home le problème doit venir de là.
Pour connaître permissions et proprio d'un dossier
(l affiche les détails, d se contente de lister les dossiers)
est ce que on peut pas chrooter sur le répertoire /var/... ?
Si à condition de respecter les exigences de sshd
et la j'arrive a me connecter et j'arrive sur /home/toto2/ et pourtant le home de toto2 est sur /var/radio pourquoi ça?
Le home définit le répertoire dans lequel l'utilisateur se retrouve une fois loggé. S'il n'existe pas, l'utilisateur se retrouve dans / (c'est pas très gênant en soi, mais il ne peut évidement rien faire dans ce dossier, par défaut). /var/radio n'existe pas dans ton chroot, l'utilisateur doit simplement se retrouver dans la racine (/home/toto2) je pense.
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
ChrootDirectory
Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.
mon dossier /var/radio/ avais comme chmod 775, donc en lisant ton commentaire... bingo je l'ai changé en 755 et hop eureka j'arrive a me connecter a /var/radio :D:D
encore une fois merci
Comme quoi la persévérance paye
" il n'y a pas de question idiote, seulement une réponse idiote" Albert Einstein
Hors ligne
Portable i7 7700HQ, 16Go RAM, GTX 1050Ti, MX 500 Crucial
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero
Hors ligne
Pages : 1