Quería proporcionar un retraso de inicio de sesión mientras iniciaba sesión a través de ssh. Intenté un par de formas de hacer lo mismo pero no pude encontrar el resultado deseado.
Intenté los pasos proporcionados por el enlace dado.
http://hostingfu.com/article/ssh-dictionary-attack-prevention-with-iptables
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
No tengo el módulo pam instalado en mi máquina, así que no puedo hacer ninguna modificación relacionada con los archivos pam
Entonces, ¿algún cuerpo me deja sugerir alguna otra forma de hacer lo mismo?
Tengo el kernel de Linux desnudo ejecutándose en una plataforma integrada.
linux
networking
ssh
sshd
RAM
fuente
fuente
fail2ban
usa la infraestructura exacta que ya tienes: registros ssh y reglas de iptables.Respuestas:
Método n. ° 1: deshabilitar los inicios de sesión de contraseña
Si no necesita permitir el inicio de sesión con contraseña, simplemente deshabilitarlos le dará el efecto deseado. Simplemente agregue esta línea a
/etc/ssh/sshd_config
:Además, puede limitar el uso de contraseñas a ciertos usuarios que usan el
Match
operador ensshd_config
:Método # 2 - iptables
También puede usar
iptables
para rastrear intentos fallidos de inicio de sesión y soltarlos después de un cierto umbral. Esto es similar a su ejemplo de hostingfu pero es más fácil de entender.NOTA: La primera línea básicamente crea una regla que solo se aplica a los paquetes utilizados para nuevos intentos de conexión en el puerto ssh. La segunda línea dice que si hay más de 4 intentos de una IP en 60 segundos, entonces cualquier tráfico de esa IP debe ser bloqueado. A esta solución no le importa si los intentos en diferentes cuentas de usuario.
Método # 3 - usa PAM
Me di cuenta de que dijiste que no tienes PAM disponible, pero si lo hiciste, así es como podrías retrasar los intentos fallidos de inicio de sesión. Si su intención es simplemente retrasar las fallas de inicio de sesión ssh, entonces puede usar el módulo PAM
pam_faildelay
. Este módulo PAM generalmente se incluye con la mezcla predeterminada.En mi sistema Fedora 19 es parte de la instalación predeterminada.
Ejemplo
Busque archivos relacionados con
pam_faildelay
.Vea qué RPM son proporcionados por:
Uso
Para crear un retraso en caso de falla, simplemente agregue una línea como esta a su
sshd
archivo de configuración de pam. De nuevo en / CentOS / RHEL sistemas Fedora este archivo se encuentra aquí:/etc/pam.d/sshd
.Para crear un retraso de 10 segundos:
Un retraso de 60 segundos:
Ejemplo
Con un retraso de 20 segundos usando el método anterior, cambié mi
sshd
archivo de configuración PAM de esta manera:Ahora cuando inicio sesión:
Referencias
fuente
--hitcount 4
se excede la regla, se bloqueará la dirección IP infractora durante 60 segundos.Deshabilitar contraseñas Sin contraseñas, sin ataque de fuerza bruta.
Puede usar ssh-keys para iniciar sesión, lo que debería ser mucho más seguro y más difícil de hackear.
fuente
En una instalación limpia de Ubuntu 16.04 con
openssh-server
, ya hay un retraso por un intento de contraseña incorrecta de más de cero caracteres. El retraso parece ser más de 1 segundo .Para un intento de contraseña incorrecta de cero caracteres no hay demora, por lo que el atacante determinará de inmediato que su contraseña no es la cadena vacía si de hecho no es la cadena vacía. Dado que la cadena vacía probablemente no esté permitida como contraseña, ya lo saben, por lo que no van a probar la cadena vacía.
fuente