Como posso chroot conexões ssh?

19

Eu gostaria de configurar um chroot jail para a maioria dos usuários (não todos) que fazem login através do SSH. Eu ouvi que é possível com as versões mais recentes do openssh, mas não consegui descobrir como fazê-lo. Os How To falam de remendar uma versão antiga e o patch não está mais disponível.

Estou usando o debian etch.

    
por Malfist 13.07.2009 / 19:12

5 respostas

13

Estou usando o rssh para essa finalidade.

Você está certo, há uma nova maneira de fazer isso e é um recurso interno das versões recentes do ssh.

Aqui está um artigo sobre Undeadly .

    
por 13.07.2009 / 19:50
6

Eu só tive que configurar um usuário que seria capaz de logar via ssh e o ssh para outro servidor (que não está diretamente conectado ao mundo externo). Os links de cstamas e ericmayo foram um bom começo.

Basicamente, adicionei o seguinte ao / etc / ssh / sshd_config:

Match User myuser
  ChrootDirectory /chroot/myuser

A partir daí, eu só tive que criar o ambiente chroot abaixo de / chroot / myuser. Eu copiei / bin / bash e / usr / bin / ssh e as bibliotecas compartilhadas de que precisavam (o ldd mostrará essas). Para um ambiente maior, provavelmente faria sentido compilar versões estaticamente vinculadas dos executáveis necessários.

Bash funcionou imediatamente, para o ssh funcionar, eu também tive que criar o diretório .ssh, copiar / etc / passwd, /etc/nsswitch.conf e / lib / libnss_ * e criar / dev / null, / dev / tty e / dev / urandom via mknod.

    
por 17.07.2009 / 23:04
2
mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Você tem que editar o arquivo / etc / sshd_config e addd

ChrootDirectory /chroot/%h

E reinicie o daemon sshd.

Tudo dito, eu sinceramente acho que o sftp é uma opção melhor.

Além disso, encontrei este URL se for útil.

link

    
por 08.10.2012 / 15:26
1

Se você estiver usando a autenticação de chave pública, poderá usar a opção "command" em chaves autorizadas para configurar a cadeia chroot.

~ / .ssh / authorized_keys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host
    
por 13.07.2009 / 19:18
0

Até onde eu sei, novas versões do OpenSSH só permitem chroot para conexões SFTP. Eu tentei e funciona. Mas para o SSH, a solução disponível é o patch chrootssh. Eu navego no site SourceForge e não há arquivos, então acho que é descontinuado.

Para o Debian Etch existem alguns arquivos aqui: link

Existem outras soluções aqui: link , incluindo chrootssh.

    
por 13.07.2009 / 19:29