Si alguna vez miró los registros de autenticación de su servidor, entonces sabe que cualquier servidor conectado a Internet está bajo un aluvión constante de intentos de inicio de sesión por parte de piratas informáticos.
Incluso si su servidor es un servidor de pasatiempos completamente desconocido, los scripts automatizados lo encontrarán y continuamente intentarán abrirse camino mediante la fuerza bruta en el uso de SSH. Aunque no es probable que ingresen siempre que use contraseñas complejas u otras medidas de seguridad, siempre existe la posibilidad de que puedan tener éxito.
Afortunadamente, existe una manera útil y divertida de atrapar a estos piratas informáticos en su servidor y mantenerlos demasiado distraídos para causar problemas.
¿Qué es un Honeypot SSH?
En pocas palabras, un honeypot SSH es un señuelo destinado a parecer una fruta madura para atraer a los ciberdelincuentes y atraerlos para que se dirijan a él. Pero no es un objetivo real, y el hacker a menudo no se da cuenta hasta que es demasiado tarde.
Un honeypot puede tomar muchas formas y tener muchos usos diferentes. A veces son poco más que una distracción, pero otras veces se utilizan para recopilar información sobre el atacante.
Muchas agencias gubernamentales usan trampas para atrapar a los delincuentes, atrayéndolos para que ataquen, solo para recopilar información sobre ellos y atraparlos más tarde. Pero los honeypots también pueden ser utilizados por administradores de sistemas que trabajan para empresas o incluso por aficionados que ejecutan un servidor Linux por diversión.
¿Por qué usar un Honeypot SSH?
Hay muchas razones por las que alguien puede querer implementar un honeypot SSH en su servidor. En algunos casos, es posible que desee usarlo para poder bloquear cualquier conexión futura de ellos. Tal vez simplemente desee alejarlos de los objetivos reales en su sistema. O puede ser con fines educativos: para ayudar a aprender cómo funcionan los ataques.
A los efectos de esta guía, estamos utilizando principalmente el honeypot como una distracción. Específicamente, distraerá al hacker de atacar partes más vulnerables de su servidor y lo mantendrá demasiado ocupado para atacar el servidor de otra persona.
Y, al menos en este caso, el método utilizado también será bueno para reír o dos.
Atrapado en SSH
Esencialmente, lo que queremos hacer es atrapar al pirata informático cuando intenta forzar el inicio de sesión SSH. Hay algunas formas de hacer esto, pero una de las más simples es enviarles lentamente un banner SSH muy largo.
De esta manera, el script automatizado del hacker se quedará atascado esperando un banner. Esto puede durar horas, si no días o semanas. Dado que el script está automatizado, es probable que el pirata informático no le preste mucha atención y no se dé cuenta de que está atascado hasta que haya pasado mucho tiempo.
Esto a veces se denomina en broma «tarpit SSH», ya que el script del pirata informático se atasca en él y no puede salir por sí solo.
Esto requiere que conozcas algunos usos básicos de SSH. Si no está seguro de cómo usar SSH, lea esta guía para comenzar.
sin fin
El programa que estamos usando para lograr esto se llama sin fin y está hecho por skeeto.
Una vez que haya iniciado sesión en su servidor, clone el repositorio. (Necesitas tener git
lo instalé.)
git clone https://github.com/skeeto/endlessh
Ahora que tiene el repositorio en su servidor, deberá cambiar a ese directorio y compilarlo.
Pueden surgir algunos errores al intentar compilar el programa. Lo más probable es que esto signifique que te falta una dependencia que el programa necesita compilar. Deberá verificar qué dependencia dice que falta, luego instalarla con el administrador de paquetes de su distribución.
Una vez que tenga el programa para compilar, querrá moverlo a su directorio bin para que esté en su camino.
sudo mv endlessh /usr/local/bin
Querrá verificar dos veces para asegurarse de que se detecte en su camino.
Debe imprimir el/usr/local/bin/endlessh
sendero. Si este no es el caso, querrá asegurarse de que se haya movido al directorio correcto.
Después de eso, convierta el programa en un demonio de servicio para que pueda funcionar como un systemd
Servicio.
sudo cp util/endlessh.service /etc/systemd/system/
una vez que haya terminado, habilite el servicio para que se ejecute en segundo plano.
sudo systemctl enable endlessh
De forma predeterminada, infiniteh solo funcionará en puertos superiores a 1024, pero queremos que use el puerto SSH predeterminado para que podamos engañar a los piratas informáticos para que intenten atacarlo. Para hacer esto, necesitamos editar el archivo de servicio.
Este ejemplo usa nano para editar el archivo de configuración, pero no dude en usar el editor de texto de su elección.
sudo nano /etc/systemd/system/endlessh.service
Una vez que el archivo esté abierto, elimine el comentario de la siguiente línea eliminando el carácter #:
#AmbientCapabilities=CAP_NET_BIND_SERVICE
Luego agregue un # al comienzo de esta línea:
Guarde el archivo y ejecute este comando:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
Deberá crear y configurar un archivo de configuración para que infiniteh sepa en qué puerto debe ejecutarse. Primero deberá crear un nuevo directorio para él y luego crear el archivo de configuración.
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
El archivo de configuración solo necesitará una sola línea. Esto le indicará a Endlessh que se ejecute en el puerto 22, que es el puerto predeterminado para SSH. Hacemos esto para que sea un objetivo más atractivo para los piratas informáticos. Verán que el puerto SSH predeterminado está abierto y luego intentarán acceder a él.
Ingrese lo siguiente en su archivo de configuración:
Deberá iniciar el servicio sin fin.
sudo systemctl start endlessh
¡Eso es todo al respecto! Ahora tendrá un sin fin ejecutándose en su puerto SSH predeterminado y ya está atrapando a los piratas informáticos.
Probarlo
Solo para asegurarnos de que el honeypot funcione según lo previsto, pretendamos ser un hacker por un segundo e intentemos obtener acceso a SSH en su servidor.
ssh root@<server-ip-address>
Siempre que todo se haya configurado correctamente, debería ver que el ssh
el comando está atascado y no hace nada. Echemos un vistazo para ver qué sucede realmente cuando usted (o un pirata informático real) emite este comando.
Repita el mismo comando pero agregue el -vvv
bandera para usar la opción detallada.
ssh -vvv root@<server-ip-address>
Ahora debería ser evidente cómo esta pequeña herramienta lo está atrapando y evitando que acceda a SSH en su servidor. Lentamente, línea por línea, envía un banner SSH muy grande al cliente.
Y, por supuesto, dado que un hacke tiene esto automatizado con un bot, no se darán cuenta de que esto está sucediendo hasta después de que haya desperdiciado horas, si no días, de su tiempo.
Preguntas frecuentes
1. ¿Evitará esto que los hackers accedan a SSH?
Aunque es un elemento disuasorio bastante bueno, no se garantiza que detenga a los piratas informáticos por completo. Un hacker atento eventualmente notará que ha creado un honeypot en su servidor y puede probar diferentes puertos para acceder a SSH en su servidor.
Sin embargo, esto debería ser suficiente para evitar que los piratas informáticos solo busquen la fruta madura.
2. ¿Cómo uso SSH si este programa se ejecuta en el puerto predeterminado?
Deberá cambiar el puerto en el que se ejecuta SSH. Esta es una buena práctica incluso si no tiene un honeypot en su servidor, ya que los piratas informáticos siempre probarán primero los puertos predeterminados antes de buscar otros.
3. ¿Hay otras opciones que pueda agregar al archivo de configuración?
Sí, hay varias otras configuraciones que puede cambiar, incluido el cambio de la velocidad de retardo.
Puede ver una lista de opciones en el archivo de configuración de muestra en el repositorio de Github.
Ultimas palabras
Ahora que ha aprendido a configurar un honeypot en su servidor para atrapar a los piratas informáticos y mantenerlos distraídos para que no puedan atacar nada más, está lejos de ser la única forma de asegurar el acceso SSH a su servidor.
Consulte este artículo que muestra cómo usar claves de cifrado para iniciar sesión en SSH para ayudar a proteger su servidor aún más.
Credito de imagen: Miel en bote, panal y palo por Yay Images