Como restringir todos, exceto um determinado grupo no SSH?

7

Eu quero restringir todos os usuários em um servidor para poder usar somente o SFTP enquanto os membros de um grupo administrativo devem ter acesso SSH completo.

Descobri que é possível restringir os membros de um grupo usando Match Group e ForceCommand . Mas não encontrei negação lógica. Então eu tentei construir em sentido inverso:

# SFTP only, full access only for admin group
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Match Group admin
    X11Forwarding yes
    AllowTcpForwarding yes
    ForceCommand /usr/local/sbin/ssh-allowcmd.sh

e construiu um script ssh-allowcmd.sh que executa o comando fornecido ou /bin/bash para acesso interativo.

Existe uma solução melhor?

    
por robcast 23.07.2009 / 18:14

4 respostas

17

Se você estiver usando o OpenSSH 5.1 ou posterior, ele suporta negação do Match Group .

Supondo que os padrões são aceitáveis para o grupo de administradores, basta alterar todos os outros:

Match Group *,!admin
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Não há realmente nenhuma razão para confiar em shells de terceiros para fazer este tipo de trabalho com versões recentes do OpenSSH.

    
por 23.07.2009 / 23:39
3

Eu uso o MySecureShell para limitar os usuários a conexões somente com SFTP. Eu faço isso para usuários específicos, mas tenho certeza que você pode configurá-lo para limitar por padrão, assim a isenção seria para você dar acesso shell também.

link

    
por 23.07.2009 / 19:01
2

O que você quer é scponly . Se você está rodando Debian / Ubuntu, está nos repositórios. Depois de instalado, basta fazer o seguinte:

$ sudo chsh -s /usr/bin/scponly username

Ele também permite fazer chroot aos usuários.

Como alternativa, você pode fazer o seguinte:

$ usermod -s /usr/lib/sftp-server username
$ echo '/usr/lib/sftp-server' >> /etc/shells

A primeira linha restringe o shell do usuário ao sftp. A segunda linha é tornar o sftp-server um shell válido.

Como você não especificou o sistema operacional que está usando, não consigo adaptar os comandos às suas necessidades específicas.

    
por 23.07.2009 / 21:33
0

Se os usuários não precisarem acessar os mesmos arquivos, mas você não quiser configurar um segundo servidor apenas para o sftp, eu recomendaria a virtualização. Você pode instalar o OpenVZ e configurar VMs muito leves para lidar com isso.

Se isso for preciso para a sua situação, você provavelmente achará que a instalação do OpenVZ será útil para outras coisas como essa ao longo do tempo.

    
por 23.07.2009 / 20:29

Tags