SSH e SFTP Setup usando sshd_config

0

Estou ciente de que isso é segurança através da obscuridade, no entanto, isso é para fins de treinamento e não será acessível pela Internet. Ele será usado apenas como uma ferramenta interna.

Eu olhei o seguinte link: Como desativar o sftp para alguns usuários, mas mantenha ssh ativado?

O problema é que ele não responde à minha pergunta, descrita abaixo:

Estou tentando configurar um servidor virtual que permite que um usuário efetue login no servidor usando sftp e outro usuário efetue login no servidor usando ssh.

A parte sftp funciona e é feita forçando o internal-sftp dentro do arquivo sshd_config mostrado mais adiante nesta questão. Esta parte funciona porque não permite que o usuário faça o login no servidor usando o ssh, e apenas permite o acesso ao jail sftp que eu criei.

Para o outro usuário que só é capaz de acessar o chroot jail via ssh, eu não tenho certeza de como desaprovar o acesso via sftp. O problema é que eu criei especificamente uma cadeia chroot para esse usuário para evitar comandos como ls e cat, no entanto, se o usuário acessa o servidor usando sftp, eles são capazes de usar esses comandos.

A seção dentro do / etc / ssh / sshd_config é a seguinte:

Match User test1
        ChrootDirectory /home/jail
        X11Forwarding no
        AllowTcpForwarding no

# Match Group sftpusers
Match User test2
        ChrootDirectory /sftp/guestuser
        ForceCommand internal-sftp
        AllowUsers test2

Eu tentei adicionar:

ForceCommand Subsystem sftp /bin/false or
ForceCommand sftp /bin/false or
Subsystem sftp /bin/false or
to
Match User test1

No entanto, nenhuma das adições mencionadas funciona com o sshd_config.

Então, minha pergunta é:

Existe uma maneira de impedir que o usuário1 acesse o servidor via sftp? Se não há uma maneira de remover certos comandos do sftp, como ls ou cat?

Qualquer conselho seria muito apreciado.

    
por Kyhle Ohlinger 26.07.2017 / 13:53

1 resposta

0

A maneira mais simples é criar um script que cuida disso. Adicionar

Match User test1
  ForceCommand /path/to/your/script.sh

E o seu script basicamente executará o que o usuário quiser, a menos que seja um pedido de SFTP:

#!/bin/bash
if [[ "$SSH_ORIGINAL_COMMAND" =~ .*sftp-server.* ]]; then
   echo "SFTP not allowed"
   exit 255;
else
   exec "$SSH_ORIGINAL_COMMAND"
fi
    
por 27.07.2017 / 09:55

Tags