/ debian

Configuración inicial de Debian 9 Stretch

Introducción
Para arrancar con un servidor nuevo con Debian 9 necesitamos primero realizar algunas configuraciones básicas al inicio. Con esto vamos a aumentar la seguridad y usabilidad de tu servidor.

1) Root Login

Para iniciar sesión en tu servidor necesitas conocer la dirección IP pública y la contraseña para el usuario "root". Abre la terminal en tu computadora y conectate:

$ ssh root@<direccion-ip>

Completa el inicio de sesión aceptando la advertencia sobre la autenticación del host (si es que aparece), ingresa la contraseña.

Acerca del usuario Root
El usuario root es el usuario de carácter administrativo en un entorno Linux que tiene privilegios muy amplios. Motivo por el cual no se recomienda su uso de forma regular. Esto se debe al uso de mejores prácticas y así evitar cambios drásticos por accidente.

2) Crea un nuevo usuario

Ya conectado al servidor y con la sesión root, vamos a crear un usuario nuevo con el comando:

# adduser israel

El servidor te va a pedir que ingreses la contraseña y la confirmes; también te va a pedir información adicional sin embargo no es necesaria.

3) Privilegios

AHora ya tenemos un nuevo usuario con privilegios regulares predeterminados, sin embargo el nuevo usuario necesitará realizar algunas tareas administrativas. Para evitar los cambios de usuario regular a root y viceversa podemos configurar un super usuario con privilegios root. Esto le permitirá a nuestro usuario a ejecutar comandos con privilegios administrativos agregando la palabra "sudo" antes de cada comando.

Instalar Sudo
A partir de Debian 8 es necesario instalar sudo

Así que primero actualizamos los paquetes index:

# apt-get update

y después usamos el siguiente comando para instalar sudo:

# apt-get install sudo

Ahora estás habilitado a usar los comandos sudo y visudo.

Conceder Privilegios Sudo
Para agregar estos privilegios al nuevo usuario, necesitamos agregar el usuario al grupo "sudo". Por defecto, a partir de Debian 8, los usuarios que pertenecen al grupo "sudo" tendrán permitido ejecutar el comando sudo.

Como root, ejecuta el siguiente comando para agregar un nuevo usuario al grupo sudo:

# usermod -a -G sudo israel

Ahora tu usuario puede ejecutar comandos con privilegios de un super usuario.

4) Agregando Public Key Authentication (recomendado para extra seguridad)

El siguiente paso para darle mayor seguridad a tu servidor es configurando una "public key authentication" para tu nuevo usuario. Configurando esto vas a incrementar la seguridad de tu servidor al requerir una llave privada SSH (private SSH key) para iniciar sesión.

Genera una Key Pair
Para generar una nueva key pair, ingresa el siguiente comando en la terminal de tu máquina local (tu computadora):

local $ ssh-keygen

Asumiendo que tu usuario local es "localuser", verás una salida como:

ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Teclea enter.

Después te va a pedir una frase para paso (passphrase) para asegurar tu llave. Puedes ingresar una frase o dejarlo en blanco.

Nota: Si dejas la passphrase en blanco, podrás usar la llave privada para autenciación sin ingresar la passphrase. Si tu ingresas la passphrase, necesitarás ambas (la private key y la passphrase) para iniciar sesión. Asegurando las llaves con frases es más seguro, pero ambos métodos tienen sus usos y son mas seguros que la autenticación basica de contraseña.

Esto genera una private key, id_rsa, y una public_key, id_rsa.pub, en el directorio .ssh del directorio local de tu usuario en tu computadora. Recuerda que esa llave privada no debe ser compartida con nadie que no deba tener acceso a tu servidor.

Copia la Public Key
Después de generar la SSH key pair, tendrás que copiar la public key a tu nuevo servidor.

Utiliza el siguiente comando en tu terminal de computadora para imprimir la public key (id_rsa.pub):

local$ cat ~/.ssh/id_rsa.pub

Esto va a imprimir tu public SSH key y se parecerá a algo así:

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

Copiála a tu portapapeles.

Agregar la Public Key al Nuevo Usuario Remoto
Para habilitar el uso de SSH key para autenticar al nuevo usuario remoto, primero debes agregar la publick key a un fichero especial en directorio del usuario.

En el servidor. como usuario root, ingresa el siguiente comando para cambiar al usuario nuevo.

# su - israel

Ahora estarás en el directorio home del nuevo usuario.

crea un directorio nuevo llamado .ssh y resringe sus pemrisos con el siguiente comando.

$ mkdir .ssh
$ chmod 700 .ssh

Ahora abre un fichero en .ssh llamado authorized_keys con el editor de texto nano.

$ nano .ssh/authorized_keys

Y pega la public key (de tu portapapeles) en el editor.

Cierra el editor pulsando CTRL+X y después Y para guardar los cambios y ENTER para confirmar el nombre de archivo.

Ahora reestringe permisos del fichero authorized_keys con el siguiente comando:

$ chmod 600 .ssh/authorized_keys

Ingresa el siguiente comando para regresar al usuario root:

$ exit

Ahora tu podrás iniciar sesión vía SSh con tu nuevo usuario utilizando las llaves privadas como método de autenticación.

5) Configurando SSH

Ahora que tenemos la nueva cuenta, podemos seguir con la protección de nuestro servidor modificando la configuración SSH daemon (el programa que nos permite inicar sesión de manera remota) para deshabilitar el acceso remoto por SSH a la cuenta root.

Comienza con abrir la configuración con el editor de texto nano como usario root:

# nano /etc/ssh/sshd_config

Aquí tenemos la opción de deshabilitar el inicio de sesión vía SSH. Esto es generalmente una configuración más segura ahora que ya contamos con el inicio de sesión de un super usuario con la posibilidad de escalar los privilegios cuando sea necesario.

Para deshabilitar inicios de sesión remotos como el root, necesitamos cambiar la siguiente línea.

PermitRootLogin yes

a

PermitRootLogin no

Apoyate con CTRL+W y busca PermitRootLogin

Deshabilitar el inicio de seión remoto es altamente recomendado para cada servidor.

Ahora guardemos los cambios, presionemos CTRL+X, despues Y y al final ENTER para salir del editor.

Recargemos SSH
Ahora reiniciemos el servicio SSH para que el servidor utilice nuestra nueva configuración.

Escribe lo siguiente para reiniciar SSH

# systemctl restart ssh

ATENCIÓN: antes de salir de nuestro servidor debemos probar nuestra nueva configuración. No queremos desconectarnos hasta confirmar que la nueva conexión puede establecerse satisfactoriamente.

Abre una nueva ventana de la terminal e ingresa con el nuevo usuario ejemplo:

local $ ssh israel@<ip-address>

El proceso te pedirá tu contraseña y después lograrás entrar al servidor.

Recuerda que si necesitas ingresar un comando con privilegios del root tendrás que incluir "sudo" antes, ejemplo:

$ sudo commando

Para cerrar la sesión utiliza

$ exit

Listo, ya has realizado la configuración básica de tu servidor.

Fuente: Traducción del artículo Initial Server Setup with Debian 8 con algunos ajustes en los contenidos y con Debian 9

Israel Estrada

Israel Estrada

Emprendedor Mexicano dedicado a la producción multimedia en mi región. Me gusta compartir mis ideas y colaborar en proyectos diversos. Si deseas colaborar no dudes en ponerte en contacto.

Read More