domingo, 31 de enero de 2016

Denegar a Root acceso por SSH.


Había pasado algo de tiempo sin escribir, es que eso de salir de tu país para intentar hacerte vida en otro lado no es tan fácil como suena; pero bueno, a lo que nos atañe.

Como en el presente artículo vamos a hablar de SSH, primero vamos a definirlo; me ha gustado mucho la definición del MIT (Massachusetts Institute of Technology) así que la cito a continuación

"SSH™ (o Secure SHell) es un protocolo que facilita las comunicaciones seguras entre dos sistemas usando una arquitectura cliente/servidor y que permite a los usuarios conectarse a un host remotamente. A diferencia de otros protocolos de comunicación remota tales como FTP o Telnet, SSH encripta la sesión de conexión, haciendo imposible que alguien pueda obtener contraseñas no encriptadas.

SSH está diseñado para reemplazar los métodos más viejos y menos seguros para registrarse remotamente en otro sistema a través de la shell de comando, tales como telnet o rsh. Un programa relacionado, el scp, reemplaza otros programas diseñados para copiar archivos entre hosts como rcp. Ya que estas aplicaciones antiguas no encriptan contraseñas entre el cliente y el servidor, evite usarlas mientras le sea posible. El uso de métodos seguros para registrarse remotamente a otros sistemas reduce los riesgos de seguridad tanto para el sistema cliente como para el sistema remoto." http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-ssh.html 31 Enero 2016.

Ok, ahora vamos con lo que se indica en el título (Denegar a Root acceso por SSH).

Por cuestiones de estudios estaba intentando hacer unas verificaciones de seguridad en mi ordenador, el cual tiene Debian Stretch, y me percaté que mi SSH permitía que root se conectara al sistema, esto implica un gran bug de seguridad ya que si por cosas del destino, alguien quisiera hacer haking a mi equipo, el ssh se las pone más fácil; por lo tanto procedí a hacer las verificaciones y correcciones correspondientes.

Sabemos que existe un archivo de configuración del demonio de ssh, en ese archivo es que debemos hacer los cambios correspondientes, procederemos entonces a abrir una cónsola como #root

$su
#

Con nuestro editor favorito vamos a abrir el archivo de configuración del demonio, el cual se encuentra en la ruta /etc/ssh/sshd_config

#nano /etc/ssh/sshd_config

En la sección de autenticación encontraremos la información que buscamos cambiar.
En mi caso, estaba as:

# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

Veamos qué significa

PermitRootLogin = prohibir-contraseña prohíbe todos los métodos de autenticación interactivas, permitiendo sólo publickey, Host-based y autenticación GSSAPI.

Sin embargo, yo no deseo, por ninguna razón, que root ingrese por SSH, así que procedí a cambiar el valor de PermitRoot Login a "NO", un no rotundo y definitivo.

# Authentication:
LoginGraceTime 120
#PermitRootLogin prohibit-password
PermitRootLogin no
StrictModes yes

Además, deseo limitar, muy específicamente, los usuarios que pueden ingresar a mi equipo por SSH; esto lo hago añadiendo la siguiente línea:

AllowUsers UsuarioX, UsuarioY

Cambiamos UsuarioX y UsuarioY por los nombres de los usuarios a los que deseamos darle acceso por ssh.

Guardamos y cerramos nuestro archivo (Ctrl + O y Ctrl + X respectivamente si estan usando nano).

Reiniciamos nuestro servidor SSH

/etc/init.d/ssh restart

Y misión cumplida, ahora a seguir estudiando...

Copyleft Rait3 - 2016