Los ataques SSH agotan 4GB en 10 horas. ¿Posible?

10

Me han advertido que mi servidor rompió su límite de transferencia. Pensé que mi nodo Tor se hizo popular, así que elegí deshabilitarlo este mes (no es la mejor opción para la comunidad, pero necesito dejar de funcionar). Entonces noté que el servidor transfirió alrededor de 4 GB esta noche. He comprobado los registros de Apache con Awstats, sin tráfico relevante (y no alojo sitios tan populares allí). He revisado los registros de correo, nadie intentó enviar basura. He revisado los messagesregistros y he encontrado toneladas de estos

Apr 29 10:17:53 marcus sshd[9281]: Did not receive identification string from 85.170.189.156
Apr 29 10:18:07 marcus sshd[9283]: Did not receive identification string from 86.208.123.132
Apr 29 10:18:24 marcus sshd[9298]: Did not receive identification string from 85.170.189.156
Apr 29 10:18:39 marcus sshd[9303]: Did not receive identification string from 86.208.123.132
Apr 29 10:18:56 marcus sshd[9306]: Did not receive identification string from 85.170.189.156
Apr 29 10:19:11 marcus sshd[9309]: Did not receive identification string from 86.208.123.132
Apr 29 10:19:18 marcus sshd[9312]: Did not receive identification string from 101.98.178.92
Apr 29 10:19:27 marcus sshd[9314]: Did not receive identification string from 85.170.189.156
Apr 29 10:19:41 marcus sshd[9317]: Did not receive identification string from 86.208.123.132
Apr 29 10:20:01 marcus sshd[9321]: Did not receive identification string from 85.170.189.156
Apr 29 10:20:13 marcus sshd[9324]: Did not receive identification string from 86.208.123.132
Apr 29 10:20:32 marcus sshd[9327]: Did not receive identification string from 85.170.189.156
Apr 29 10:20:48 marcus sshd[9331]: Did not receive identification string from 86.208.123.132
Apr 29 10:21:07 marcus sshd[9336]: Did not receive identification string from 85.170.189.156
Apr 29 10:21:20 marcus sshd[9338]: Did not receive identification string from 86.208.123.132
Apr 29 10:21:35 marcus sshd[9341]: Did not receive identification string from 85.170.189.156
Apr 29 10:21:51 marcus sshd[9344]: Did not receive identification string from 86.208.123.132
Apr 29 10:22:06 marcus sshd[9349]: Did not receive identification string from 85.170.189.156
Apr 29 10:22:23 marcus sshd[9353]: Did not receive identification string from 86.208.123.132
Apr 29 10:22:39 marcus sshd[9359]: Did not receive identification string from 85.170.189.156
Apr 29 10:22:54 marcus sshd[9361]: Did not receive identification string from 86.208.123.132
Apr 29 10:23:10 marcus sshd[9367]: Did not receive identification string from 85.170.189.156
Apr 29 10:23:29 marcus sshd[9369]: Did not receive identification string from 86.208.123.132
Apr 29 10:23:45 marcus sshd[9375]: Did not receive identification string from 85.170.189.156
Apr 29 10:24:10 marcus sshd[9387]: Did not receive identification string from 86.208.123.132
Apr 29 10:24:16 marcus sshd[9388]: Did not receive identification string from 85.170.189.156

Cada pocos segundos, un bot intenta piratear mi SSH, lo cual es imposible porque necesito autenticación de clave pública. Mi pregunta es: ¿puede este tráfico, a esta frecuencia, consumir 4 GB (digamos 3.5) en 10 horas de ataque continuo?

Cambié mi puerto SSH y detuve estos ataques, pero no estoy seguro sobre el consumo de mi red. No tengo servicios fuera de control que se ejecutan, mi firewall es un poco restrictivo, o comparto el servidor con alguien que hace P2P de forma abusiva o lo que sea. Mi preocupación es ir por debajo de 400 GB / mes.

¿Algun consejo?

usr-local-ΕΨΗΕΛΩΝ
fuente

Respuestas:

16

4 GB es posible, pero muy poco probable teniendo en cuenta la tasa de ataque. Sugiero instalar OSSEC, detecta interrupciones en los intentos y bloquea la IP automáticamente durante un cierto tiempo de espera.

Lucas Kauffman
fuente
1
Ya tengo fail2ban, bloqueó con éxito inicios de sesión incorrectos pero parece ignorar estos mensajes. Tal vez lo afine.
usr-local-ΕΨΗΕΛΩΝ
1
Aceptado. Fail2ban necesitaba algunos ajustes para aceptar los mensajes de registro como intentos de intrusión. +1 a @lain también porque no puedo aceptar 2 respuestas
usr-local-ΕΨΗΕΛΩΝ
@djechelon: háganos saber si esto resuelve el problema. De alguna manera, dudo que lo haga, ya que los paquetes se descartan después de llegar a su sistema.
usuario9517
@La mayoría de los atacantes se rinden cuando los dejan caer.
Lucas Kauffman
3
@LucasKaufman: 4Gb / 10Hrs es ~ 120Kb / sec. No veo que haya tanto rendimiento de intentos fallidos y el fragmento anterior muestra una tasa de ataque mucho más baja (26 en ~ 7 minutos).
user9517
14

Si esta es la causa del uso del ancho de banda, entonces el ancho de banda ya está consumido en el momento en que los maneja en su sistema. Puede usar una herramienta como iptraf para obtener un desglose de lo que está sucediendo en cada interfaz / puerto y luego puede tomar las medidas adecuadas en función de los hechos.

usuario9517
fuente
Obviamente puedo poner mis esfuerzos en prevenir el consumo futuro de ancho de banda, a partir del próximo mes
usr-local-ΕΨΗΕΛΩΝ
1
Y ... respuesta muy útil, pero iptraf no funciona con OpenVZ (referencia webhostingtalk.com/showthread.php?t=924814 ) y no lo mencioné :)
usr-local-ΕΨΗΕΛΩΝ
La idea básica sigue siendo la misma. Encuentre algo que le diga dónde está el uso y luego resuelva el problema. Cualquier otra cosa es conjeturas.
usuario9517
4

No, estos intentos de conexión de una vez por segundo no sumarán hasta 4 GB en diez horas. ¿Crees que podrías descargar un archivo de 4GB en 10 horas obteniendo un pequeño paquete una vez por segundo? Hay 3600 segundos en una hora, así que si obtienes un kilobyte por segundo durante diez horas, eso sería 36000 Kb, o 36 megabytes.

Su ancho de banda se mide de acuerdo con lo que desciende desde su proveedor hasta su enrutador externo, no según lo que llega a su servidor. Tienes que mirar la basura que no llega a tu servidor, que la mayoría de los equipos externos están rechazando.

En cuanto a lo que llega a su servidor, no puede confiar en los registros de aplicaciones. Incluso los paquetes que el firewall local descarta silenciosamente son de ancho de banda. Las estadísticas de la interfaz (mostradas por ifconfig) le indicarán los bytes Tx / Rx.

Kaz
fuente
No estoy seguro. Desde mi punto de vista, los mensajes de registro muestran que los clientes abrieron un socket al puerto 22 pero fueron rechazados porque "lo que transmitieron" no fue reconocido como un apretón de manos SSH adecuado. No quería interceptar el puerto 22 para ver la carga útil real que enviaron los escáneres, pero en teoría podrían enviar toneladas de basura hasta que caiga SSH. La pregunta es: ¿cuándo openSSH deja caer un apretón de manos no válido? En segundo lugar, pasé una noche con Tor deshabilitado y el tráfico aún aumentó (Apache no mostró tráfico significativo), cuando el tráfico reconfigurado de fail2ban casi se detuvo
usr-local-ΕΨΗΕΛΩ12
1
Permítanme reformular un poco, por si acaso. Si quisiera drenar 4 GB de ancho de banda de un servidor, podría hacer una botnet que abra conexiones HTTP y envíe cargas ilimitadas POST para cada solicitud. Los registros mostrarán que las solicitudes fallidas ocurren con tasas bajas, pero cada una es extremadamente pesada. Pero esto comienza a perder sentido. He estado familiarizado con los escaneos SSH ("autenticación fallida para root, administrador ...") porque su objetivo es tomar el control del nodo. ¿Por qué a un atacante le importaría drenar el ancho de banda a través de SSH? No tiene sentido A menos que alguien odie los nodos Tor ...
usr-local-ΕΨΗΕΛΩΝ