Como evito todo o acesso ao console, exceto via SSH autenticado por chave?

5

Eu tenho um ambiente de servidor para o qual os únicos métodos de login seriam SSH ou terminal local no datacenter. Configurei isso para permitir que um usuário específico faça login apenas com uma chave, não com uma senha (explicitamente desativada). Este usuário também não possui senha definida.

Por causa das coisas que esse usuário precisa fazer no servidor, eu concedo acesso sudo sem senha, usando (no arquivo sudoers):

username ALL=(ALL) NOPASSWD: ALL

Obviamente, isso pode ser um problema de segurança. Eu preciso garantir que o usuário não possa acessar o servidor por qualquer meio que não seja o SSH, usando nossas chaves SSH bem protegidas. Todos os logins SSH são extremamente bem protegidos e também são bloqueados para um endereço IP específico, de forma que, acoplado ao login baseado em chave, é seguro (como pode ser). Desejo eliminar a capacidade de fazer o login através do nosso datacenter para garantir que o usuário não possa efetuar login a partir dele e somente SSH.

Como evito essas tentativas de acesso não autorizado?

    
por John Porter 29.05.2013 / 14:30

2 respostas

1

Você pode definir uma senha para o usuário que tenha mais de 30 caracteres aleatórios (alguns quase impossíveis de digitar) para evitar logins que não sejam SSH.

No entanto, isso não impediria que o usuário alterasse a senha via SSH e usasse o terminal do datacenter para acesso direto.

    
por 29.05.2013 / 15:19
2

Eu sempre achei que uma solução melhor é definir o hash da senha (em / etc / shadow) para um valor inválido. Eu normalmente uso a string %% NP %%. Isso efetivamente desativa a autenticação de senha para esse usuário e proíbe qualquer tipo de violação de força bruta da senha. Dado que nenhuma entrada no algoritmo de hash de senhas jamais corresponderá ao hash no arquivo de sombra, isso é extremamente seguro.

Para o Linux, você pode, em vez de (ou além do) acima, definir os parâmetros de controle de acesso em /etc/security/access.conf. Existem vários exemplos nesse arquivo que devem obter o que você precisa. Uma ressalva com esta abordagem é que você pode facilmente bloquear o root de poder fazer o login a partir do console, o que é uma péssima idéia em uma emergência.

    
por 03.06.2013 / 23:31