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-server
e desative dropbear
).
Com o OpenSSH, o que você deseja é possível usando dois mecanismos possíveis:
- Configurações separadas
sshd
para suas interfaces LAN e WAN. Isso só funcionará bem se você tiver um IP WAN estático (não é possível sabersshd
como ouvir uma interface específica, apenas um IP específico). - 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 -f
opção sshd
. Você precisará copiar o script de inicialização padrão para um novo e alterá-lo para chamar sshd
com -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.