O que falta na minha configuração chroot sftp?

0

Eu segui uma meia dúzia de diferentes tutoriais sobre como configurar o chroot para usuários do sftp, mas meus usuários encarcerados ainda podem navegar pelos diretórios pai. Eu suspeito que minhas permissões não estão configuradas corretamente, porque essa é a parte que mais varia entre os tutoriais. Aqui está o que eu fiz até agora:

1) Estou usando o CentOS 5.6, onde o padrão do OpenSSH é a versão 4.3, então eu instalei manualmente a última versão 5.x. Executando sshd -v agora retorna OpenSSH_5.9p1, OpenSSL 0.9.8e-fips-rhel5.

2) Eu editei o arquivo / etc / ssh / sshd_config para alterar o subsistema sftp para o interno-sftp e adicionei:

Match user guest
ChrootDirectory %h
X11Forwarding no    
AllowTcpForwarding no
ForceCommand internal-sftp

3) sshd reiniciado.

4) Criamos um usuário "guest" com o diretório home / var / www / uploads / guest.

5) / var / www / uploads é de propriedade root: root com o modo 755.

6) / var / www / uploads / guest é de propriedade de guest: root com o modo 755.

Usando o cliente Transmitir sftp no meu Mac, eu entrei com o usuário convidado. Ele abre o diretório home do usuário por padrão, mas eu posso navegar pelos níveis de diretório e procurar outros diretórios no servidor.

Alguns tutoriais dizem que o / var / www / uploads deve ter o modo 700 ou 750; se eu fizer isso, ainda posso fazer login como o usuário convidado, mas vejo o diretório raiz do servidor por padrão e posso procurar todos os outros diretórios.

Outros tutoriais dizem que devo alterar o shell do usuário convidado para / bin / false; se eu fizer isso, não consigo fazer login como o usuário convidado. Transmit diz "O nome de usuário ou senha não foi aceito pelo servidor" e o cliente sftp da linha de comando diz "Conexão fechada" depois que eu digitei a senha.

Acho que tentei de tudo - alguém pode ver o que está faltando?

    
por arlomedia 01.07.2012 / 17:24

2 respostas

0

Parece que o ChrootDirectory deve apontar para um nível ACIMA do diretório inicial.

Então, como a casa do convidado é / var / www / uploads / guest , o ChrootDirectory deve apontar para / var / www / uploads

Isso é um TALVEZ .... outro pensamento me ocorreu:

Você instalou manualmente o openssh mais novo, removeu a versão antiga? Onde a nova versão foi instalada? às vezes , se você não for cuidadoso, coisas novas serão instaladas em / usr / local / ao invés de / usr , significando que o sftp está ativado o servidor está lendo seus arquivos de configuração de / usr / local / etc / ssh /... em vez do esperado / etc / ssh /...//>

Algo para verificar pelo menos.

    
por 01.07.2012 / 17:52
0

Eu lutei com o mesmo problema, mas resolvi isso configurando o diretório chrooted , bem como todos os diretórios pai com as seguintes permissões

1) Alterar proprietário para root:

sudo chown root [directory]

2) Removendo todas as permissões de gravação do grupo:

sudo chmod 755 [directory]

Infelizmente eu acho que isso significa que você não pode pular diretamente para uma pasta que não é de propriedade do root, mas ficará feliz em saber se alguém pode me corrigir com relação a isso!

    
por 22.01.2013 / 19:24