Soy muy nuevo en la administración de redes, así que tenga en cuenta que todavía no tengo tanta experiencia.
Tengo un servidor raíz de Ubuntu con panel de plesk.
Ayer mis amigos y yo notamos que la calidad de la voz en nuestro TS3 se volvió muy mala. Envié algunos pings al servidor y hubo una pérdida de paquetes muy alta. Después de eso busqué en Google un poco y descubrí que hay un auth.log
. Lo descargué y me desplacé un poco, luego encontré esto:
May 13 10:01:27 rs204941 sshd[9351]: input_userauth_request: invalid user student [preauth]
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): check pass; user unknown
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=112.220.198.102
May 13 10:01:29 rs204941 sshd[9351]: Failed password for invalid user student from 112.220.198.102 port 39806 ssh2
May 13 10:01:29 rs204941 sshd[9351]: Received disconnect from 112.220.198.102: 11: Bye Bye [preauth]
May 13 10:01:31 rs204941 sshd[9353]: Invalid user student from 112.220.198.102
Parece que alguien intentó iniciar sesión en SSH muchas veces. Me desplacé un poco y vi que este alguien intenta usar muchos nombres de usuario diferentes:student, tech, psi, news,...
Cientos de estos inicios de sesión se muestran en el archivo.
Busqué las estadísticas de tráfico en el sitio web de mi centro de datos. Solo costaba 17 MB por hora. Tengo una red troncal de 100Mbit, por lo que la transferencia de datos en sí parece no ser el problema.
Por el momento no puedo acceder al servidor de ninguna manera.
Mi pregunta es: ¿cómo puedo obtener acceso nuevamente, cómo puedo eliminar este ataque y evitar los siguientes ataques?
Respuestas:
No está claro por qué no puede acceder a su cuenta.
Si su máquina está bajo ataque o carga alta, debe hablar con su proveedor acerca de restringir el acceso (Restricciones de IP) o desconectar el servidor (desconectarse de Internet).
También es posible que necesite un acceso fuera de banda con el que su proveedor pueda ayudarlo.
Si alguien ha comprometido su servidor, es posible que necesite restaurar desde copias de seguridad o usar una imagen de recuperación.
¿Cuál es la mejor manera de evitar inicios de sesión de fuerza bruta?
¡No dejes que lleguen a tu máquina en primer lugar! Hay muchas maneras de detener los intentos de fuerza bruta antes de que lleguen a su host, o incluso a nivel SSH.
Dicho esto, proteger su sistema operativo con algo como fail2ban es una gran idea. http://en.wikipedia.org/wiki/Fail2ban
Hay varias técnicas de seguridad importantes que debe considerar para ayudar a prevenir inicios de sesión de fuerza bruta:
SSH:
Solicitud:
fuente
Por lo general, cambio el puerto ssh predeterminado de 22 a otro como 1122. Esto evita muchos ataques automáticos del bot, pero un simple escaneo de puertos puede detectarlo. De todas formas:
y edite el Puerto 22 al Puerto 1122 , pero esto no es suficiente.
Reglas automáticas de IPTables sobre fuerza bruta
uso log2iptables https://github.com/theMiddleBlue/log2iptables en su lugar Fail2ban, porque es un script Bash simple que analiza cualquier archivo de registro con una expresión regular y ejecuta iptables. Por ejemplo, cuando ocurren 5 coincidencias, log2iptables descarta la dirección IP específica. Es genial porque uso la API de Telegram y puede enviarme un mensaje en mi teléfono cuando encuentra un problema :)
Espero que esto ayude!
fuente
Acabo de armar esto, ejecutar cada 15 minutos como cronjob, etc.
fuente
Esta es mi solución alternativa para los ataques SSH. La idea es seguir cerrando SSH daemon si no se usa. Sin puerto abierto sin ataque. Puedes probarlo. Es de código abierto https://github.com/indy99/nnet_port_guard
fuente
Solución automatizada para Centos / RHEL para bloquear actores malos
Aquí hay una secuencia de comandos para que Centos verifique los inicios de sesión fallidos de ssh para cuentas de usuario no válidas y contraseñas incorrectas para cuentas válidas. Si la IP de origen nos ha afectado más de 3 veces y aún no está en la lista de denegación, se agrega a la lista de denegación. Ejecuto esto cada 15 minutos desde el crontab de root. También he rechazado los inicios de sesión de raíz a través de ssh, por lo que la combinación mantiene las cosas bastante tranquilas.
fuente
fail2ban
que hace lo mismo y está probado en batalla.