Bonjour,
Nous sommes actuellement sur une Debian 8. Nous souhaitons cloisonné un user pour une connexion ssh.
Bizarrement en appliquant les mêmes configurations que la debian 7 sa ne fonctionne pas.
Les messages que nous avons dans les logs /var/log/auth.log concernent le chroot
fatal: bad ownership or modes for chroot directory "/var/www/mon-user"
lors de l'activation de la configuration dans le fichier /etc/ssh/sshd_config:
Match User knp_prod
PasswordAuthentication yes
ChrootDirectory /var/www/mon-user
ForceCommand internal-sftp
ForceCommand internal-ssh
X11Forwarding no
AllowTCPForwarding no
En effet il y a un changement dans l'activation du chroot sur debian 8 il est impératif que root soit propriétaire c'est le cas
Par la suite il est impossible de se connecter en ssh et nous avons pas de message pertinent pour debuger.
L'authentification fonctionne mais "mon-user" est éjecté.
Connexion en ssh -v:
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering DSA public key: /root/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
knp_prod@172.31.1.30's password:
debug1: Authentication succeeded (password).
Authenticated to 172.x.x.x ([172.x.x.x]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Write failed: Broken pipe
moi:38-root-10.x.x.x-~# ssh -v mon-user@172.x.x.x
Votre aide serait la bienvenue
# more verbose
Posté par nono14 (site web personnel) . Évalué à 3.
plusieurs "v" ?
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: more verbose
Posté par hakhak91 . Évalué à 1.
pas compris désolé
[^] # Re: more verbose
Posté par jihele . Évalué à 2.
man ssh
Tu peux utiliser -vvv pour avoir plus de messages de debug.
[^] # Re: more verbose
Posté par hakhak91 . Évalué à 1.
# port salut, c'est marqué dessus
Posté par NeoX . Évalué à 3.
bad ownership :
en gros tu as un utilisateur mon-user avec les UID/GID disons 1003
mais le dossier /var/www ou /var/www/mon-user n'appartient pas à l'utilisateur 1003
bad modes :
eventuellement c'est les "droits" sur ces dossiers qui ne sont pas bons
[^] # Re: port salut, c'est marqué dessus
Posté par hakhak91 . Évalué à 1.
Le dossier appartient à l'utilisateur que nous allons nommé test.
voici comment il est crée
[^] # Re: port salut, c'est marqué dessus
Posté par NeoX . Évalué à 2.
il sert à quoi le
echo test:test
?à quel moment tu definis les droits du dossier /var/www et ceux de /var/www/test ?
[^] # Re: port salut, c'est marqué dessus
Posté par hakhak91 . Évalué à 1.
C'est le password du user test qui sert à illustrer ma problématique.
[^] # Re: port salut, c'est marqué dessus
Posté par BAud (site web personnel) . Évalué à 4.
Sans doute pas la meilleure idée au monde, surtout si le mot de passe est malencontreusement
test
:/Vu le nombre de scans ssh qui font ce genre de tentatives, ce serait limite une incitation à la compromission ;-)
[^] # Re: port salut, c'est marqué dessus
Posté par hakhak91 . Évalué à 1.
C'est pour mettre en exemple un utilisateur.
Le user test sera supprimé une fois la solution trouvée et nous allons appliquer les modifications sur l'utilisateur en production.
[^] # Re: port salut, c'est marqué dessus
Posté par BAud (site web personnel) . Évalué à 2.
Je vais le reformuler autrement :
test
Cela peut se passer en moins de 2 jours, du fait de la large automatisation de ces scans et leur utilisation par des fermes de bots. Après, à toi d'évaluer le risque.
[^] # Re: port salut, c'est marqué dessus
Posté par hakhak91 . Évalué à 1.
C'est modifié
[^] # Re: port salut, c'est marqué dessus
Posté par hakhak91 . Évalué à 1.
# root:root
Posté par M.Poil (site web personnel) . Évalué à 1.
De mémoire le dossier /var/www doit appartenir à root:root en 755
L'utilisateur mon-user doit être chroot dans /var/www (et pas /var/www/mon-user)
c'est valable également sur debian7, je penche pour une erreur de recopie :)
Is it a Bird? Is it a Plane?? No, it's Super Poil !!!
[^] # Re: root:root
Posté par hakhak91 . Évalué à 1.
Avec la configuration suivante dans /etc/ssh/sshd_config
Avec la configuration suivante dans /etc/ssh/sshd_config
[^] # Re: root:root
Posté par NeoX . Évalué à 2.
c'est deja une evolution
quelque part tu lui dis que cet utilisateur ou ce serveur SSH n'autorise que le SFTP
tu tente de te connecter en SSH il t'a laissé entré, n'a pas vu de sftp, et a fermé la connexion
[^] # Re: root:root
Posté par hakhak91 . Évalué à 1.
Modification pour la connexion ssh
J'ai testé la désactivation internal-ssh. Possible que la balise n'existe pas en modifiant le path du bash
OU
remplacer par
En root
[^] # Re: root:root
Posté par NeoX . Évalué à 2.
parce qu'il faut comprendre que le chroot c'est un nouveau /
donc le shell de l'utilisateur est bien /bin/bash
si le chroot est /var/www
et que le shell est configuré en /bin/bash
le binaire doit etre dans /var/www/bin/bash
si le home de l'utilisateur est configuré en /home/user
il doit etre mis dans /var/www/home/user
[^] # Re: root:root
Posté par hakhak91 . Évalué à 1.
Nous avons ajouté le répertoire /bin/bash dans /var/www/bin/bash
Sa ne fonctionne toujours pas.
[^] # Re: root:root
Posté par hakhak91 . Évalué à 1.
Je l'ai aussi chrooté sur /var/www
sans succès.
# maintenant que j'y penses
Posté par NeoX . Évalué à 2.
plutot que de vouloir faire un utilisateur chrooté dans /var/www
pourquoi ne pas dire à apache d'aller lire de dossier /home/test/public_html
le resultat est le meme, ton utilisateur accede uniquement à son home
et apache peut aller lire les fichiers qui sont dedans.
[^] # Re: maintenant que j'y penses
Posté par hakhak91 . Évalué à 1.
Ma demande n'est pas en rapport avec apache. Mais sa aurait pu être une très bonne idée dans un autre contexte.
[^] # Re: maintenant que j'y penses
Posté par NeoX . Évalué à 2.
alors pourquoi vouloir chrooter l'utilisateur dans /var/www
qui par definition appartient à apache2/ngnix/lighthttpd
plutot que dans un dossier /chroot/ dedié à ca ?
[^] # Re: maintenant que j'y penses
Posté par hakhak91 . Évalué à 1.
J'ai trouvé la solution!!
Je ferai une belle explication demain
MERCI MERCI pour votre aide ;-)
# Solution
Posté par hakhak91 . Évalué à 1.
légende lorsque le prompt est en # =>root si $ =>user (test)
Vous trouverez les étapes pour chrooter l'utilisateur en ssh. (Nous nous sommes largement inspiré du site suivant: https://debian-facile.org/viewtopic.php?id=9607)
1)installation du packet bash-static
2)Pour faciliter l'administration nous allons créer un groupe sshchroot
3)Création de l'utilisateur test
4)mettre l'utilisateur root propriétaire du home de test sinon la connexion ssh sera refusée
5)petit script qui vous activera des commandes supplémentaire pour le user test
Lancez le script dans /home/test
6)Editez le fichier de conf ssh pour enfin chrooter la connexion
7)Petit restart du service ssh
8)Test avec le user test
9) Je ne peux pas editez dans home de test
C'est normal seul root doit être propriétaire. Les droits plus permissifs sont les suivants:
chmod 755 si vous donnez des trop permissifs le ssh chrooter ne fonctionnera pas. Dans ce cas créer un répertoire dont l'utilisateur a full access.
exemple:
Encore merci pour vos propositions, suggestions et votre aide.
[^] # Re: Solution
Posté par hakhak91 . Évalué à 1.
Rectification pour
4)mettre l'utilisateur root propriétaire du home de test sinon la connexion ssh sera refusé
plutôt
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.