Estas aquíBlogs / blog de calel / Proteger a root de ataques SSH con una llave de autenticación

Proteger a root de ataques SSH con una llave de autenticación


Por calel Enviado el 11 Octubre 2007

En un artículo reciente [1] mostramos como limitar la tasa de conexiones SSH entrantes con iptables. Sin embargo, la cuenta de root puede seguir siendo atacada, aun limitando la tasa, 3 veces por minuto, según los parámetros sugeridos en el artículo mencionado. Para eliminar toda posibilidad de ingreso a root con dichos ataques, genera una llave de autenticación SSH RSA en tu computador,

ssh-keygen -t rsa -b 2048

Esto crea un par de llaves en ~/.ssh/, una privada id_rsa, que por ningún motivo debes perder, y otra pública, id_rsa.pub. -b indica el número de bits de la llave. 2048 es considerado suficiente.

Transfiere la llave pública al servidor, por ejemplo con scp, e insértala en el archivo de llaves autorizadas de root,

cat id_rsa.pub >> /root/.ssh/authorized_keys

Protege la lista de llaves autorizadas con,

chmod 600 /root/.ssh/authorized_keys

Desde el computador que generó la llave de autenticación SSH, ingresa a la cuenta de root del servidor,

ssh root@servidor

(debería ingresar automáticamente sin mediación de una clave).

Ahora en el servidor, edita /etc/ssh/sshd_config y modifica

PermitRootLogin yes

a

PermitRootLogin without-password

Reinicia el daemon SSH.

La opción without-password deshabilita la autenticación de root con una clave; solo se puede ingresar a root con la llave de autenticación y desde computador que tiene la llave privada. Así se elimina toda posibilidad de un ataque a root exitoso.

[1] http://www.debianchile.org/?q=node/20

Tu voto: Nada Promedio: 7 (2 votos)

Me quedo una duda sobre el número de bits de la llave. ¿Entre que rangos puede ir? Si uno es suficientemente paranoico, haría la llave más dificil de desencriptar, pero supongo que esto trae sus consecuencias en el rendimiento, ¿es correcta mi intuición?

El valor mínimo de los bits es 768 para una llave RSA. No creo que exista valor máximo, pero debe estar limitado por el tiempo que se demora el computador en generar la llave. Prueba generar llaves con nx1024 bits y vas a ver como el tiempo de generación aumenta en forma exponencial con n. No creo que valores del orden de n=4-8 afecte demasiado el rendimiento.