Jailkit não bloqueia SFTP, funcionando para SSH

Jailkit não bloqueia SFTP, funcionando para SSH

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/passwdpara alterar o shell de login para testuserdar /bin/bash-lhes acesso a um shell bash completo via SSH.

Em seguida, editei /var/jail/etc/jailkit/jk_lsh.inipara 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 SSHou SFTPo usuário está limitado a /var/jaile abaixo e o padrão é o diretório inicial em/var/jail/home/testuser

informação relacionada