
Instalei o jailkit em meu servidor CentOS 5.8 e configurei-o de acordo com os guias online que encontrei. Estes são os comandos que foram executados como root:
mkdir /var/jail
jk_init -j /var/jail extshellplusnet
jk_init -j /var/jail sftp
adduser testuser; passwd testuser
jk_jailuser -j /var/jail testuser
Em seguida, editei /var/jail/etc/passwd
para alterar o shell de login para testuser
dar /bin/bash
-lhes acesso a um shell bash completo via SSH.
Em seguida, editei /var/jail/etc/jailkit/jk_lsh.ini
para ficar parecido com o seguinte (não tenho certeza se isso está correto)
[testuser]
paths= /usr/bin, /usr/lib/
executables= /usr/bin/scp, /usr/lib/openssh/sftp-server, /usr/bin/sftp
O testuser é capaz de se conectar via SSH e está limitado a visualizar apenas o diretório chroot jail, e também pode fazer login via SFTP, porém todo o sistema de arquivos está visível e pode ser percorrido.
Saída SSH:
> ssh testuser@server
Password:
Last login: Sat Oct 20 03:26:19 2012 from x.x.x.x
bash-3.2$ pwd
/home/testuser
Saída SFTP:
> sftp testuser@server
Password:
Connected to server.
sftp> pwd
Remote working directory: /var/jail/home/testuser
O que pode ser feito para bloquear o acesso SFTP à prisão?
Responder1
Embora eu definitivamente sinta a dor do doublesharp (também tive esse problema), a resposta do doublesharp aqui não deve ser usada (não é segura). O problema aqui é que o internal-sftp do sshd está sendo executado antes que /usr/sbin/jk_chrootsh possa ser executado, O QUE PRECISA SER EXECUTADO POR MOTIVOS DE SEGURANÇA. Portanto, tudo que você precisa fazer para corrigir esse problema é certificar-se de que seu arquivo /etc/ssh/sshd_config tenha esta linha...
Subsystem sftp /usr/lib/openssh/sftp-server
... e NÃO esta linha ...
Subsystem sftp internal-sftp
E também certifique-se de não fazer nenhuma correspondência de usuário/grupo neste arquivo. A grande idéia aqui é que, se você for usar o jailkit para colocar usuários em quarentena em um sistema Linux, precisará forçar todos os usuários a usar /usr/sbin/jk_chrootsh, que pode ativar sua própria funcionalidade sftp, se necessário.
Depois de fazer alterações em /etc/ssh/sshd_config, certifique-se de reiniciar o sshd (o método pode variar dependendo do seu sistema).
Responder2
Adoraria ser corrigido se houver problemas com isso, mas a configuração a seguir parece ter funcionado.
Alterou o usuário em /etc/passwd
(não /var/jail/etc/passwd
) que foi modificado pelo jailkit:
Originaltestuser:503:503::/var/jail/./home/testuser:/usr/sbin/jk_chrootsh
Modificadotestuser:503:503::/home/testuser:/bin/bash
Configuração adicionada a /etc/ssh/sshd_config
:
Match Group testuser
ChrootDirectory /var/jail/
Agora, ao fazer login via SSH
ou SFTP
o usuário está limitado a /var/jail
e abaixo e o padrão é o diretório inicial em/var/jail/home/testuser