¿Qué herramienta o técnica utiliza para evitar ataques de fuerza bruta contra su puerto ssh? Noté en mis registros de Seguridad, que tengo millones de intentos para iniciar sesión como varios usuarios a través de ssh.
Esto está en un cuadro de FreeBSD, pero imagino que sería aplicable en cualquier lugar.
security
ssh
brute-force-attacks
afligirse
fuente
fuente
TARPIT
destino, si se siente desagradable (de xtables-addons).Una pequeña cosa que puedes hacer es usar algo como DenyHosts:
http://denyhosts.sourceforge.net/
Utiliza los hosts.allow / hosts.deny integrados para bloquear a los abusadores de SSH.
fuente
fuente
Una de las formas más fáciles de evitar estos ataques es cambiar el puerto en el que sshd escucha
fuente
Como señala Chris, use claves de cifrado en lugar de contraseñas.
Añadir a eso:
¿Cuántas personas o ubicaciones (con IP públicas flotantes) realmente necesita para acceder a sus conexiones ssh públicas?
Dependiendo de la cantidad de hosts ssh públicos que esté manteniendo y si puede reducir sus criterios de conexión generales, puede ser una configuración más simple y mantenible para limitar el acceso a unos pocos hosts externos.
Si esto funciona para usted, realmente puede simplificar sus gastos generales de administración.
fuente
Además de las otras buenas sugerencias, una cosa realmente fácil de hacer es limitar la velocidad de las conexiones entrantes. Límite de 3 conexiones por minuto por IP:
fuente
Use la opción "AllowUsers" en sshd_config para asegurarse de que solo un pequeño grupo de usuarios pueda iniciar sesión. Todos los demás serán rechazados, incluso si su nombre de usuario y contraseña son correctos.
Incluso puede restringir a los usuarios a inicios de sesión desde un host particular.
p.ej,
Esto reducirá el espacio de búsqueda y evitará aquellos usuarios antiguos que accidentalmente se quedaron acostados o habilitados (aunque, por supuesto, estos deberían deshabilitarse de todos modos, esta es una manera fácil de evitar que se usen para una entrada basada en SSH).
Esto no detiene por completo los ataques de fuerza bruta, pero ayuda a reducir el riesgo.
fuente
Use algo así con PF:
la tabla <ssh-brute> persiste el
bloque en el registro rápido desde la etiqueta ssh_brute
pasa en $ ext_if proto tcp a ($ ext_if) puerto ssh modulate state \
(max-src-conn-rate 3/10, overload flush global)
fuente
La anulación de puertos es una forma bastante sólida de evitar este tipo de cosas. Ligeramente complicado, a veces molesto, pero definitivamente hace que el problema desaparezca.
fuente
El contexto es importante, pero recomendaría algo así:
fuente
Además de la sugerencia de limitación de velocidad de Sherbang , la duración de la demora es importante. Al aumentar el retraso entre grupos de 3 intentos de inicio de sesión de 2 minutos a 20 minutos, la cantidad de direcciones IP diferentes que hicieron más de tres intentos de inicio de sesión disminuyó, comparando dos períodos de una semana en una máquina mía, de 44 intentos a 3 Ninguna de esas tres direcciones siguió intentándose durante más de 11 horas.
Muy anecdótico, pero auth.log se volvió mucho más legible para mí ...
fuente
Simplemente no me importa. Déjelos alejarse en el puerto, no van a forzar una llave con fuerza bruta.
fuente
instalar OSSEC. no solo supervisa los inicios de sesión repetidos, sino que ingresará un bloque temporal con iptables para la ip infractora. Y al final le enviará un informe indicando los detalles. registra todo, lo cual es bueno. Somone intentó una vez más de 8000 nombres de inicio de sesión para iniciar sesión. analicé los registros y obtuve una buena lista de usuarios fuera del trato;)
fuente