Proprietà o modalità fatali SFTP per la directory chroot ubuntu 12.04


12

Ho appena impostato il mio server SFTP e funziona benissimo quando lo uso dal mio primo account utente. Volevo aggiungere un utente che chiameremo "magnarp". All'inizio mi è piaciuto in sshd_config:

Subsystem sftp internal-sftp


Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Funzionava abbastanza bene, l'utente magnarp andava nella sua directory home. Ho quindi provato ad aggiungere un link simbolico ad esso.

home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"

Il collegamento simbolico funzionava bene tramite SSH ma non tramite SFTP.

Quindi quello che voglio fare ora è raggruppare Chroot sftponly su / home / DUMP e ho fatto questo:

Match group sftponly
    ChrootDirectory /home/DUMP
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

La cartella DUMP dispone delle autorizzazioni come segue.

drwxrwxrwx  5 root     root      4096 aug 18 02:25 DUMP

E questo è il codice di errore:

Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user    magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp

Risposte:


21

sshdha un certo livello di paranoia quando si tratta di directory chroot. Non penso che questo possa essere disabilitato (anche con StrictModes no). La directory chroot e tutte le directory principali devono essere impostate correttamente :

  1. La directory chroot e tutti i suoi genitori non devono avere capacità di scrittura di gruppo o del mondo (es. chmod 755)
  2. La directory chroot e tutti i suoi genitori devono essere di proprietà di root.

Nel tuo caso, l'errore di accesso può essere corretto con l' chmod 755 /home/DUMP intento apparente di avere una directory scrivibile in tutto il mondo in cui sftpuser può accedere e chiunque possa inserire i file può essere risolto trasformando quella directory in una sottodirectory di/home/DUMP/


1
Ha funzionato come un fascino! Grazie. Ora devo solo correggere tutte le sottodirectory e anche il mio sistema NFS :)
Jonathan,

0

A) Quale sarebbe lo scopo di creare chroot se creare simlink aiutasse a eludere il chroot? (Qualsiasi utente potrebbe caricare un simlink e quindi ottenere l'accesso all'intero filesystem)

B) Un altro chmod 777 e verrai infiammato da theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Vedi http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html per capire perché openssh è così esigente riguardo ai permessi della directory chroot.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.