Permitindo SFTP e SSH com diretório chroot

Permitindo SFTP e SSH com diretório chroot

Estou tentando configurar um usuário com acesso SFTP e acesso SSH limitado. Portanto, fiz o chroot do usuário e configurei-o basicamente exatamente como especificado emeste tutorial. No entanto, embora eu consiga fazer o ssh no servidor com êxito, quando tento me conectar por meio de uma conexão SFTP, ele simplesmente diz Falha na conexão.

Pesquisa e tentativas de correção

Tentei procurar por qualquer coisa que possa explicar como fazer isso, mas só consegui encontrarEste tópicoque não teve nenhuma resposta. Além disso, não encontrei nenhum artigo online que mostrasse como isso poderia ser feito.

Também tentei copiar a pasta /bininteira /libpara o diretório chroot para garantir que não houvesse nenhum comando ausente que pudesse estar causando a falha. A análise /var/log/auth.lognão produziu resultados, inclusive porque o único log foi que a conexão foi fechada pelo usuário, inclusive quando eu LogLevel Debug2entrei /etc/ssh/sshd_config. A tentativa de conexão usando uma conexão SCP no WinSCP me permite ver os arquivos, mas não consigo copiar nada para minha unidade local ou vice-versa

Arquivo de configuração SSHD (seção relevante):

Match User test_user
    ChrootDirectory /home/test_user

Responder1

Eventualmente, encontrei a jailkitferramenta projetada para automatizar o encarceramento de usuários, em vez de fazê-lo manualmente, o que originalmente estava tentando fazer.

Para configurar o diretório chroot, usei as seguintes etapas

Instalação (no Ubuntu) A instalação da fonte pode ser encontradaaqui

sudo apt install jailkit

Configuração de diretório

Uma lista de vários pacotes aos quais permitir acesso pode ser encontrada em /etc/jailkit/jk_init.ini. Eu também instalei o git dessa maneira depois de configurá-lo

sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp

Formato geral abaixo

sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>

Prender o usuário

sudo jk_jailuser -m -j /srv/test_user test_user

Mudando de casca

Finalmente, o shell especificado em <chroot_directory>/etc/passwddeve ser alterado de /usr/sbin/jk_lshpara /bin/bash. Observe que deve haver apenas as entradas para test_user, root e possivelmente outro login

A partir daí, você pode fazer login via ssh ou sftp/scp e acessar tudo conforme o esperado. Observe que para fazer login via chave pública, você precisará configurar o ~/.ssh/authorized_keysarquivo

informação relacionada