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 07/03/2019, à 12:23

Demg

Empêcher la remontée d'un dossier parent

Bonjour à tous,

Voici la configuration actuelle, je possède un serveur Ubuntu 16.04 LTS et un poste sous Ubuntu 10.04 LTS. Tout deux sont en réseau local (sans internet). Plusieurs utilisateurs (sur un compte commun) viennent sur le poste afin de déposer des fichiers sur le serveur via l'interface graphique par le biais du connecteur réseau mis en place par "Raccourcis -> Se connecter à un serveur..." en SSH.
Sauf que je me suis rendu compte que n'importe quel utilisateur pouvait remonter dans l'arborescence et donc accéder aux dossiers système. Si on est dans un monde de bisounours aucun soucis tongue sauf qu'on est pas à l'abri d'avoir un petit rebelle roll
Du coup, j'ai mené des recherches pour "cloisonner" l'utilisateur à n'accéder qu'aux dossiers de partage ou stockage du serveur.
J'ai testé ce tuto : ICI même si cela ne répond que partiellement à ce que je souhaite avoir.

Sauf que je suis confronté à une erreur lors du redémarrage du service SSH :

root@ciborg-server-2:/ciborg/store/test_partage# service ssh restart
Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details.

Voici la partie modifiée dans le sshd_config :

Subsystem sftp /usr/lib/openssh/sftp-server

#insertion du groupe chroot
Match group sftpuser
        ChrootDirectory /ciborg/store/test_partage/test_chroot/
        X11Forwarding no
        AllowTcpForwarding no

Peut-être qu'il y a d'autres (ou meilleures) solutions pour arriver à mes fins : empêcher les utilisateurs de remonter dans le dossier parent tout en pouvant déposer des fichiers sur les différents répertoires utiles.

Hors ligne

#2 Le 07/03/2019, à 14:19

bruno

Re : Empêcher la remontée d'un dossier parent

Bonjour,

Ce que tu as fait devrait fonctionner à condition que le dossier /ciborg/store/test_partage/test_chroot/ appartienne à root et que tes utilisateurs soient membres du groupe sftpuser et il manque une directive :

Match group sftpuser
        ChrootDirectory /ciborg/store/test_partage/test_chroot/
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

Après avoir relancer le service ssh donne, comme demandé, le retour de :

systemctl status ssh
journalctl -xe

Hors ligne

#3 Le 07/03/2019, à 14:27

mazarini

Re : Empêcher la remontée d'un dossier parent

Bonjour,
Eventuellement : See "systemctl status ssh.service" and "journalctl -xe" for details.
Donc il faudrait regarder le résultat de ces 2 commandes pour voir ce qui coince.

Ton sshd_config semble bon si le groupe sftpuser existe.


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#4 Le 11/03/2019, à 15:03

Demg

Re : Empêcher la remontée d'un dossier parent

bruno a écrit :

Bonjour,

Ce que tu as fait devrait fonctionner à condition que le dossier /ciborg/store/test_partage/test_chroot/ parotidienne à root et que tes utilisateurs soient membres du groupe sftpuser et il manque une directive :

Match group sftpuser
        ChrootDirectory /ciborg/store/test_partage/test_chroot/
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

Après avoir relancer le service ssh donne, comme demandé, le retour de :

systemctl status ssh
journalctl -xe

Désolé du retard de réponse, je n'étais pas retourné au boulot depuis...:P

Alors pour te répondre : j'ai ajouté le ForceCommand
Le ls -l de mon dossier donne ça

drwxr-x--- 3 root sftpuser 4096 mars 4 12:56 test_chroot

Mais j'ai toujours le message d'erreur sad:(

mazarini a écrit :

Bonjour,
Eventuellement : See "systemctl status ssh.service" and "journalctl -xe" for details.
Donc il faudrait regarder le résultat de ces 2 commandes pour voir ce qui coince.

Ton sshd_config semble bon si le groupe sftpuser existe.

Je n'ai pas systemctl d'installer, le journalctl me retourne un fichier de 123Ko que j'ai parcouru. J'ai l'impression que la directive UsePAM n'est pas appréciée avec un bloc Match

Je vais refaire un test

Hors ligne

#5 Le 11/03/2019, à 15:21

bruno

Re : Empêcher la remontée d'un dossier parent

Au vu de ce que tu dis en #1 : Ubuntu 16.04 et le retour « Job for ssh.service failed » tu as forcément systemd installé et donc la commande systemctl est disponible.
Je passe sur le client en version totalement obsolète 10.04 (plus de mises à jour depuis 4ans hmm)…

Il faut donner un retour complet des commandes demandées, i.e. la commande et son retour ⇒ en #4 on ne sait pas ce que tu as vérifié avec ta commande ls -l. En l’occurrence il aurait fallu, le retour complet de :

ls -al /ciborg/store/test_partage/test_chroot/

Note bien que si le redémarrage du service ssh échoue, c'est très certainement dû à une erreur dans le fichier de configuration.

Dernière modification par bruno (Le 11/03/2019, à 15:21)

Hors ligne

#6 Le 11/03/2019, à 15:50

Demg

Re : Empêcher la remontée d'un dossier parent

Désolé j'avais fait un ls -l du dossier parent big_smile

root@ciborg-server-2:/# ls -al /ciborg/store/test_partage/test_chroot/
total 12
drwxr-x--- 3 root sftpuser 4096 mars 4 12:56 .
drwxr-xr-x 32 nobody nogroup 4096 mars 11 12:15 ..
drwxr-x--- 3 root sftpuser 4096 mars 4 13:00 operateur

Hors ligne

#7 Le 11/03/2019, à 16:37

bruno

Re : Empêcher la remontée d'un dossier parent

Ok, mais cela n'explique pas pourquoi tu n'as pas la commande systemctl. Ce n'est pas normal !
Sur le serveur donne le retour de :

lsb_release -a
apt-cache policy systemd

Et pour le SSH :

grep sftpuser /etc/group
cat /etc/ssh/sshd_config

Dernière modification par bruno (Le 11/03/2019, à 16:37)

Hors ligne

#8 Le 11/03/2019, à 17:03

Demg

Re : Empêcher la remontée d'un dossier parent

bruno a écrit :

Ok, mais cela n'explique pas pourquoi tu n'as pas la commande systemctl. Ce n'est pas normal !
Sur le serveur donne le retour de :

lsb_release -a
apt-cache policy systemd

Et pour le SSH :

grep sftpuser /etc/group
cat /etc/ssh/sshd_config

Laisse... j'avais mal tapé la commande neutral

Voici les résultats pour le reste, là j'ai commenté les lignes pour pouvoir travailler sur mon poste wink :

root@ciborg-server-2:/# grep sftpuser /etc/group
sftpuser:x:1001:

root@ciborg-server-2:/# cat /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

#insertion du groupe chroot
#Match group sftpuser
#       ChrootDirectory /ciborg/store/SECTIONS/SYMI/test_chroot/
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand internal-sftp
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Hors ligne

#9 Le 11/03/2019, à 17:14

bruno

Re : Empêcher la remontée d'un dossier parent

Ok. Il faut déplacer le bloc Match group en fin de fichier:

…

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Subsystem sftp /usr/lib/openssh/sftp-server

#insertion du groupe chroot
Match group sftpuser
       ChrootDirectory /ciborg/store/SECTIONS/SYMI/test_chroot/
       X11Forwarding no
       AllowTcpForwarding no
       ForceCommand internal-sftp

Sinon la dernière directive qui était UsePAM yes est considérée comme faisant partie du bloc Match group ce qui provoque une erreur.

Dernière modification par bruno (Le 11/03/2019, à 17:17)

Hors ligne