Deshabilitar algoritmos MAC y de cifrado vulnerables utilizados por SSH en Ubuntu 14.04 (o cualquier otra distro GNU/Linux)
Si todavía tienes alguna versión de Ubuntu 14.04 LTS (u otra distro vieja) en producción, lo más probable es que el servicio de SSH esté aceptando algoritmos MAC y/o de cifrado vulnerables. Actualmente, los algoritmos de cifrado considerados vulnerables son: CBC (3des-cbc, aes128-cbc, aes192-cbc, aes256-cbc, blowfish-cbc, cast128-cbc y rijndael-cbc@lysator.liu.se) [1] [2] y RC4 (arcfour, arcfour128 y arcfour256) [3]. Mientras que los algoritmos MAC en esta condición son: MD5 (hmac-md5, hmac-md5-96, hmac-md5-96-etm@openssh.com y hmac-md5-etm@openssh.com) y algoritmos de 96-bit (hmac-sha1-96 y hmac-sha1-96-etm@openssh.com).
Ahora bien, cómo saber si estos algoritmos están siendo utilizados por el servicio de SSH de un sistema GNU/Linux en particular? Simplemente ejecutando el siguiente comando dentro del mismo sistema que queremos verificar (y suponiendo que el servicio SSH está escuchando en el puerto TCP/22):
Aquí se pueden observar todos los algoritmos que están soportados por el servicio de SSH (resaltados en la imagen anterior con color azul). En este ejemplo, el servicio está usando la configuración que viene por defecto en Ubuntu 14.04 LTS y que permite el uso de los algoritmos vulnerables previamente mencionados (resaltados con color rojo).
Para remediar esto, hay que hacer lo siguiente:
1) Editar el archivo
2) Reiniciar el servicio de SSH para aplicar los cambios.
Una vez hecho esto, el servicio de SSH dejará de aceptar algoritmos MAC y de cifrado considerados vulnerables, mejorando así la seguridad de este servicio. En las versiones posteriores de Ubuntu LTS (como 16.04 o 18.04) esta modificación no es necesaria. De igual forma, los pasos aquí detallados también pueden utilizarse para verificar la configuración del servicio de SSH y realizar los ajustes mencionados en cualquier distro GNU/Linux.
Referencias:
[1] https://www.kb.cert.org/vuls/id/958563/
[2] https://tools.ietf.org/html/rfc4344
[3] https://tools.ietf.org/html/rfc7465
Ahora bien, cómo saber si estos algoritmos están siendo utilizados por el servicio de SSH de un sistema GNU/Linux en particular? Simplemente ejecutando el siguiente comando dentro del mismo sistema que queremos verificar (y suponiendo que el servicio SSH está escuchando en el puerto TCP/22):
# ssh -vvv localhost -p 22El comando anterior, debería mostrar una salida similar a la siguiente:
Para remediar esto, hay que hacer lo siguiente:
1) Editar el archivo
/etc/ssh/sshd_config
y agregar las siguientes dos líneas al final:Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com MACs hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com
2) Reiniciar el servicio de SSH para aplicar los cambios.
# service sshd restart
Una vez hecho esto, el servicio de SSH dejará de aceptar algoritmos MAC y de cifrado considerados vulnerables, mejorando así la seguridad de este servicio. En las versiones posteriores de Ubuntu LTS (como 16.04 o 18.04) esta modificación no es necesaria. De igual forma, los pasos aquí detallados también pueden utilizarse para verificar la configuración del servicio de SSH y realizar los ajustes mencionados en cualquier distro GNU/Linux.
Referencias:
[1] https://www.kb.cert.org/vuls/id/958563/
[2] https://tools.ietf.org/html/rfc4344
[3] https://tools.ietf.org/html/rfc7465