Como faço para restringir um usuário SSH especificado para se conectar somente a partir de um IP ou nome de host?

4

Eu tenho um servidor de monitoramento que requer os detalhes da conexão SSH de uma conta de usuário não sudo de cada caixa que ele monitora. Existe uma maneira que eu possa configurar uma conta de usuário específica de tal forma que ela possa ser autenticada a partir de um IP específico (ou melhor ainda, hostname)? Eu não quero restringir a capacidade de outros usuários no servidor para poder se conectar de outros endereços (caso contrário eu usaria apenas um firewall), ou usa a autenticação por senha somente para o serviço de monitoramento .

    
por Programster 18.07.2015 / 10:24

4 respostas

4

Veja man sshd_config . Existe a possibilidade de adicionar AllowUsers block onde você pode especificar usuário e host assim:

AllowUsers user@host # or IP

É claro que você precisa especificar também outros usuários dos quais deseja permitir o login, se tiver algum.

Outra solução (depende de correções de bugs!)

Ao pensar nisso mais uma vez, existe a possibilidade de modificar o seu sshd_config assim:

Match Host !hostname
    DenyUsers user
Match Host hostname
    AllowUsers user

Isso facilmente bloquearia todos os usuários, exceto de user de hostname e, de qualquer outro lugar, bloquearia user .

MAS isso não funciona, por causa de alguns erros reportados upstream [1] [2]. Mas nós temos prometido que será corrigido no próximo lançamento.

por Jakuje 18.07.2015 / 10:35
3

Você pode usar curingas para a linha AllowUsers no arquivo /etc/ssh/sshd_config . Por isso, seria viável adicionar a linha:

AllowUsers *@192.168.1.100

Ou:

AllowUsers *@hostname

Para permitir que todos tenham acesso ao endereço IP ou ao nome do host.

Lembre-se de:

service ssh restart

Depois de fazer as alterações, desde que você esteja em uma versão antes de 15.04. O 15.04 usa systemd agora, então tem um mecanismo diferente para controlar os serviços.

    
por Arronical 18.07.2015 / 15:14
1

De acordo com as páginas do manual , isso deve funcionar:

DenyUsers user@"!host,*"

Eu testei isso no Debian e ele pareceu funcionar corretamente.

    
por Roman Hocke 05.06.2017 / 14:54
1

Como esse é o melhor resultado de pesquisa no google, acho que as pessoas também devem estar cientes da configuração de permissões no arquivo /etc/hosts.allow (cortesia de Cameron Oltmann's postagem no blog sobre o assunto):

% bl0ck_qu0te%

E você deve poder usar user@address neste arquivo, por este link lifewire.com :

% bl0ck_qu0te%     
por Gregory Martin 18.11.2017 / 00:42