Pregunta
¿Cuál es la mejor manera de configurar el registro de intentos de SSH con autenticación de clave pública SSH y nftables? Además, ¿cuál es la mejor manera de probar esto?
Me gustaría hacer esto sin instalar un paquete que "simplemente se encarga de ello" porque es un ejercicio de aprendizaje para mí.
Descripción
He configurado un nuevo sistema bastante vacío para probar y aprender conceptos de redes. El sistema ejecuta Arch Linux. nftables está en funcionamiento y puedo iniciar sesión en este sistema con autenticación de clave pública SSH. El sistema de prueba también utiliza sshd.socket, por lo que vale.
Sin embargo, he notado que una de las reglas de nftable no parece cerrar la sesión como se esperaba:
log prefix "REJECTED" reject with icmpx type port-unreachable
Esta regla está al final de la cadena de entrada en mi nftables.conf, por lo que todo el tráfico de entrada rechazado debería llegar a esta (creo).
Quizás estoy probando esto incorrectamente, pero cuando ejecuto journalctl -k | grep "REJECTED"
no veo ninguna entrada después de intentar iniciar sesión a través de una máquina diferente. Sin embargo, veo una entrada cuando una máquina diferente con la clave correcta intenta iniciar sesión más de dos veces en un minuto.
Además, señalaré que puedo ver inicios de sesión SSH exitosos con esta regla nftable (ubicada encima de la regla de rechazo anterior):
tcp dport ssh limit rate 2/minute log prefix "SSH connection" accept
La ejecución journalctl -k | grep "SSH"
muestra estas conexiones como se esperaba.
Respuesta1
No puede determinar (ni iniciar sesión) en la capa de red en qué conexión TCP falló ni con qué método. El demonio SSH determina cuándo falla un inicio de sesión y lo registra, después de lo cual permite un nuevo intento o cierra la conexión (generalmente después de una cierta cantidad de intentos fallidos).
Los intentos de inicio de sesión fallidos se almacenan en el inicio de sesión de autenticación /var/log/auth.log
. Allí puede encontrar entradas de registro tanto para inicios de sesión exitosos como fallidos.
En la capa de red, puede registrar nuevas conexiones al demonio SSH. El siguiente ejemplo es directamente de nftables.documentación wiki:
tcp dport 22 ct state new log prefix \"New SSH connection: \" accept