chroot para usuário sftp

1

Eu segui vários guias na internet sobre como restringir um usuário para que ele não possa alterar / ver arquivos fora de seu diretório pessoal.

Então eu criei um usuário, vamos chamá-lo de john e eu também criei um grupo chamado sftp que é seu grupo principal. Eu também atualizei seu diretório pessoal para o diretório que eu gostaria que ele fosse preso. (Nesse caso /var/www/ ) Então eu adicionei algumas linhas de configuração para /etc/ssh/sshd_config

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcoForwarding no

Não funcionou com isso. John conseguiu acessar as directoras fora de seu diretório pessoal. Então tentei especificá-lo para o usuário.

Match User john
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

Não funcionou nem o john conseguiu acessar todos os arquivos. Então, eu até tentei usar ambas as configurações, mas nenhuma funcionou.

O shell do Johns é /bin/bash , embora tenha sido mencionado em alguns guias para defini-lo como /bin/false ou /bin/nologin , mas é claro que não consigo me conectar com o Filezilla, por exemplo.

A distribuição é o Ubuntu 14.04.

    
por daniel7558 24.09.2014 / 13:46

1 resposta

0

Altere a próxima linha no bloco Match Group sftp :

ChrootDirectory /var/www/%u

caso o diretório em / var / www que você criou seja nomeado após o usuário como o nome do diretório, dessa forma você poderá usar vários usuários chrooted em seu /var/www/user-directory.

Você também precisará verificar as permissões, o diretório / var / www / user-name deve ter root como usuário e grupo e ter 755 permissões. Dentro desse diretório você precisará criar alguns diretórios ou o que você quer (como diretórios dentro e fora), esses diretórios devem ter o usuário como dono e o grupo sftp como grupo e eu recomendaria 700 permissões ou o que você achar melhor. Depois que o usuário conseguir acessar e acessar os diretórios, não poderá escrever nada no diretório raiz nem ir além da árvore / var / www / user.

Configurar o shell como / bin / false ou / bin / nologin só permitirá conexões sftp, o que é interessante caso você queira apenas acesso sftp, caso contrário o usuário poderá enviar ssh para o sistema, o que você pode não querer.

EDIT: A propósito, a linha AllowTcoForwarding no no bloco sftp está errada, modifique-a para a direita ( AllowTc p Forwarding ) caso não seja apenas um erro de digitação aqui. / p>     

por 24.09.2014 / 15:19