General

Paso a paso. Servidor "seguro" de correo, DNS y Web. Instalación y configuración de SSH.

En esta entrega de la serie, vamos a instalar y configurar OpenSSH para permitirnos el acceso desde cualquier ordenador y administrar nuestro servidor.

Además, añadiremos algunas configuraciones esenciales para mejorar la seguridad de nuestro sistema:

En este artículo, veremos:

  1. Instalación de OpenSSH en Debian.
  2. Configuración inicial. Denegar acceso a root. Cambiar el puerto.
  3. Desactivar el inicio de sesión interactivo por teclado. Solo permitiremos el inicio de sesión usando un par de clave pública/clave privada.
  4. Instalación de denyhosts para bloquear IPs cuando se registren una serie de fallos consecutivos.

Para realizar estas tareas, me he apoyado en el siguiente artículo:

http://thinkhole.org/wp/2006/10/30/five-steps-to-a-more-secure-ssh/

Por supuesto, lo primero que tenemos que hacer es instalar el programa encargado de prestar ese servicio. En nuestro caso, es OpenSSH, quizás porque es el más extendido en el mundo. En Debian, realizar una tarea así es realmente sencilla:

$ sudo apt-get install openssh-server

Gracias a esa única orden, tendremos instalado el servicio SSH en nuestro servidor. Ahora solo nos quedará configurarlo. Para ello, tenemos que editar el fichero (en Debian) /etc/ssh/sshd_config, y aplicar los siguientes cambios:

Port 22 –> Es mejor que elijas un puerto distinto, aunque solo sea por no darle trabajo hecho a nadie.

Protocol 2 –> La versión 2 del protocolo es más segura, desactiva la versión 1.

PermitRootLogin no –> Imprescindible no permitir que root acceda directamente por esta vía.

Estas configuraciones son las mínimas para tener funcionando nuestro servicio. Ahora, solo tendremos que configurarlo para que se inicie automáticamente. Para ello, comprobaremos si existe el fichero /etc/rc2.d/S20ssh. De no ser así, lo creamos:

$ sudo ln -s /etc/init.d/ssh /etc/rc2.d/S20ssh

Ahora, solo nos queda añadir algunas configuraciones que hagan nuestro servicio SSH un poco más seguro.

Quizás la más laboriosa es la desactivación de los inicios de sesión interactivos por teclado. La ventaja de éstos es que, desde cualquier equipo, conociendo la clave del usuario con acceso, podríamos acceder. Sin embargo, la desventaja es cualquier usuario ilegítimo podría intentar iniciar sesión usando técnicas de ingeniería social o fuerza bruta. Sin embargo, si usamos un par de claves pública y privada, solo si somos poseedores de la clave privada podremos acceder al sistema. Siempre podremos guardarnos el fichero de clave privada en una pendrive y ya tendremos lo mejor de ambos mundos.

A continuación, veremos como configurar OpenSSh para ello:

En primer lugar, vamos a crear un par de claves, la pública y la privada, para el usuario al que vamos a permitir el acceso. La clave privada es la que deberá quedar en posesión del usuario quién deberá custodiarla de forma segura. La clave pública quedará en el servidor, en la carpeta personal del usuario.

Vamos a crear el par de claves. Para ello, usaremos la utilidad ssh-keygen, habiendo iniciado sesión primero con el usuario al que queremos conceder el acceso:

 

Esto nos habrá creado dos ficheros bajo $HOME/.ssh/: id_rsa y id_rsa.pub, correspondientes a la clave privada y pública, respectivamente, del usuario pruebas.

Como hemos dicho antes, la clave privada se la debe llevar el usuario y la clave pública deberá permanecer en su carpeta personal donde OpenSSH pueda encontrarla. Si miramos el fichero de configuración de OpenSSH, deberemos encontrar una línea como la siguiente:

AuthorizedKeysFile      %h/.ssh/authorized_keys2

En esta línea, le indicamos a OpenSHH que busque ese fichero, dentro de la carpeta personal del usuario, y que en él estarán contenidas las claves que dan acceso a ese usuario. Por ello, deberemos copiar nuestra clave pública, recientemente generada, en ese fichero:

$ cat id_rsa.pub > authorized_keys2

Si tenemos curiosidad, podemos ver la forma de nuestra clave pública:

 

Por último, solo nos queda configurar nuestro cliente de correo para que utilice la clave privada. Esta configuración es dependiente del cliente. Yo voy a explicar como hacerlo con Putty, que es el que uso por defecto. Putty tiene una peculiaridad: se deben convertir los ficheros de clave privada a un formato tratable por él. Para ésto, usaremos la utilidad PuttyGen.exe disponible en su sitio web.
Bien, primero deberemos hacer llegar el fichero de clave privada a nuestro equipo con Windows. Una vez lo tengamos, abriremos PuttyGen.exe y presionaremos sobre Load para importar el fichero de clave privada. Nos pedirá la clave que especificamos al generarlo. Una vez importado, ya solo nos queda presionar sobre Save Private Key para generar el fichero .ppk que es compatible con Putty.

 

 

Y ya está, ahora, cuando creamos nuestro perfil de conexión en Putty, iremos hasta SSH->Auth y seleccionaremos el fichero .ppk que hemos creado. También almacenaremos ese fichero en nuestra pendrive para poder utilizarlo en cualquier equipo puntual.

 

Ahora vamos a ver cómo instalar y configurar denyhosts para intentar bloquear intentos de conexión no legítimos. Esto es un arma de doble filo, ya que podríamos bloquearnos a nosotros mismos. En Debian, para variar, es tremendamente sencillo instalar DenyHosts:

# apt-get install denyhosts

La configuración es muy simple y, seguramente editando el fichero /etc/denyhosts.conf y leyendo las explicaciones que vienen en él no tendrás problemas para ajustarlo a tus necesidades.

Acerca del autor

Víctor Campuzano

Growth Hacker no soy, pero lo vivo. De mi blog no vivo, pero aquí si que soy como soy. Marketing Digital, Creatividad y Blogging con pasión y desenfado. Alumno del Postgrado de Growth Hacking por IEBS.

Ahora es tu momento

*

Uso de cookies

Esta web utiliza cookies propias y de terceros, como Google Analytics, para optimizar su navegación y realizar tareas de análisis y las pertenecientes a WordPress. Advierto que si continuas navegando, aceptas su uso. Puede cambiar la configuración, desactivarlas u obtener más información.

ACEPTAR