[DESCARGO DE RESPONSABILIDAD] Me doy cuenta de que llego tarde a la fiesta, pero me gustaría pegar una respuesta que di a otra pregunta , porque siento que puede ofrecer una buena idea a los lectores, y esta pregunta parece ser la respuesta. lugar para información ssh básica.
Hubo un problema similar que me llamó la atención después de leer esta pregunta aquí en AskUbuntu y comprobar mi VPS, solo para ver una gran cantidad de intentos de fuerza bruta. Fue entonces cuando decidí tomar medidas.
Ahora, de acuerdo con la pregunta a la que me vinculé, si desea ver intentos fallidos de inicio de sesión en su máquina a través de ssh (podrían ser intentos de fuerza bruta o algo), intente escribir esto:
grep sshd.\*Failed /var/log/auth.log | less
Si la salida consta de varias líneas, es decir, muchos intentos de fuerza bruta, especialmente si se han producido entre intervalos cortos, es posible que desee realizar las siguientes acciones:
Cambiar el archivo de configuración ssh
Para hacer esto, abra el archivo ubicado en / etc / ssh / sshd_config con su editor favorito, así vim /etc/ssh/sshd_config
.
1. Intente mover ssh desde el puerto 22 : Ahora ubique la línea que dice:
# What ports, IPs and protocols we listen for
Port 22
y comenta el Puerto 22, y usa a cualquiera que te guste. Ejemplo:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Recuerde que los puertos por debajo de 1024 necesitan un permiso especial (root). No sé cómo esto podría interferir con eso, pero solo digo.
2. Desactive los inicios de sesión de raíz a través de ssh : dado que el nombre de usuario raíz es predecible y proporciona acceso completo a su sistema, no es aconsejable proporcionar acceso sin restricciones a esta cuenta a través de SSH. Localice la línea que lee PermitRootLogin y configúrelo en no .
PermitRootLogin no
3. Desactive la autenticación de contraseña : genere y use claves SSH para iniciar sesión en su sistema. Sin las contraseñas habilitadas, los atacantes deberán adivinar (o robar) su clave privada SSH para obtener acceso a su servidor. Algo que es muy muy difícil. Proceda a buscar la línea que lee Autenticación de contraseña y configúrela como no
PasswordAuthentication no
!¡ADVERTENCIA! Antes de hacerlo, consulte esta guía aquí sobre cómo configurar la autenticación de certificado.
NOTA: Después de haber realizado los cambios, use sudo /etc/init.d/ssh restart
. Para conectarse a otro puerto a través del uso de ssh: ssh username@hostname.com -p <port_number>
.
Configurar un firewall
Consulte esta guía sobre cómo configurar el firewall extremadamente potente y efectivo, que está integrado en Linux, IPTables .
Configura scripts para ayudarte con la seguridad
Uno que uso personalmente y que rápidamente viene a mi mente es Fail2Ban . Fail2ban supervisará sus archivos de registro en busca de intentos fallidos de inicio de sesión. Después de que una dirección IP haya excedido el número máximo de intentos de autenticación, se bloqueará a nivel de red y se iniciará sesión en el evento /var/log/fail2ban.log
. Para instalarlo:sudo apt-get install fail2ban
Verifique el historial de comandos a través de ssh
Hay un comando de Linux, llamado history
, que le permite ver qué comandos se han ingresado hasta ese punto. Intenta escribir history
en una terminal para ver todos los comandos hasta ese punto. Podría ayudar si fueras root .
Para buscar un comando en particular, intente:history | grep command-name
Para enumerar todos los comandos después de ssh :fc -l ssh
También puede editar comandos usando vi (no lo he probado vim, aunque supongo que también funciona):fc -e vi
También puedes eliminar el historial :history -c
NOTA: Si no eres fanático del comando, history
también hay un archivo en tu directorio de inicio ( cd ~
), llamado .bash_history (si estás usando bash) que puedes cat
ver todo lo que se ha escrito en el shell bash.
unset HISTFILE
dentro de bash, y luego su historial de bash no se registrará.