Solución:
Solución 1:
Sin analizar los archivos de registro, no puede saber si un intento de inicio de sesión ssh fue exitoso. Afortunadamente, no tiene que analizar esos archivos de registro usted mismo. fail2ban puede hacer esto por usted. Por lo general, encarcelé una IP durante una semana después de 3 intentos fallidos de inicio de sesión.
Solucion 2:
Actualización 2020
Hoy en día solo uso sshguard
(en contenedores) o fail2ban
con ipset
(vm’s / bare metal) – todo con clave pública ssh
escuchando en un puerto no estándar. Sigo limitando el acceso a este puerto con iptables
a mis ip estáticas. Mi fail2ban
config bloquea a los atacantes durante 2 días con bantime = 48h
. Todavía uso un vpn
pero estoy cambiando a wireguard
.
Ver también:
-
Endurecimiento SSH para agregar autenticación de 2 factores
-
Configuración de solo clave SSH para poner su
ssh
llaves en una llave de seguridad. También funciona congpg
teclas. Es mucho más seguro que tener sus claves privadas en su PC. Es físicamente más seguro que un Yubikey debido a Onlykey ser Protegido con PIN. -
Cómo hacer una copia de seguridad de sus claves secretas 2FA con KeePassXC
-
Utilice una máquina virtual Qubes desechable para generar sus claves
También utilizo Onlykey para proteger KeepassXC como HMAC-SHA1
2do factor. También se puede utilizar con Linux PAM para iniciar sesión en su sistema y ser necesario para sudo
.
Con esta configuración no me preocupo ssh
siendo explotado.
En primer lugar no tengo ssh
escucha port 22
para reducir la posibilidad de que los escáneres automáticos encuentren su puerto.
También use psad
para bloquear automáticamente los hosts que escanean su máquina durante un período de tiempo configurable (1 hora por defecto).
Una solución muy simple es simplemente alquilar un 64 or 128 meg
openvz
contenedor y configurar openvpn
entonces tienes un fixed ip address
y luego limite su iptables
gobernar a --source vpn.ip.address
en el anfitrión que desea proteger.
Una mejor solución es ocultar completamente su ssh
puerto confwknop
. Entonces no hay necesidad de correr fail2ban
como tu ssh
El puerto está cerrado hasta que envíe un gpg
paquete firmado y cifrado del fwknop-client
que abrirá su firewall durante un período de tiempo configurable (30 segundos por defecto). También puede configurar fwknop
para aceptar solo ciertas direcciones IP (como su vpn
).
Tengo algunas notas bastante extensas aquí para fwknop
.
Si te tomas en serio ssh
seguridad que también deberías usar ed25519
teclas. Más notas aquí para usar cifrados seguros con openssh
. Otra buena elección es tinyssh
que tiene no dependencia de openssl
& es seguro por defecto.
Todo el software mencionado aquí existe en Alpine Linux, que también se beneficia de la aleatorización del diseño del espacio de direcciones a través de PaX
en su kernel de Grsecurity.