X

Cómo bloquear en linux la conexión de root con contraseña y conectar con clave pública en putty

Una de las brechas de seguridad más grandes en un sistema gestionado de forma remota es sin duda el acceso remoto de la cuenta root. Para evitar esta vulnerabilidad en linux podemos utilizar claves públicas y así evitar tener que introducir la contraseña al conectarnos de forma remota con putty.

Si solemos administrar sistemas linux de forma remota, tanto si es desde linux, como desde windows con putty, seguramente lo haremos utilizando el protocolo ssh. Es de lo más sencillo, pero hay que tener algunas cosas en mente para evitar problemas mayores.

¿Por qué no usar acceso root con contraseña al gestionar linux?

Un atacante podría averiguar por diversos medios la contraseña de administración o root, y conectarse de forma remota con dicho usuario a nuestro sistema, teniendo así los privilegios más elevados y pudiendo efectuar cualquier cambio en nuestro sistema, o incluso la destrucción de los datos. Para evitar esto la forma más rápida y sencilla es deshabilitar el acceso de root con contraseña mediante ssh, y si siempre accedemos con el mismo equipo incluso mejor si deshabilitamos el acceso remoto con contraseña completamente y lo sustituimos por la clave pública y privada.

Además de esto, el utilizar clave privada evita el paso de introducir la contraseña, por lo que si creemos que nuestro sistema se podría haber comprometido en cierto modo, ningún keylogger ni aplicación por el estilo podría robarnos dichos datos. Es más cómodo y rápido para realizar conexiones ya que no tenemos que andar introduciendo ningún dato, con un click estaremos conectados.

El único punto que debes tener en cuenta es que es necesario utilizar una clave privada y una pública (que pones en el servidor), por lo que si en algún momento alguien consigue dicha clave privada, la ip del servidor a conectar, y el nombre de usuario (en este caso root es lo primero que se prueba), sería capaz de poder conectar a él. Para evitar esto debemos guardar la clave en un equipo en el que tengamos antivirus y firewall a ser posible, y no colgarla en la nube ni comprometer la seguridad de dicho equipo ignorando actualizaciones de seguridad y demás. También podemos ponerla en una memoria usb y conectarla solo cuando vamos a usarla.

¿Cómo habilitar el acceso con clave pública desde putty a linux?

En este caso lo realizo en Centos, pero puedes hacerlo exactamente igual en cualquier distribución de linux que estés usando, normalmente si es un servidor web será Centos o Debian, por lo que no deberías tener problema, sino siempre puedes dejar una pregunta. Pasaremos por alto el tener instalado el servicio ssh en nuestro servidor, pues el tutorial no va de eso, además tendremos descargado putty de su página oficial.

Ahora que tenemos las herramientas que necesitamos, nos conectaremos por ssh a nuestro servidor, y ejecutaremos PUTTYGEN.EXE en nuestro equipo, el cual encontraremos en la misma carpeta que putty.exe. Seguiremos estos pasos:

  • En puttygen le daremos a generate, acto seguido tendremos que mover el ratón por el recuadro que hay justo encima del botón hasta que se llene la barra de progreso. Esto es para generar una secuencia aleatoria imposible de reproducir.
  • Una vez termine nos mostrará en pantalla la clave pública y demás datos. Tendremos que darle a Save public key y Save private key y guardar los dos archivos en la carpeta que prefiramos. La clave pública no es necesario que la guardemos si la vamos a utilizar en este momento, pero nos puede servir si vamos a usarla con más de un servidor a la vez, de esta forma solo necesitaremos una clave privada.
  • Ahora nos iremos a nuestra consola de comandos a la que nos hemos conectado antes por ssh, en el servidor que vamos a poner la clave.
  • Editaremos el archivo authorized_keys para añadir la nueva clave generada de la siguiente forma
    nano ~/.ssh/authorized_keys

     

  • Copiaremos del recuadro de clave pública en puttygen, asegurándonos de que lo que copiamos sea una única línea como la siguiente
    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArvFvcDLKgiVwC6MMtlApi8H8D7Pj2nvw361Tamn1FLtlWyK9aK2f4gL4eBaMkj057FR6FFyJzERaEo/lRl4aZXOUWc3QGsyQrAbbjr5njFEPo8NoJTtV5mQfwChcW9PMRVZ1GuwVXkWBoY829fB3SS4876J7/GSRZAG48ITGJxuB8CaZzkqPE2E0td+Ee+0Y7DjqjqKS6OlTc/cC2ImshTc1tA9gNK1FJqM7D00HPreJjOxaZ7y6VcVLLJvbcexf/ATDMJedbeSl57uANB+z5vluaE2/qOu/pvDCdIlHHE2B0Z9xaFODFUb2jRva0XxrUZOryhPMVQ1aj16CnbcBMQ== rsa-key-20160104
  • Y la pegaremos dentro del archivo que estamos editando  (authorized_keys) por ssh abajo del todo en caso de haber más claves que usemos, lo normal será que no haya ninguna otra, y si tú no las has creado deberías eliminar las otras líneas que haya en este archivo y dejar solo esta clave. (puedes pegarlo si estás conectado en putty con botón derecho una vez la tengas en el portapapeles).
  • Le daremos a ctrl+o y ctrl+x para guardar y cerrar el archivo, ya hemos terminado con el servidor.
  • Ahora abriremos putty.exe y en la pantalla de conexión configuraremos varios parámetros en varias secciones:
    Configuramos la ip de conexión

    El usuario con el que conectaremos de forma automática

    Y por último seleccionaremos la clave privada que vamos a usar:

    Como ves podemos seleccionarla de una memoria usb que no tendremos conectada siempre a nuestro pc.
  • El último paso será guardar esta configuración en el mismo putty, para que la siguiente vez solo tengamos que hacer doble click en la conexión para conectar automáticamente, por lo que volveremos a la primera pantalla, le daremos un nombre y guardaremos:

    Y con hacer doble click sobre el nombre que le hayamos dado conectará automáticamente.

Desde este momento podremos acceder a nuestra máquina por ssh sin necesidad de introducir una contraseña.

Cómo bloquear el acceso a root con contraseña en linux

Ahora, después de comprobar que funciona correctamente la conexión con la clave pública, el siguiente paso será desactivar el acceso de la cuenta root con contraseña en el servidor, para ello simplemente tendremos que modificar la configuración del ssh.

  • Abriremos el archivo ssh.conf y cambiaremos su configuración
    CentOS 6, 7 y Debian
    nano /etc/ssh/sshd_config
    
    Cambiar
    #PermitRootLogin yes
    
    Por
    PermitRootLogin without-password
  • Ahora solo nos queda reiniciar el servicio ssh con
    service ssh restart
    o en CentOS
    service sshd restart

A partir de este momento ya no nos será posible acceder con la cuenta de root utilizando una contraseña, por lo que tendremos que usar siempre nuestra clave privada para ello.

En caso de que queramos acceder con contraseña y hacer cosas que solo podemos hacer con el usuario root, podemos crearnos otro usuario con permisos normales, y coger permisos root con el comando #su y la contraseña de root.

¿Controlas equipos mediante ssh? ¿Qué tipo de servicios?

 

VicHaunter:
    Categorías: Ayuda
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.