SFTP Chroot Ubuntu 10.10

1

Estou tentando dar a um SFTP apenas acesso ao seu diretório pessoal para um usuário.

Esta é a linha / etc / passwd para o usuário:

bob:x:1003:1003::/home/bob:/bin/false

Eu editei o arquivo / etc / ssh / sshd_config assim:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp 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

Match user bob
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Então eu reinicio o ssh: sudo service ssh restart

Se eu tentar sftp [email protected] , tudo funcionará bem.

Então eu tento Chroot bob na casa dele, então eu adiciono ChrootDirectory /home/bob no lugar certo:

Match user bob
            ChrootDirectory /home/bob
            AllowTcpForwarding no
            X11Forwarding no
            ForceCommand internal-sftp

Eu mudei a permissão para voltar para casa:

drwxr-xr-x  3 root    root      4096 2014-02-27 13:13 bob

Agora, quando eu tento o sftp [email protected], a resposta é:

Write failed: Broken pipe
Connection closed

minha versão do OpenSSH é 1: 5.5p1-4ubuntu6

Onde estou errado ??? Onde posso procurar resolver o meu problema?

EDITAR: depois de um pouco de depuração, encontrei esta mensagem de erro:

bad ownership or modes for chroot directory component "/"
    
por bicccio 27.02.2014 / 13:58

2 respostas

1

Acho que você só precisa especificar ChrootDirectory /home para substituir / home / bob automagicamente. Caso contrário, está procurando em /home/bob/bob

Editar: Certifique-se também de que o diretório chroot seja de propriedade de root e não seja de grupo gravável. Se você precisa ter um diretório gravável, então você precisa criar uma subpasta

chown root /home/bob
chmod go-w /home/bob
mkdir /home/bob/writeable
chown bob:sftponly /home/bob/writeable
chmod ug+rwX /home/bob/writeable
    
por 27.02.2014 / 14:05
0

man sshd_config

Specifies the pathname of a directory to chroot(2) to after authentication.  All components of the pathname must be root-owned directories that are not writable by any other user or group.

Isso funciona porque / home é de propriedade do root e não pode ser gravada por outros usuários

Match user pippo
        ChrootDirectory /home
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Desta forma, isso não funciona, porque o ChrootDirectory / home / pippo não é de propriedade do root e é gravável por outros usuários

Match user pippo
        ChrootDirectory /home/pippo
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp
    
por 27.02.2014 / 15:05