Permitir somente a autenticação de senha para o servidor SSH da rede interna

19

Eu tenho um servidor OpenSSH 5.9p1 em execução no Ubuntu Precise 12.04 que aceita conexões da rede interna e da Internet. Eu gostaria de exigir autenticação de chave pública para conexões da Internet, mas aceito a autenticação de chave pública ou senha para conexões da rede interna. Posso configurar o OpenSSH para implementar isso?

    
por mgorven 11.07.2012 / 18:37

1 resposta

28

A diretiva Match em /etc/ssh/sshd_config permite que você aplique seletivamente diretivas de configuração. Um dos critérios de correspondência disponíveis é o endereço de origem da conexão e, portanto, isso pode ser usado para implementar o que você deseja. Você pode desabilitar a autenticação de senha por padrão e habilitá-la para conexões de intervalos de IP de rede interna. (Observe que você também deseja desativar ChallengeResponseAuthentication para evitar a utilização de senhas.) Este exemplo permite a autenticação de senha de todos os intervalos de IP privados RFC1918. Consulte o sshd_config manpage para obter mais detalhes.

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

Note que o bloco Match deve ser adicionado ao final do arquivo, caso contrário, tudo o que o segue seria correspondido até o próximo bloco Match. O mau posicionamento do bloco Match pode causar incapacidade de conexão.

    
por 11.07.2012 / 18:37