GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración del servidor Ubuntu:mejores prácticas de seguridad

Tras la instalación exitosa de su servidor Debian/Ubuntu, algunos pasos de configuración son esenciales para mejorar la seguridad y la funcionalidad del servidor. En esta guía, lo llevaremos a través de los pasos básicos en la configuración inicial del servidor Debian 9/Ubuntu 18.04. Estos pasos básicos fortalecerán su servidor y permitirán la ejecución de operaciones posteriores sin problemas.

Iniciar sesión como usuario root

El paso inicial para configurar su servidor es iniciar sesión como usuario raíz. Pero primero, debe tener la dirección IP de su servidor y la contraseña o una clave privada para la autenticación. Para iniciar sesión, abra su terminal Linux y ejecute el siguiente comando. Asegúrese de sustituir la dirección IP del servidor con su dirección IP.

ssh user@ip-address

En esta guía, usamos el servidor Ubuntu 18.04 con una dirección IP pública 38.76.11.180 .

Para iniciar sesión usando ssh a través de la terminal, el comando es

ssh [email protected]

Si es la primera vez que inicia sesión, se le pedirá que verifique la autenticidad del servidor.

Escriba 'Sí' y presione Entrar. A continuación, se le pedirá la contraseña del servidor. Proporcione la contraseña correcta y presione Entrar.

Esto lo llevará al indicador de shell del servidor como se muestra a continuación

¡Excelente! Ahora que hemos iniciado sesión con éxito en nuestro servidor, pasemos al segundo paso

Crear un nuevo usuario

Para las mejores prácticas de seguridad, se desaconseja encarecidamente el uso de la cuenta raíz para tareas administrativas. ¿Por qué es ese el caso? Ejecutar su servidor como root lo deja propenso a cometer errores involuntarios y costosos que pueden ser perjudiciales para su servidor. Puede hacer fácilmente algo dañino para su sistema que puede causar daños irreversibles a su sistema.

Por esta razón, vamos a crear un nuevo usuario no root y luego otorgarle privilegios administrativos. De esta manera, cada vez que intente ejecutar una tarea de nivel raíz, se le solicitará la contraseña. Esto le dará algo de tiempo para hacer una pausa y pensar en las consecuencias de ejecutar el comando y detenerse en seco si nota un error costoso en la ejecución del comando.

Para crear un nuevo usuario, ejecute

adduser user_name

Vamos a agregar un nuevo usuario ‘james’

adduser james

Se le pedirá la contraseña del usuario y algunas preguntas adicionales. proporcione la información necesaria

¡Perfecto! para verificar la creación del usuario vea el /etc/passwd y confirmar la existencia del usuario.

cat /etc/passwd

Salida de muestra

La última línea de arriba muestra información del usuario recién creado.

Otorgar privilegios administrativos al nuevo usuario

Hasta ahora, el nuevo usuario tiene privilegios de cuenta normales. Necesitamos configurar privilegios de root para nuestro usuario recién creado para que pueda realizar tareas administrativas agregando sudo antes de cualquier operación.

Para lograr esto, necesitamos agregar el usuario a sudo grupo para evitar cerrar sesión e iniciar sesión como root cada vez que se realizan tareas administrativas.

La sintaxis para lograr esto es

usermod -aG sudo user_name 

En este caso, el comando para otorgar privilegios sudo al usuario 'james' será

usermod -aG sudo james

Ahora puede cerrar sesión e iniciar sesión con el nuevo usuario usando el comando como se indicó anteriormente

ssh [email protected]

Después de iniciar sesión con éxito verificando la autenticidad del servidor y proporcionando la contraseña correcta, ahora puede ejecutar cualquier tarea de superusuario anteponiendo el comando con sudo

Por ejemplo, para actualizar el sistema usando la cuenta, ejecute el siguiente comando

sudo apt update

Se le pedirá una contraseña y, después de proporcionarla, comenzará la operación.

Configurar un cortafuegos básico

Los servidores Debian y Ubuntu usan el firewall UFW para permitir o denegar el tráfico hacia o desde el servidor.

Para ver la conexión existente en el cortafuegos, ejecute

sudo ufw app list

Como era de esperar, se mostrará OpenSSH porque actualmente estamos usando ssh para conectarnos al servidor

Salida

Para permitir una conexión a través del firewall, ejecute el siguiente comando.

ufw allow service_name

Por ejemplo, para permitir conexiones SSH para un nuevo servidor, ejecute:

sudo ufw allow OpenSSH

Salida

Para abrir un puerto específico en el firewall, use la sintaxis

sudo ufw allow port/protocol

Por ejemplo

sudo ufw allow 80/tcp

Salida

Para comprobar el estado del cortafuegos, ejecute

sudo ufw status

Salida

Para habilitar el firewall, ejecute el siguiente comando.

sudo ufw enable

Cuando se le solicite, escriba yes y presione 'ENTER' para habilitar el firewall y efectuar los cambios

Para ver el estado del firewall nuevamente y las conexiones existentes/puertos abiertos, ejecute el comando

Habilitar la autenticación sin contraseña para el nuevo usuario

Por el momento, nos estamos conectando a nuestro servidor utilizando el protocolo SSH con autenticación de contraseña. Para las mejores prácticas de seguridad, se recomienda encarecidamente configurar claves SSH sin autenticación de contraseña. Las claves SSH vienen en pares:una clave pública y una clave privada.
La clave privada reside en la máquina del cliente, mientras que la clave pública reside en el servidor al que nos estamos conectando. Una vez que se configura la autenticación de clave SSH, la autenticación de contraseña debe deshabilitarse. Esto garantiza que solo el usuario con la clave privada pueda conectarse al servidor en el que reside la clave pública.

Paso 1. Generar la clave pública

Para generar el par de claves, ejecute el siguiente comando en la máquina cliente

ssh-keygen

Obtendrá el resultado como se muestra

Presiona ENTER para guardar el par de claves es .ssh/ subdirectorio en su directorio de inicio. Alternativamente, puede especificar su propia ruta.

A continuación, se le pedirá una frase de contraseña segura que se recomienda encarecidamente para agregar una capa de protección adicional. Si desea prescindir de una frase de contraseña, presione ENTER.

Finalmente, obtendrá el siguiente resultado

En este punto, tiene tanto la clave privada como la pública. Se han guardado en el .ssh directorio en su directorio de inicio. En este caso, la ruta es /root.ssh

cat /root/.ssh

Salida

id_rsa es la clave privada

id_rsa_pub es la clave pública

Paso 2. Copie la clave pública

Para copiar la clave pública al servidor, vamos a usar el ssh-copy-id comando.

La sintaxis será

ssh-copy-id user@remote-server

En este caso, ejecutaremos

ssh-copy-id [email protected]

Obtendrá un resultado similar al siguiente

El id_rsa.pub key, que es la clave pública, se ha copiado en el servidor.

Ahora, si intenta iniciar sesión con la sintaxis ssh user@server-ip , ¡no se le pedirá una contraseña!

Deshabilitar autenticación de contraseña

Alguien aún puede iniciar sesión en nuestro servidor si obtuvo la contraseña. Para eliminar este riesgo, debemos deshabilitar la autenticación de contraseña SSH.

Para lograr esto, vamos a abrir el archivo de configuración de SSH

sudo vim /etc/ssh/sshd_config

Busque la sección indicada como PasswordAuthentication .

Comente la línea y establezca el valor en no

Guardar y Salir.

Para implementar los cambios, reinicie el demonio SSH

sudo systemctl restart ssh

Ahora puede iniciar una nueva terminal e intentar iniciar sesión con la contraseña y ver si la autenticación de contraseña se ha desactivado.

última palabra

En este punto, debería tener acceso al servidor usando la autenticación basada en clave SSH configurada en su servidor remoto y no usando la contraseña SSH.

Su servidor ahora está completamente configurado y tiene una base de seguridad sólida. Asegúrese de mantener segura su clave pública. Lejos de miradas indiscretas 😀


Linux
  1. Prácticas recomendadas de seguridad de OpenSSH

  2. Configurar el servidor Urbackup en Ubuntu 20.04

  3. Mejores prácticas de seguridad del servidor de Windows

  4. Mejores prácticas de seguridad de Wordpress en Linux

  5. Cómo instalar un servidor PostgreSQL en Ubuntu 18.04

Cómo:Configuración inicial del servidor Fedora 21

Cómo:Configuración inicial del servidor Debian 8.2

Configuración del servidor de correo Postfix en Ubuntu 14.04

Configuración inicial del servidor con Ubuntu 18.04

Configuración del servidor de correo Postfix en Ubuntu 20.04

¿Cómo habilitar el usuario raíz en Ubuntu Server?