Pergunta
Qual é a melhor maneira de configurar as tentativas de SSH de log com autenticação de chave pública SSH e nftables? Além disso, qual é a melhor maneira de testar isso?
Eu gostaria de fazer isso sem instalar um pacote que 'apenas cuida disso' porque é um exercício de aprendizado para mim.
Descrição
Eu configurei um novo sistema bastante em branco para testar e aprender conceitos de rede. O sistema está executando o Arch Linux. nftables está ativo e em execução, e consigo fazer login neste sistema com a autenticação de chave pública SSH. O sistema de teste também está usando sshd.socket, pelo que vale a pena.
No entanto, notei que uma das regras do nftable não parece estar saindo como esperado:
log prefix "REJECTED" reject with icmpx type port-unreachable
Esta regra está na parte inferior da cadeia de entrada no meu nftables.conf, portanto, todo o tráfego de entrada rejeitado deve acertar isso (eu acho).
Talvez eu esteja testando isso incorretamente, mas quando executo journalctl -k | grep "REJECTED"
, não vejo nenhuma entrada depois de tentar efetuar login por meio de uma máquina diferente. No entanto, vejo uma entrada quando uma máquina diferente com a chave correta tenta efetuar login mais de duas vezes em um minuto.
Além disso, observarei que consigo ver logins SSH bem-sucedidos com essa regra nftable (colocada acima da regra de rejeição acima):
tcp dport ssh limit rate 2/minute log prefix "SSH connection" accept
A execução de journalctl -k | grep "SSH"
mostra essas conexões conforme o esperado.