Cuando se crea un nuevo servidor Debian 8, hay algunos pasos de configuración que se deben tener desde el principio como parte de la configuración básica. Esto aumentará la seguridad y la facilidad de uso de su servidor y le dará una base sólida para las acciones posteriores.
Paso 1: Iniciar sessión como usuario root
Sustituya la palabra "SERVER_IP_ADDRESS" con la dirección IP pública del servidor:
local$ ssh root@SERVER_IP_ADDRESS
Paso 2: Crear un nuevo usuario con privilegios Root
Ccomo ejemplo voy poner wilzonmb
$ adduser wilzonmb
Paso 3: Aplicar privilegios Root
Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces tenga que realizar tareas administrativas.
Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciar sesión como la cuenta raíz, podemos establecer lo que se conoce como "super usuario" o privilegios de root para nuestra cuenta normal. Esto permitirá que nuestro usuario normal para ejecutar comandos con privilegios administrativos, poniendo la palabra sudo antes de cada comando.
$ usermod -aG sudo wilzonmb
Paso 4: Añadir la autenticación de clave pública (Recomendado)
El siguiente paso en la obtención de su servidor es para configurar la autenticación de clave pública para el nuevo usuario. Configurar esto aumentará la seguridad de su servidor al requerir una clave privada SSH para conectarse.
Generar un par de claves
Si aún no dispone de un par de claves SSH, que consiste en una clave pública y privada, es necesario generar una. Si ya tiene una clave que desea utilizar, omita este paso.
Para generar un nuevo par de claves, introduzca el siguiente comando en el terminal de su máquina local (es decir, su ordenador.):
local$ ssh-keygen
Asumiendo que su usuario local se llama "usuariolocal", verá una salida que se parece a lo siguiente:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Copiar la clave pública
Después de generar un par de claves SSH, tendrá que copiar la clave pública para su nuevo servidor. Vamos a cubrir dos maneras fáciles de hacer esto.
Opcion 1: Usar ssh-copy-id
Ejecutar el script ssh-copy-id especificando la dirección IP del usuario y del servidor que desea instalar la llave, como esto:
local$ ssh-copy-id wilzonmb@SERVER_IP_ADDRESS
Después de proporcionar la contraseña en el indicador, se añadirá su clave pública al archivo .ssh/authorized_keys del usuario remoto. La clave privada que corresponde ahora se puede utilizar para iniciar sesión en el servidor.
Opción 2: instalar manualmente la clave
Copiar SSH key en portapapeles "mostramos con cat, luego seleccionamos y copiamos"
local$ cat ~/.ssh/id_rsa.pub
En el servidor, como usuario root, escriba el siguiente comando para cambiar temporalmente al nuevo usuario (sustituir su propio nombre de usuario):
$ su wilzonmb
Ahora usted estará en el directorio home del nuevo usuario.
Crear un nuevo directorio llamado .ssh y restringir sus permisos con los comandos siguientes:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
Ahora pegar en este archivo
$ nano ~/.ssh/authorized_keys
Ahora restringir los permisos del archivo authorized_keys con este comando:
$ chmod 600 ~/.ssh/authorized_keys
Escriba este comando una vez para volver al usuario root:
$ exit
Paso 5: Configurar SSH
Ahora que tenemos nuestra nueva cuenta, podemos asegurar nuestro servidor un poco modificando su configuración demonio SSH (el programa que nos permita sesión de modo remoto) para no permitir el acceso remoto SSH a la cuenta root.
Comience abriendo el archivo de configuración con el editor de texto como root:
$ nano /etc/ssh/sshd_config
Con este cambio le restringimos el acceso al usurio root:
PermitRootLogin no
y con este código desactivamos la autenticación de contraseña (recomendado)
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Reiniciar SSH
Ahora que ya hemos hecho nuestros cambios, tenemos que reiniciar el servicio SSH para que se utilice nuestra nueva configuración.
Escriba esto para reiniciar SSH:
$ systemctl restart ssh
Prueba de sesión
Ahora, antes de que finalice la sesión del servidor, se debería probar la nueva configuración. No desconecte hasta que se confirme que puede iniciar sesión con éxito a través de SSH.
En una nueva terminal en el equipo local, inicie sesión en el servidor con la nueva cuenta que hemos creado. Para ello, utilice este comando (sustituya su nombre de usuario y la dirección IP del servidor):
local$ ssh wilzonmb@SERVER_IP_ADDRESS
Si todo va bien, puede salir sus sesiones escribiendo:
$ exit
Paso 6: Configurar un firewall básico
Debian, Ubuntu servidores pueden utilizar el servidor de seguridad UFW para que sólo las conexiones seguras a ciertos servicios están permitidos. Podemos establecer un firewall básico muy fácilmente utilizando esta aplicación.
Diferentes aplicaciones pueden registrar sus perfiles con UFW al momento de la instalación. Estos perfiles permiten UFW para gestionar estas aplicaciones por su nombre. OpenSSH, el servicio que nos permite conectarnos a nuestro servidor ahora, tiene un perfil registrado con UFW. Esto se puede ver escribiendo:
$ sudo ufw app list
Verá una salida similar a este:
Available applications:
OpenSSH
Hay que asegurarse de que el cortafuegos permite conexiones SSH para que podamos volver a iniciar sesión en la próxima vez. Podemos permitir estas conexiones escribiendo:
$ sudo ufw allow OpenSSH
Posteriormente, podemos activar el cortafuegos escribiendo:
$ sudo ufw enable
Para ver el estado escriba:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80/tcp ALLOW Anywhere
OpenSSH ALLOW Anywhere
22 ALLOW Anywhere (v6)
80/tcp ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Si instala y configura los servicios adicionales, tendrá que ajustar la configuración del firewall para permitir el tráfico aceptable. Usted puede aprender algunas operaciones comunes de la UFW en esta guía.