Cygwin SSHd Autoblock Falló los inicios de sesión


20

Estoy ejecutando Cygwin con un demonio SSH en una máquina con Windows Server 2008. Estaba mirando el Visor de eventos y noté hasta 5 a 6 intentos fallidos de inicio de sesión por segundo (fuerza bruta) durante la última semana más o menos, desde diferentes IP.

¿Cómo puedo autobloquear estas IP en lugar de bloquearlas una por una manualmente?

Gracias ahmad

Respuestas:


34

Escribí un programa para bloquear direcciones IP como lo solicitaste hace un par de años, pero lo hice para un Cliente como empleado por contrato. Como terminé con algo de tiempo "libre" esta tarde, opté por volver a implementar todo desde cero, escribir documentación útil y, en general, convertirlo en un programa presentable. Como he escuchado de varias personas que esto sería algo útil, parece que probablemente valga la pena. Esperemos que usted y otros miembros de la comunidad puedan aprovecharlo.


Windows sshd_block

sshd_block es un programa VBScript que actúa como un receptor de eventos WMI para recibir entradas del Registro de eventos de Windows registradas por sshd. Analiza estas entradas de registro y actúa sobre ellas de la siguiente manera:

  • Si la dirección IP intenta iniciar sesión con un nombre de usuario marcado como "prohibición inmediata", la dirección IP se bloquea inmediatamente.

  • Si la dirección IP intenta iniciar sesión con más frecuencia de la permitida en un período de tiempo determinado, la dirección IP está prohibida.

Los nombres de usuario y los umbrales de "prohibición inmediata" asociados con intentos repetidos de inicio de sesión se pueden configurar en la sección "Configuración" del script. La configuración predeterminada es la siguiente:

  • Prohibición inmediata de nombres de usuario: administrador, root, invitado
  • Intentos de inicio de sesión permitidos: 5 en 120 segundos (2 minutos)
  • Duración de la prohibición: 300 segundos (5 minutos)

Una vez por segundo, las direcciones IP que han sido prohibidas por la duración de la prohibición no están prohibidas (al eliminar la ruta del agujero negro de la tabla de rutas).


Puede descargar el software aquí y puede navegar por el archivo aquí .

Editar:

A partir del 2010-01-20, actualicé el código para admitir el uso del "Firewall avanzado" en Windows Vista / 2008/7/2008 R2 para mantener el tráfico en negro mediante la creación de reglas de firewall (que está mucho más en línea con el comportamiento de "fail2ban"). También agregué algunas cadenas coincidentes adicionales para capturar versiones de OpenSSH que "usuario no válido" en lugar de "usuario ilegal".


2
Aprecio el trabajo que hizo y creo que es una idea maravillosa. Sin embargo, ¿existe la posibilidad de que pueda modificarse para que funcione con los intentos de RDP? Mis servidores de Windows son constantemente atacados en línea y bloqueo de cuenta, aunque es necesario desbloquear semi-afectivo para que ese usuario vuelva a funcionar, abriendo la cuenta de usuario para otro bloqueo.


Este script chupa más del 10 por ciento de mi CPU, incluso si no hay ataques de fuerza bruta están en curso ...
jjxtra

@PsychoDad: Si estás interesado, contáctame directamente y solucionaremos el problema. No he visto el comportamiento que estás viendo.
Evan Anderson

1
También me gustaría ver esto para las conexiones RDP. Gracias
boomhauer

3

En Linux denyhosts hace el truco, no puedo decir si funcionará en Windows / Cygwin o no. Darle una oportunidad.


2

Este es muy interesante, actualmente estamos evaluando esta solución:

Syspeace trabaja en estrecha colaboración con Windows para detectar posibles amenazas con un rendimiento óptimo. Los eventos en el registro de eventos se controlan continuamente para detectar cualquier comportamiento sospechoso. Si un evento se considera una amenaza para el sistema, Syspeace pasa al siguiente nivel al comparar una base de reglas interna que simplemente bloquea la dirección IP y agrega la regla al firewall de Windows.

Lista blanca local

Un usuario siempre puede agregar direcciones IP a la Lista blanca local para, por ejemplo, evitar el bloqueo de cualquier red interna o agregar temporalmente PC individuales. Esto debe usarse con precaución ya que cualquier IP en esta lista es considerada confiable por Syspeace y siempre será ignorada.

Lista negra local

Syspeace agregará automáticamente a la lista negra local cualquier amenaza. Siempre puede revisar la lista negra y agregarla o eliminarla como mejor le parezca. Sin embargo, recomendamos que no realice ningún cambio en esta lista, ya que podría allanar accidentalmente el camino para un hacker desconocido.

Lista negra global

Una característica clave de Syspeace es la capacidad de bloquear preventivamente las direcciones IP conocidas en la lista negra global. Al elegir esta opción, Syspeace importará la Lista negra global a su cliente y actuará en consecuencia, agregando todas las direcciones IP incluidas en la lista negra global al conjunto de reglas del firewall con solo presionar un botón.

Mensajería

Cada vez que ocurre un evento importante, el servicio se inicia o se detiene, las reglas se colocan o se eliminan del firewall o se cambia el estado de la comunicación a la licencia central y el servidor de la lista negra global, Syspeace tiene la capacidad de enviar correo a las personas apropiadas en su organización

Informes

Recibir correos electrónicos cuando ocurre un evento importante puede ser bueno, pero a veces también le gustaría obtener un resumen. Syspeace compila un informe diario con todos los intentos de ataque en su sistema y le envía un mensaje con la información. Syspeace también compila un informe semanal de la misma manera.

www.syspeace.com


2

Literalmente, todos los intentos de inicio de sesión desde China / EE. UU. / India en mi servidor prueban el inicio de sesión de administrador, que he desactivado.

¿No sería más fácil deshabilitar el inicio de sesión de administrador y luego escribir un script que bloquee todas las direcciones IP que intentan iniciar sesión usando "Administrador" como nombre de usuario?


1

Es posible que deba meterse con el firewall de Windows; Cygwin no tendría este tipo de funcionalidad.


1

Podría considerar usar SSHBlock , un script de Perl para controlar los intentos de fuerza bruta.

SSHBlock es un demonio para monitorear un registro de syslog en busca de intentos de intrusión usando SSH, y para bloquear automáticamente hosts malos agregando líneas a /etc/hosts.allow (TCP Wrappers). Varios umbrales están predefinidos, para poder bloquear a aquellos que intentan muchos intentos en un período más largo o más corto. Use -h para ver las opciones de la línea de comandos.

Nunca lo he usado en Cygwin todavía.
Sin embargo, aquí hay un enlace a otro artículo que describe sshblock con otras formas:
Defensa contra ataques de fuerza bruta ssh

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.