Resultado do SFTP ChRoot em tubo quebrado


7

Eu tenho um site que eu quero adicionar algum acesso restrito a uma subpasta. Para isso, decidi usar o CHROOT com SFTP (segui principalmente este link: http://shapeshed.com/chroot_sftp_users_on_ubuntu_intrepid/ )

Por enquanto, criei um usuário (sio2104) e um grupo (magento). Após seguir o guia, minha lista de pastas fica assim:

-rw-r--r--  1 root root       27 2012-02-01 14:23 index.html
-rw-r--r--  1 root root       21 2012-02-01 14:24 info.php
drwx------ 15 root root     4096 2012-02-25 00:31 magento

Como você pode ver, eu mostrei root: raiz da pasta magento que eu queria prender o usuário e ... todo o resto, a propósito. Também na pasta magento, eu mostro sio2104: magento tudo para que eles possam acessar o que querem. Por fim, adicionei isso ao arquivo sshd_config:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Match Group magento
        ChrootDirectory /usr/share/nginx/www/magento
        ForceCommand internal-sftp
        AllowTCPForwarding no
        X11Forwarding no
        PasswordAuthentication yes

#UsePAM yes

E o resultado é ... bem, posso digitar meu login, senha e tudo terminou com um erro de "tubo quebrado".

$ sftp sio2104@10.20.0.50
[....some debug....]
sio2104@10.20.0.50's password: 
debug1: Authentication succeeded (password).
Authenticated to 10.20.0.50 ([10.20.0.50]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Write failed: Broken pipe
Connection closed

O modo verboso não oferece nada para ajudar. Alguém tem uma idéia do que eu fiz de errado? Se eu tentar fazer login com ssh ou sftp com meu usuário pessoal, tudo funcionará bem.


11
O que o log do servidor OpenSSH diz?
gertvdijk

Qual versão do OpenSSH o servidor está executando?
Cristian Ciupitu

11
Problema típico: todos os diretórios pai devem pertencer à raiz e apenas o usuário pode ter permissões de gravação. Veja também saída de /var/log/auth.log.
Koppor

Respostas:


4

Eu tive o mesmo problema.

O chroot-dir deve ser definido como raiz do proprietário e raiz do grupo. (raiz do chown: root chroot-dir)


Isto é. O chroot-dir é magento. E como foi dito no tutorial, removi o direito a todos ... talvez tenha sido aí que cometi um erro?
Patrick Pruneau

Se fosse um erro de permissão, você não conseguiria obter autenticação passada. Você está recebendo autenticação passada, portanto, algo mais está impedindo que sua sessão seja iniciada. Qual é o seu Matchbloqueio sshd_config?
UtahJarhead

4

Tente ter seu diretório padrão diferente do diretório chroot.

Eu configurei / home / ftpman como meu diretório padrão.

vi /etc/passwd

..
ftpman:x:1001:1002::/home/ftpman:/bin/bash

e

ls -la /home

...
drwxr-xr-x  5 ftpman sftponly 4096 Jun 25 11:56 ftpman

Então eu tenho o diretório chroot definido como /. E funciona para mim

vi /etc/ssh/sshd_config

...
Match Group sftponly
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /
  ForceCommand internal-sftp

3
Praticamente não há chroot na sua resposta.
Cristian Ciupitu

1

Não tenho 100% de certeza disso, mas, até onde eu entendo o processo chroot, o SSHd bifurcará seu usuário primeiro e depois tentará chroot. Obviamente, isso falhará, pois o diretório não pode ser acessado sio2104no sistema.

Tente afrouxar a permissão do sistema de arquivos na magentopasta ( chmod o+rx).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.