Requerendo login da chave SSH de intervalos de IP específicos

3

Eu preciso acessar meu servidor (Ubuntu 8.04 LTS) de sites remotos, mas gostaria de me preocupar um pouco menos com a complexidade de senhas. Assim, gostaria de exigir que as chaves SSH sejam usadas para login em vez de nome / senha. No entanto, eu ainda tenho muito a aprender sobre segurança, e tendo já quebrado uma caixa de teste quando estava tentando configurá-la, estou ciente da chance de me ferrar ao tentar fazer isso. Então, eu tenho um segundo objetivo: gostaria de exigir que determinados intervalos de IP (por exemplo, 10.0.0.0/8) possam efetuar login com nome / senha, mas todos os outros devem usar uma chave SSH para fazer login.

Como posso satisfazer esses dois objetivos?

Já existe uma pergunta muito semelhante aqui, mas não consigo descobrir como chegar ao que quero essa informação.

Tática atual: lendo a documentação do PAM (pam_access parece promissor) e olhando para / etc / ssh / sshd_config.


Editar: Como alternativa, existe uma maneira de especificar que determinados usuários devem se autenticar com chaves SSH e outros podem autenticar com nome / senha?

Solução que está funcionando no momento:

# Globally deny logon via password, only allow SSH-key login.  
PasswordAuthentication no  

# But allow connections from the LAN to use passwords.  
Match Address 192.168.*.*  
    PasswordAuthentication yes  

O bloco Match Address também pode ser útil como um bloco de Match User, respondendo à minha pergunta secundária. Por enquanto, estou apenas calculando a falha em analisar os endereços CIDR até um capricho da minha instalação e resolvendo tentar novamente quando for para o Ubuntu 10.04 não muito tempo a partir de agora. O PAM não é necessário.

    
por Brighid McDonnell 16.03.2010 / 22:14

1 resposta

8

Não tenho certeza de como o PAM precisaria se encaixar nisso. Com uma versão recente do SSH (como o que está disponível no 8.04), deve ser tão fácil quanto usar blocos de Correspondência para o espaço de endereço que você deseja permitir.

Portanto, o seu sshd_config deve conter algo assim.

# global option no password auth (keys only)
PasswordAuthentication no

# permit password from rfc1918
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
  PasswordAuthentication yes
    
por 16.03.2010 / 22:35