¿Por qué bloquear IPs desde las cuales el inicio de sesión SSH falló con demasiada frecuencia?

0

Tengo una Raspberry Pi orientada a Internet en una conexión de Internet privada y, la última vez que la configuré, no me molesté en instalar una forma de bloquear direcciones IP desde las cuales muchos intentos de inicio de sesión SSH fallaron al intentar iniciar sesión en SSH el futuro cercano porque simplemente no veo el punto de la misma.

Todo esto resultó en entradas de registro con este aspecto:

2016-10-01 14:28:25 root        failed   119.249.54.88:56388
2016-10-01 14:28:26 root        failed   121.18.238.104:43921
2016-10-01 14:28:27 root        failed   119.249.54.88:56388
2016-10-01 14:28:28 root        failed   121.18.238.104:43921
2016-10-01 14:28:30 root        failed   119.249.54.88:56388
2016-10-01 14:28:30 root        failed   121.18.238.104:43921
2016-10-01 14:28:34 root        failed   121.18.238.104:41379
2016-10-01 14:28:35 root        failed   121.18.238.104:41379
2016-10-01 14:28:35 root        failed   119.249.54.88:60430
2016-10-01 14:28:37 root        failed   121.18.238.104:41379
2016-10-01 14:28:37 root        failed   119.249.54.88:60430
2016-10-01 14:28:41 root        failed   121.18.238.104:42230
2016-10-01 14:28:41 root        failed   119.249.54.88:60430

El registro solo muestra los intentos de inicio de sesión a través de una contraseña, ya que intentar iniciar sesión a través de la autenticación de clave pública sería aún más ridículo. La gran mayoría de los intentos de inicio de sesión intentan iniciar sesión como root , que en el caso de mis raspi, por supuesto, ni siquiera puedo iniciar sesión. Hasta ahora, ningún intento de inicio de sesión ni siquiera adivinó un nombre de usuario válido ( pi se ha adivinado con bastante frecuencia, pero no existe en mi Raspi), y mucho menos se puede iniciar sesión a través del nombre de usuario y la contraseña.

¿Hay algún beneficio de seguridad al bloquear dichas direcciones IP durante unos minutos? La posibilidad de un sistema con solo contraseñas complejas (para los usuarios que pueden iniciar sesión a través del nombre de usuario y la contraseña) parece ser básicamente 0. Incluso con solo una contraseña ASCII imprimible de 8 caracteres (que sería patético, por supuesto), el nombre de usuario está garantizado para ser correcto (ya que uno nunca debe asumir que un nombre de usuario sea un secreto), y 100 intentos de inicio de sesión por segundo (lo que mi conexión de Internet lenta probablemente ni siquiera puede manejar), eso es literalmente ~ 1 millón de años hasta el éxito esperado.

Si bloqueo estos intentos de inicio de sesión, lo único que voy a hacer es decirles a los atacantes que vayan a atacar a otra persona y tal vez me bloqueen por unos minutos si me equivoco con la contraseña con demasiada frecuencia (sucedió solo una vez, por lo tanto, lejos y configuré el tiempo para bloquear en algo así como 2 minutos, así que solo tuve que esperar un corto período de tiempo). No veo por qué esto sería aconsejado. Simplemente parece tan innecesario. ¿Me estoy perdiendo algo?

    
pregunta UTF-8 01.10.2016 - 15:08
fuente

4 respuestas

1
  

¿Hay algún beneficio de seguridad al bloquear dichas direcciones IP durante unos minutos?

Archivos de registro más pequeños a medida que los robots se rinden e intentan diferentes objetivos. Los registros más pequeños significan más historial de registros (y menos pérdida de datos si esos registros se escriben en flash).

  

Si bloqueo estos intentos de inicio de sesión

Inicializar una conexión ssh segura y comprobar si se permite el inicio de sesión de root es mucho más trabajo que eliminar un paquete.

Usted ahorra un poco de energía, y quizás una cantidad de ancho de banda no trivial.

  

fail2ban ... No veo el punto

En su lugar, podría agregar fácilmente una regla LIMIT de firewall.

  

mi lenta conexión a internet ...

Escenario 1

TCP handshake: 3 packets
SSH session initiation: half a dozen packets
Login failure: 2 packets
TCP teardown: 3 packets
------------------
Total: 12+ packets @ 1800 per hour = 2-20 MB per hour

Escenario 2:

SYN hits the floor.
------------
Total: 1 very small packet @ 10 per hour = not much

Estos robots están usando una cantidad no trivial de su ancho de banda. Bloquealas para que usen menos.

    
respondido por el Jeff K 24.02.2017 - 21:07
fuente
2

Este es un simple ataque de fuerza bruta, seleccionan un inicio de sesión y prueban todas las contraseñas posibles, a partir de las más comunes y demás.

En su caso, han intentado un nombre de usuario que ni siquiera existe, lo que lo lleva a cuestionarse si hay algún punto para bloquearlos, pero considere el escenario en el que intentan un inicio de sesión válido.

No bloquear su IP les daría la oportunidad de probar varios millones, tal vez miles de millones de contraseñas por día, hasta que encuentren la correcta.

Sin embargo, si bloquea su IP durante varios minutos cada vez que fallan varios intentos, sus esperanzas de encontrar esa contraseña en un tiempo práctico serán completamente inútiles. Ese servidor no será hackeado de esa manera dentro de un tiempo de vida.

Esto también significa que lo más probable es que se den por vencidos y dejen de inundar tu servidor con intentos de inicio de sesión tontos.

    
respondido por el Havenard 02.10.2016 - 07:51
fuente
0

Para frustrar ataques de SSH como este, las utilidades como fail2ban o CSF / LFD se implementan comúnmente en servidores orientados a Internet. Estas herramientas analizarán sus registros y generarán reglas de iptables sobre la marcha para bloquear la dirección IP ofensiva.

Aunque es poco probable que tengan éxito, creo que es una buena práctica bloquear esos ataques. Ahorrarás algo de ancho de banda y CPU.

Dependiendo de la herramienta, es posible que pueda incluir en la lista blanca ciertas direcciones IP como la suya, si son estáticas o no cambian con frecuencia.

En ciertos sistemas he presenciado cientos de ataques por día. En algún momento pueden drenar sus recursos. Tienes poco que perder bloqueándolos.

    
respondido por el Anonymous 01.10.2016 - 15:41
fuente
0

¿Hay algún beneficio de seguridad al bloquear dichas direcciones IP durante unos minutos?

Si cambia su puerto SSH público, probablemente nunca verá otro intento. Esa es la mejor manera de mantener sus registros claros para que pueda ver los problemas reales.

Si inhabilitas los inicios de sesión de contraseña en SSH, las posibilidades de cualquier inicio de sesión fraudulento son muy pequeñas.

Bloquear los IP es realmente solo necesario si no haces lo anterior. En ese caso, solo porque no ha visto un intento exitoso en los pocos minutos que ha visto los registros, esto no indica que no tendrán éxito en el futuro o que no ejecutarán algunos otro ataque que tiene éxito pero está enmascarado por las muchas otras entradas de registro. Sin embargo, hacer los bloqueos temporales no duele a excepción de un retraso muy raro en su propio inicio de sesión. Agrega seguridad adicional y ayudaría en caso de que la red de bots cambie a un ataque más específico.

Cualquier computadora conectada directamente con puertos abiertos a Internet comenzará a ser escaneada automáticamente por los atacantes dentro de unos 30 segundos aproximadamente.

Debido a que muchos dispositivos conectados a Internet usan SSH para proporcionar acceso remoto a la línea de comandos y porque el usuario root tiene control total y acceso al dispositivo, es el principal puerto que los atacantes buscan comprometer.

Nunca podrás continuar manualmente con todos los intentos y es una pérdida de tiempo intentarlo. Sin embargo, hay algunas cosas que puede y debe hacer:

  • Mueva el puerto orientado a Internet de 22 a algo alto. Eso detendrá casi todos los ataques inmediatamente. La forma más fácil de hacerlo es en su enrutador. Pero también puedes usar el firewall IPTABLES de Pi para hacerlo.
  • Asegúrese de que la raíz no pueda usar SSH, este debería ser el predeterminado de todos modos. Si necesita derechos elevados, use sudo . Como este es un Pi, también debe deshabilitar al usuario de Pi o al menos evitar que Pi use SSH, cree una ID alternativa.
  • Instale fail2ban en la Pi. Esto se puede usar para prohibir automáticamente las direcciones IP de origen si no pueden completar un inicio de sesión. Si prohibes cualquiera de esos IPs, digamos 5 minutos, estarás bastante seguro. Asegúrate de incluir en la lista blanca cualquier IP que uses legítimamente, o de que solo la hayas prohibido por un período lo suficientemente corto para que no te bloqueen si no inicias sesión correctamente.
respondido por el Julian Knight 01.10.2016 - 15:42
fuente

Lea otras preguntas en las etiquetas