Configuración inicial de un servidor con Debian 8
Actualizado el 27 de septiembre, 2016. Por OpenCloud.
Cuando usted crea un nuevo servidor con la distribución Debian 8, hay varios pasos y criterios de configuración que debería seguir en pro de establecer una configuración básica. Esto aumentará la seguridad y facilidad de uso y le dará una base sólida para las acciones posteriores. Este tutorial explica algunos pasos básicos de configuración para optimizar el uso de su servidor con Debian 8, sígala paso a paso.
Primer paso: Inicio de sesión root
Para iniciar sesión en su servidor, deberá saber la dirección IP pública de su servidor y la contraseña de la cuenta de usuario root. Luego ingrese a su servidor usando su cliente SSH preferido.
Si usted aún no está conectado a su servidor, inicie sesión como usuario root usando el siguiente comando:
ssh root@dirección_IP_servidor
Recuerde remplazar dirección_IP_servidor
con la dirección IP real de su servidor. También tenga en cuenta que este comando se conecta a SSH usando el puerto por defecto (22). Si desea usar un puerto distinto agregue el parámetro -p
al comando anterior, seguido del número de puerto. Por ejemplo, si se conecta a su servidor usando SSH en el puerto 1234 y su dirección IP es 111.222.33.44
entonces usaría el comando ssh root@111.222.33.44 -p 1234
.
Sobre el usuario root
El usuario root es el usuario administrador de un entorno Linux y tiene amplios privilegios dentro del sistema. Debido a los privilegios de la cuenta root, se recomienda no usarla regularmente. Esto se debe a que parte del poder inherente de una cuenta root es la capacidad de hacer cambios que podrían ser destructivos, incluso por accidente.
El siguiente paso es establecer una cuenta de usuario alternativa con permisos más reducidos para hacer operaciones del día a día. Le enseñaremos cómo obtener mayores privilegios en los momentos que sean necesarios.
Segundo paso: Crear un nuevo usuario
Una vez que inicie sesión como root, estamos listos para añadir una nueva cuenta de usuario que utilizaremos para iniciar sesión de ahora en adelante.
Este ejemplo crea un nuevo usuario llamado "debiana", pero debe remplazarlo con un nombre de usuario de su preferencia:
adduser debiana
Se le harán varias preguntas, comenzando con una contraseña para la cuenta.
Use una contraseña sólida. Opcionalmente, llene cualquier otra información adicional que considere. Esto no es un requerimiento y simplemente puede seguir presionando Enter en cualquiera de los pasos que quiera saltar. Al finalizar, confirme que los datos ingresados son correctos escribiendo y
y presionando Enter.
Tercer paso: Privilegios root
Ahora, tenemos una nueva cuenta de usuario con los privilegios de una cuenta regular. Sin embargo, en algunas ocasiones necesitamos hacer tareas administrativas.
Para evitar tener que cerrar la sesión del usuario normal y volver a iniciar sesión con la cuenta root, podemos configurar lo que se llama un "superusuario" que representa los privilegios root en una cuenta normal. Esto permitirá que nuestro usuario normal pueda ejecutar comandos con privilegios administrativos poniendo la palabra sudo
antes de cada comando.
Instalar la utilidad "sudo"
Debian 8 no viene con la utilidad "sudo" instalada, por lo que tendremos que instalar usando el gesto de paquetes apt-get
.
Primero, actualice su sistema con apt-get:
apt-get update
Luego use este comando para instalar sudo:
apt-get install sudo
Ahora podrá usar los comandos sudo
y visudo
.
Otorgar los privilegios sudo
Para agregar estos privilegios a nuestro nuevo usuario, debemos agregar el usuario al grupo "sudo". Por defecto, Debian 8 permite la ejecución del comando sudo
a los usuarios pertenecientes al grupo sudo
.
Como usuario root
, ejecute este comando para añadir al nuevo usuario al grupo sudo (sustituyendo con su nombre de usuario real):
usermod -a -G sudo debiana
¡Ahora su usuario podrá ejecutar comandos con privilegios de superusuario!
Cuarto paso: Añadir autenticación con clave pública (recomendado)
El próximo paso para asegurar su servidor es establecer la autenticación con clave pública para su nuevo usuario. Configurar esto aumentará la seguridad de su servidor debido al requerimiento de una clave privada SSH para poder iniciar sesión.
Generar un par de claves
Si todavía no tiene un par de claves SSH, las cuales están compuestas de una clave privada y otra pública, necesita generarlas. Si usted ya tiene una clave que desee usar, pase a la sección Copiar la clave pública.
Para generar una par de claves, ingrese el siguiente comando en el terminal de su máquina local:
ssh-keygen
Asumiendo que su usuario local se llama "usuariolocal", usted podrá ver una salida similar a la siguiente:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/usuariolocal/.ssh/id_rsa):
Presione Enter para aceptar la ruta predeterminada o ingrese una nueva ubicación para guardar sus claves.
Luego, se le pedirá un passphrase o clave de acceso con la cual puede asegurar sus claves. Usted puede ingresar un passphrase o dejar el campo en blanco.
Nota: Si deja el passphrase en blanco, usted podrá usar su clave privada para la autenticación sin necesidad de ingresar un passphrase. Si usted coloca un passphrase, necesitará tanto la clave privada como el passphrase para poder iniciar sesión. Asegurar sus claves con un passphrase es más seguro, pero no es obligatorio. Solo el hecho de usar su par de claves ya es un método más seguro que una autenticación básica por contraseña.
Se generarán entonces una clave privada, id_rsa
y una clave pública, id_rsa.pub
, en el directorio .ssh
del directorio home
del usuario local. Recuerde que su clave privada no debe ser compartida con absolutamente nadie que no requiera acceso a sus servidores.
Copiar la clave pública
Después de generar un par de claves SSH, usted tendrá que copiar su clave pública en su nuevo servidor. Explicaremos dos formas sencillas de lograrlo.
Opción 1: usando ssh-copy-id
Si su máquina local tiene el script ssh-copy-id
instalado, puede usarlo para instalar la clave pública en cualquier usuario para el cual tenga las credenciales de ingreso.
Ejecute el script ssh-copy-id
especificando el usuario y dirección IP del servidor en el cual quiere instalar la clave, por ejemplo:
ssh-copy-id debiana@dirección_IP_servidor
Después de proporcionar la clave cuando se le solicite, la clave pública será añadida al archivo .ssh/authorized_keys
del usuario remoto. La clave privada correspondiente ahora puede ser usada para ingresar al servidor.
Opción 2: instalar la clave manualmente
Asumiendo que generó un par de claves SSH usando el paso anterior, utilice el siguiente comando en el terminal de su computador local para imprimir su clave pública (id_rsa.pub
):
cat ~/.ssh/id_rsa.pub
Esto debería imprimir su clave pública SSH, la cual se debería ver similar a lo siguiente:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdRAVckUhI+u1iNkyEBVDmR3NloS6UzpTQc81kcBZddEpBhTuew68P4VB85mCg4WHKsu6YtqtZHo5e0UihSDte2bTPr0kgAPSH+8WXfg/A2XWKJUQQ44pHdHtvN/zDNNqy45XebnyO4Fy8Szctjv6/xWF9ps82EtK6J/WqP0bUkrXKF8nhHWAE4RVr7X0dntPp3bi5LUjer9gN5D2M/HNdTTDK+OH/nW273++89qZWlkRj6KpC1a0ffUjZDQ6WBfp0zd8M+kHEHL98DIhtkd33Z3+DV6qzRsOR55I0BkEHfUNjlQSTTuz12MQmpsQv8BpCnW+K2zkc4tP+rLG5Zrbx usuario@sudominio.com
Seleccione la clave pública y cópiela en su portapapeles.
Añadir la clave pública a un nuevo usuario remoto
Para habilitar el uso de la clave SSH al autenticarse remotamente como el nuevo usuario, usted tendrá que añadir la clave pública en un archivo especial que se encuentra en el directorio home
del usuario.
En el servidor, como usuario root, ingrese el siguiente comando para cambiar al nuevo usuario (sustituya con su nombre de usuario real):
su - debiana
Ahora estará en el directorio home
de su nuevo usuario.
Cree un nuevo directorio llamado .ssh
y restrinja sus permisos con los siguientes comandos:
mkdir .ssh
chmod 700 .ssh
hora debe abrir el archivo en el directorio .ssh
llamado authorized_keys
con un editor de texto. Usaremos nano para editar el archivo:
nano .ssh/authorized_keys
Ahora ingrese su clave pública (que debería haber copiado anteriormente) pegándola en el editor.
Presione CTRL + X para salir del archivo, luego escriba Y
para guardar los cambios realizados y presione Enter para confirmar el nombre del archivo.
Luego restrinja los permisos del archivo authorized_keys
con este comando:
chmod 600 .ssh/authorized_keys
Ingrese este comando una sola vez para regresar al usuario root:
exit
Ahora puede iniciar la sesión SSH con su nuevo usuario, utilizando la clave privada como forma de autenticación.
Quinto paso: Configurar el demonio SSH
Ahora que tenemos nuestra nueva cuenta, podemos asegurar nuestro servidor incluso un poco más al modificar la configuración de su demonio SSH (el programa que nos permite iniciar sesión de forma remota) desactivando el acceso SSH remoto para la cuenta root.
Comience abriendo el archivo de configuración con su editor de texto como usuario root:
nano /etc/ssh/sshd_config
Halle la siguiente línea dentro del archivo:
Extracto del archivo: /etc/ssh/sshd_config (Antes de la edición)
PermitRootLogin yes
Aquí tenemos la opción de deshabilitar el inicio de sesión con el usuario root a través de SSH. En general, esto es una práctica segura y recomendada ya que solo se podrá ingresar al servidor usando usuarios regulares y escalar privilegios solo cuando sea necesario.
Modifique esta línea, cambiando el valor asignado al parámetro a no
. Al terminar la línea debe quedar así:
Extracto del archivo: /etc/ssh/sshd_config (Después de la edición)
PermitRootLogin no
¡Desactivar el inicio de sesión root de forma remota es una práctica absolutamente recomendada!
Cuando haya terminado de hacer sus cambios, guarde y cierre el archivo usando el método que prefiera para el editor nano. Por ejemplo: CTRL + X, luego Y y finalmente Enter.
Recargar el servicio SSH
Ahora que hemos realizado nuestros cambios, debemos reiniciar el servicio SSH para que estos cambios surtan efecto y podamos usar la nueva configuración.
Ejecute el siguiente comando para reiniciar SSH:
systemctl restart ssh
Ahora, antes de cerrar la sesión del servidor, deberíamos probar la nueva configuración. Esto debido a que no queremos desconectarnos hasta confirmar que las nuevas conexiones pueden establecerse con éxito.
Abra una nueva ventana de terminal. En la nueva ventana, intentaremos establecer una nueva conexión con nuestro servidor. Esta vez, en lugar de usar la cuenta root, usaremos la cuenta de nuestro usuario de ejemplo: debiana
:
ssh debiana@dirección_IP_servidor
Nota: Si usted está usando PuTTY para conectarse a sus servidores, asegúrese de actualizar el número de puerto en la sesión para que coincida con la configuración actual de su servidor.
Se le pedirá el nombre del usuario que configuró. Después de eso, siempre se iniciará sesión con el nuevo usario.
Recuerde: si necesita ejecutar un comando con privilegios root debe precederlo con la opción sudo
, por ejemplo:
sudo comando_root
Si todo resulta bien, puede salir de sus sesiones usando:
exit
Recursos adicionales
En este punto, ya tiene una base sólida en su servidor. Puede instalar cualquier software necesario de ahora en adelante. Puede consultar los siguientes recursos en busca de información adicional con respecto a este tema. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos dar fe de la actualidad o precisión de los contenidos externos.
- Consulte nuestra plataforma de documentación en donde podrá encontrar guías completamente en español con instrucciones detalladas según su distribución de Linux.
- Mientras comienza a asegurar su servidor con SSH, puede continuar mejorando su seguridad al instalar programas como Fail2Ban o Deny Hosts, para prevenir ataques de fuerza bruta en el servidor.
- Documentación oficial de Debian.