Chroot SFTP: sshd_selinux_copy_context: getcon a échoué avec l'autorisation refusée [postauth]

0

Je suis coincé avec créer chroot SFTP. Je peux me connecter, mais je reçois une «autorisation refusée», peu importe ce que j'essaie.

sftp webadm@<ip>:
webadm@<ip>'s password:
Connected to <ip>.
Changing to: /
sftp> ls
remote readdir("/"): Permission denied
sftp>

C'est ce que j'ai fait:

/etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        PermitTunnel no
        X11Forwarding no

J'ai créé l'utilisateur webadm

useradd webadm
passwd webadm
groupadd sftponly
gpasswd -a webadm sftponly
usermod -g sftponly webadm
groups webadm
webadm : sftponly

J'ai suivi ce guide https://wiki.archlinux.org/index.php/SFTP_chroot

ll /home/
drwx------+ 5 root   root   4096 May 31 23:49 webadm
ll /home/webadm/
-rw-r--r--.  1 webadm sftponly    5 May 31 23:34 test
getfacl /home/webadm/
getfacl: Removing leading '/' from absolute path names
# file: home/webadm/
# owner: root
# group: root
user::rwx
group::---
mask::---
other::---

Il est écrit que root doit posséder le répertoire chroot, mais comment l’utilisateur Webadm peut-il accéder au contenu de son répertoire? j'ai essayé de

setfacl -m u:webadm:rwx /home/webadm/

mais alors je ne pouvais même pas me connecter.

J'ai aussi essayé de faire correspondre l'utilisateur dans sshd, mais le même effet

Match User webadm
       ChrootDirectory /home/webadm
       AllowAgentForwarding no
       X11Forwarding no
       AllowTcpForwarding no
       #PermitTTY no
       ForceCommand internal-sftp
       PermitTunnel no

Selinux est en mode permissif. La seule erreur que je peux voir est dans / var / log / secure

Accepted password for webadm from <ip> port 19669 ssh2
pam_unix(sshd:session): session opened for user webadm by (uid=0)
sshd_selinux_copy_context: getcon failed with Permission denied [postauth]

Alors qu'est-ce que je fais mal? Toute aide vraiment appréciée. Je vous remercie.

Sigi
la source
Quel système d'exploitation utilisez-vous?
Jakuje
Dernières CentOS 7
Sigi
votre utilisateur webadma uid=0? C'est suspect.
Jakuje
Cela ne veut-il pas dire que cette session a été ouverte par ssh deamon, qui tourne sous root?
Sigi
de toute façon, j'ai complètement désactivé selinux et maintenant le message d'erreur avec sshd_selinux_copy_context a disparu. Je dois éditer le titre de la question plus tard. Mais le résultat reste le même ...
Sigi

Réponses:

0
drwx------+ 5 root   root   4096 May 31 23:49 webadm

Essayez de définir les autorisations sur ce répertoire sur 755 (rwxr-xr-x) plutôt que sur 700. L'ID webadm a besoin des autorisations Lire et eXamine sur le répertoire pour afficher les fichiers qu'il contient.

Le serveur ssh ira bien avec le directeur étant lisible. La fonctionnalité chroot exige seulement que le répertoire ne soit pas accessible en écriture . Dans le manuel de sshd_config (soulignement ajouté):

ChrootDirectory
Spécifie le chemin d'accès d'un répertoire à chroot (2) après l'authentification. Au démarrage de la session, sshd (8) vérifie que tous les composants du chemin sont des répertoires appartenant à la racine et ne pouvant être écrits par aucun autre utilisateur ou groupe . Après le chroot, sshd (8) change le répertoire de travail en répertoire de base de l'utilisateur.

Je vous suggère également de supprimer la liste de contrôle d'accès du répertoire, sauf si vous en avez besoin pour une autre raison. Je ne crois pas que SSHD tiendra compte de la liste de contrôle d'accès pour déterminer si le répertoire convient comme répertoire chroot.

Kenster
la source