Propriedade ou modos incorretos fatais de SFTP para o diretório chroot ubuntu 12.04

12

Acabei de configurar meu servidor SFTP e ele funciona bem quando o uso na minha primeira conta de usuário. Eu queria adicionar um usuário que chamaremos de 'magnarp'. No começo eu fiz assim em sshd_config:

Subsystem sftp internal-sftp


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

Isso funcionou bem o suficiente, o usuário magnarp entrou em seu diretório pessoal. Tentei então adicionar um link simbólico a ele.

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

O link simbólico funcionou bem via SSH, mas não pelo SFTP.

Então, o que eu quero fazer agora é o grupo Chroot sftponly para / home / DUMP e eu fiz assim:

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

A pasta DUMP tem permissões da seguinte maneira.

drwxrwxrwx  5 root     root      4096 aug 18 02:25 DUMP

E este é o código de erro:

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
Jonathan
fonte

Respostas:

21

sshdtem um certo nível de paranóia quando se trata de diretórios chroot. Eu não acho que isso possa ser desativado (mesmo com StrictModes no). O diretório chroot e todos os diretórios pai devem estar configurados corretamente :

  1. O diretório chroot e todos os seus pais não devem ter recursos de gravação em grupo ou mundo (ou seja chmod 755)
  2. O diretório chroot e todos os seus pais devem pertencer à raiz.

No seu caso, o erro de login pode ser corrigido com chmod 755 /home/DUMP Sua intenção aparente de ter um diretório gravável em todo o mundo no qual o sftpuser possa efetuar login e todos possam colocar arquivos podem ser resolvidos, tornando esse diretório um subdiretório de/home/DUMP/

DerfK
fonte
1
Trabalhou como um encanto! Obrigado. Agora eu só tenho que corrigir todos os sub-diretórios e meu sistema NFS bem :)
Jonathan
0

A) Qual seria o sentido de criar chroot se criar links simbólicos ajudasse a evitá-lo? (Qualquer usuário pode fazer upload de um simlink e obter acesso a todo o sistema de arquivos)

B) Mais um chmod 777 e você ficará encantado com theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Consulte http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html para entender por que o openssh é tão exigente quanto às permissões do diretório chroot.


fonte