Permitir SFTP mas não permitir SSH?

89

Estou começando uma pequena empresa de hospedagem para alguns amigos e pequenos clientes, nada grande.

Eu quero dar aos meus "clientes" o direito de gerenciar seus arquivos no servidor. Eu odeio o FTP, pois ele não é seguro e, na minha opinião, obsoleto.

Portanto, gostaria de permitir que meus usuários se conectassem por meio do SFTP, mas não permitissem que eles se conectassem por meio do SSH. (Eu sei, eu sei, o SFTP está usando o SSH). Mas eu estava pensando, é possível?

Então eu não precisaria instalar um serviço de FTP no servidor e tudo seria incrível!

    
por TomShreds 28.01.2012 / 21:40

7 respostas

114

A partir da versão 4.9 O OpenSSH (não disponível no centos 5.x mas o recurso ChrootDirectory foi portado) tem um subsistema internal-sftp :

Subsystem sftp internal-sftp

E bloqueie outros usos:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Adicione seus usuários ao grupo sftponly . Você precisa alterar o diretório de usuário para / por causa do chroot e /home/user deve pertencer a root . Eu também defini /bin/false como o shell do usuário.

    
por 28.01.2012 / 21:46
19

Existe um shell scponly que faz isso. Pode chroot também.

    
por 28.01.2012 / 22:11
4

Checkout rssh que é um shell falso que permite sftp, mas nega ssh

Mais sobre o RSSH

link

RPMs

link

Você pode configurar o rssh para permitir / negar comportamentos diferentes, como sft, scp, etc.

    
por 02.02.2012 / 14:15
2

Você pode modificar o / etc / passwd e dar ao usuário um shell falso para que ele não possa usar o ssh.

    
por 28.01.2012 / 21:46
1

Eu uso o método de especificar o shell do usuário como / bin / false, como mencionado. No entanto, você deve garantir que / bin / shell esteja em / etc / shells. Então funciona ssh = no ftp = ok.

Eu também uso o vsftpd e adiciono este
chroot_local_user = YES para /etc/vsftpd/vsftpd.conf para que os ftp-ers não possam ver outra data que a deles.

A vantagem para essas mudanças simples não é uma configuração irritante para a configuração do ssh para cada usuário.

    
por 23.09.2014 / 19:09
1

Não se esqueça de encontrar a linha UsePAM yes e comentar:

#UsePAM yes

Sem desabilitar isso, seu servidor SSH falharia ao recarregar / reiniciar. Como você não precisa de funções sofisticadas do PAM, tudo bem.

    
por 25.01.2016 / 23:02
0

Configurar o ssh para ativar somente o sftp para alguns usuários selecionados é uma boa ideia e funciona corretamente, desde que você instale scponly ou rssh .

rssh funciona bem, a menos que você precise configurar cadeia, neste caso, tentar seguir instruções fornecidas por manuais CHROOT é louco, levando a "copiar" grandes partes de executáveis do sistema e biblioteca logo abaixo "cada cadeia de usuários", incluindo rssh em si. É um método de desperdício de espaço.

scponly precisa de um entendimento profundo da configuração, levando a um problema sempre presente de rejeição de login em caso de configuração de cadeia.

A maneira simples de permitir funcionalidades "ftp" com jail funcionando corretamente, suporte a SSL / TLS para transações seguras e login é usar um VSFTPD "antigo mas funcionando", que é instalado de forma rápida e limpa e oferece toda configurabilidade conforme necessário e, por último mas não menos importante: funciona!

Maurizio.

    
por 23.04.2016 / 14:47