Desative a autenticação de senha SSH em interface específica

Desative a autenticação de senha SSH em interface específica

Eu tenho um roteador OpenWrt, quero desabilitar a autenticação por senha no SSH, para que só seja possível autenticar com chaves. Isto é facilmente conseguido seguindoo guiana documentação, porém, quero desabilitar apenas a autenticação por senha na interface WAN, isso é possível?

Responder1

Esta resposta se aplica ao OpenSSH. OpenWRT inclui Dropbear por padrão, então você precisará substituí-lo, conformeesse link(basicamente, instale openssh-servere desative dropbear).

Com o OpenSSH, o que você deseja é possível usando dois mecanismos possíveis:

  1. Configurações separadas sshdpara suas interfaces LAN e WAN. Isso só funcionará bem se você tiver um IP WAN estático (não é possível saber sshdcomo ouvir uma interface específica, apenas um IP específico).
  2. Permita apenas autenticação por senha para clientes em sua LAN.

Opção 1:

No arquivo de configuração da LAN (por exemplo /etc/ssh/sshd_config, o arquivo padrão), você teria algo como:

PasswordAuthentication yes
Listen 192.168.1.1:22

No arquivo de configuração WAN (por exemplo /etc/ssh/sshd_config_wan:

PasswordAuthentication no
Listen 10.1.1.1:22    

Acima, 192.168.1.1 é o IP da sua interface LAN, 10.1.1.1 seu endereço IP WAN e em ambos os casos, 22 a porta para escutar. Você pode especificar o arquivo de configuração a ser carregado usando a -fopção sshd. Você precisará copiar o script de inicialização padrão para um novo e alterá-lo para chamar sshdcom -f /etc/ssh/sshd_config_wan.

Opção 2:

Em /etc/ssh/sshd_config, coloque isso nofimdo arquivo:

PasswordAuthentication no

Match address 192.168.1.0/24
    PasswordAuthentication yes

Aqui, você está desabilitando a autenticação por senha, exceto para endereços em sua LAN (assumidos aqui como 192.168.1.0/24).

Responder2

Você pode executar duas instâncias do servidor SSH, com configurações diferentes, cada uma escutando em uma interface diferente.

informação relacionada