Evitar que uma conta unix consiga SSH [duplicado]

7

Eu quero evitar que uma conta unix seja compatível com SSH, mas ela ainda pode ser usada para SCP / SFTP.

Isso é possível?

O racional é que um servidor unix usa uma conta genérica para o aplicativo e as pessoas têm feito logon na caixa enquanto usam essa conta genérica, em vez de suas contas pessoais. Queremos que eles usem o SSH na caixa usando sua conta pessoal por motivos de auditoria.

    
por JamesR404 18.06.2012 / 15:05

3 respostas

9

É bem possível, e há várias maneiras de fazer isso. Existem kludges e soluções elegantes. Tudo depende dos detalhes do que você quer fazer e quanto tempo deseja investir.

Se você tem alguns usuários remotos que você quer restringir ao scp / sftp, você pode querer olhar para scponly e este conjunto de instruções sobre como fazê-lo funcionar (assume Debian).

Você também pode tentar o rssh , que é outro substituto do shell para fazer a mesma coisa.

Você também deve criar um grupo para esses usuários restritos e (é claro) adicionar os usuários ao grupo. Em seguida, adicione algo assim ao seu arquivo sshd_config (geralmente encontrado em /etc/ssh ou /etc ):

Match Group sftp-only
        ForceCommand internal-sftp
        #ChrootDirectory /somewhere/%u # Optional chroot jail
        #AllowTcpForwarding no         # Disable TCP forwarding
        #X11Forwarding no              # Disable X11 forwarding
        #Umask 700                     # Set the umask

Isso desativará / forçará coisas como o encaminhamento de TCP para esses usuários. Você obviamente precisa remover o # dos que você precisa. Verifique a% man_de% manpage para mais detalhes sobre isso.

Dos kludges, o mais simples é alterar o shell do usuário para sshd_config(5) ou false (no Debian, nologin e /bin/nologin respectivamente). Um kludge um pouco mais complexo é colocar um cheque em /usr/sbin/nologin para o usuário ou o grupo do usuário e registrá-lo com uma mensagem "não permitido para fazer login". Se você gosta de proteger suas apostas (eu faço), você pode fazer isso também . Apenas lembre-se de que não é suficiente por si só.

Se você tem o Livro sobre caracóis , capítulo 8 (disponível gratuitamente como amostra) também tem algumas receitas.

    
por 18.06.2012 / 15:34
2

Sim, isso é possível, mas não é muito fácil. Existe um programa chamado rssh que, se usado como o shell padrão para um usuário, somente permitirá sftp, scp, rsync, cvs e rdist. Você pode, claro, editar arquivos de configuração para restringir ainda mais.

link

    
por 18.06.2012 / 15:33
0

Você já tentou no-pty em $HOME/.ssh/authorized_keys desse usuário?

man sshd(8), AUTHORIZED_KEYS FILE FORMAT:
     no-pty  Prevents tty allocation (a request to allocate a pty will fail).
    
por 18.06.2012 / 16:01