Configuración inicial del servidor con Ubuntu

Este tutorial lo guiará en los primeros pasos básicos que necesita para configurar en un nuevo servidor Ubuntu. instalado para aumentar la seguridad y confiabilidad de su servidor.

Las configuraciones que se explican en este tema son casi iguales para todos los sistemas de servidor Ubuntu, con respecto a la plataforma del sistema operativo subyacente, ya sea que Ubuntu. esté instalado en un servidor completo, en una máquina virtual privada o en una máquina virtual girada. en una nube pública de VPS.

Requisitos

  • Instalación del servidor Ubuntu 20.04
  • Instalación del servidor Ubuntu 18.04
  • Instalación del servidor Ubuntu 16.04

Actualizar y actualizar el sistema Ubuntu

El primer paso del que debe ocuparse en caso de una nueva instalación del servidor Ubuntu. o un nuevo VPS Ubuntu implementado. es para asegurarse de que el sistema y todos los componentes del sistema, como el kernel, el administrador de paquetes apt y todos los demás paquetes instalados estén actualizados con la última versión de r versiones mejoradas y parches de seguridad.

Para actualizar el servidor Ubuntu, inicie sesión en la consola del servidor con una cuenta con privilegios de root o directamente como root y ejecute los siguientes comandos para realizar el proceso de actualización y actualización.

$ sudo apt update  Actualizar el servidor Ubuntu Actualizar el servidor Ubuntu

Después de ejecutar el comando de actualización, verá la cantidad de paquetes disponibles para el proceso de actualización y el comando utilizado para enumerar las actualizaciones de paquetes.

$ sudo apt list–upgradable  Lista de paquetes de actualización de Ubuntu Lista de paquetes de actualización de Ubuntu freestar.config.enabled_slots.push (LocationName:” tecmint_incontent “, slotId:” tecmint_incontent ” );

Una vez que haya consultado la lista de paquetes disponibles para actualizar, emita el siguiente comando para iniciar el proceso de actualización del sistema.

$ sudo apt upgrade Actualizar Ubuntu Server Paquetes Actualizar paquetes de servidor Ubuntu

Para eliminar todos los paquetes deb descargados localmente y todos los demás cachés de apt-get, ejecute el siguiente comando.

$ sudo apt autoremove

$ sudo apt clean  Autoremove APT Packages and Cache Autoremove APT Packages and Cache

Create New Account in Ubuntu

De forma predeterminada, como medida de seguridad, la cuenta root está completamente deshabilitada en Ubuntu. Para crear una nueva cuenta en el sistema, inicie sesión en el sistema con el usuario de la cuenta con privilegios de root y cree una nueva cuenta con el siguiente comando.

A esta nueva cuenta se le otorgarán privilegios de poderes de root a través del comando sudo y se utilizará para realizar tareas administrativas en el sistema. Asegúrese de configurar una contraseña segura para proteger esta cuenta. Siga el mensaje adduser. para configurar los detalles del usuario y la contraseña.

$ sudo adduser ubuntu_user  Crear usuario en Ubuntu Crear usuario en Ubuntu

Si esta cuenta se asignará a otro administrador del sistema, puede obligar al usuario a cambiar su contraseña en el primer intento de inicio de sesión emitiendo el siguiente comando.

$ sudo chage-d0 ubuntu_user

Por ahora, el nuevo usuario agregado no puede realizar tareas administrativas a través de la utilidad sudo. Para otorgar privilegios administrativos a esta nueva cuenta de usuario, debe agregar el usuario al grupo del sistema “ sudo. emitiendo el siguiente comando.

$ sudo usermod-a-G sudo ubuntu_user

Por Por defecto, todos los usuarios que pertenecen al grupo “ sudo. pueden ejecutar comandos con privilegios de root a través de la utilidad sudo. El comando sudo debe usarse antes de escribir el comando necesario para la ejecución, como se muestra en el siguiente ejemplo.

$ sudo apt install package_name

Pruebe si el nuevo usuario tiene los privilegios de root otorgados, iniciando sesión en el sistema y ejecute el comando apt update. con el prefijo sudo.

$ su-ubuntu_user $ sudo apt update Verificar nuevo usuario Verificar nuevo usuario

Configurar el nombre de host del sistema en Ubuntu

Por lo general, el nombre de host de la máquina se configura durante el proceso de instalación del sistema o cuando se crea el VPS en la nube. Sin embargo, debe cambiar el nombre de su máquina para reflejar mejor el destino de su servidor o para describir mejor su propósito final.

En una gran empresa, las máquinas reciben nombres de esquemas de nombres complejos para poder Identifique fácilmente la máquina en los racks del centro de datos. Por ejemplo, si su máquina Ubuntu funcionará con un servidor de correo, el nombre de la máquina debe reflejar este hecho y puede configurar el nombre de host de la máquina como mx01.mydomain.lan. por ejemplo.

Para mostrar detalles sobre el nombre de host de su máquina, ejecute el siguiente comando.

$ hostnamectl

Para cambiar el nombre de su máquina, emita hostnamectl command. con el nuevo nombre que configurará para su máquina, como se ilustra en el siguiente extracto.

$ sudo hostnamectl set-hostname tecmint

Verifique el nuevo nombre de su sistema con uno de los siguientes comandos.

$ hostname $ hostname-s

$ cat/etc/hostname Establecer nombre de host en Ubuntu Server Establecer el nombre de host en el servidor Ubuntu

Configurar SSH con autenticación de clave pública en Ubuntu

Para aumentar el grado de seguridad del sistema de un servidor Ubuntu, debe configurar la autenticación de clave pública SSH para un cuenta local. Para generar el par de claves SSH, la clave pública y privada, con una longitud de clave especificada, como 2048 bits, ejecute el siguiente comando en la consola de su servidor.

Asegúrese de haber iniciado sesión en el sistema con el usuario que está configurando la clave SSH.

$ su-ubuntu_user $ ssh-keygen-t RSA-b 2048  Configurar claves SSH en Ubuntu Configuración S SH Keys en Ubuntu

Mientras se genera la clave, se le pedirá que agregue contraseña. para asegurar la clave. Puede ingresar una contraseña segura o dejar la contraseña en blanco si desea automatizar tareas a través del servidor SSH.

Después de que se haya generado la clave SSH, puede copiar la clave pública a un servidor remoto ejecutando el siguiente comando. Para instalar la clave pública en el servidor SSH remoto, necesitará una cuenta de usuario remoto con los permisos y credenciales adecuados para iniciar sesión en el servidor remoto.

$ ssh-copy-id [email protected] _server  Copiar la clave SSH al servidor remoto Copiar la clave SSH al servidor remoto

Debería poder hacerlo automáticamente inicie sesión a través de SSH en el servidor remoto utilizando el método de autenticación de clave pública. No necesitará agregar la contraseña de usuario remoto mientras usa la autenticación de clave pública SSH.

Una vez que haya iniciado sesión en el servidor remoto, puede comenzar a ejecutar comandos, como w comando. para enumerar los usuarios que han iniciado sesión remotamente en ssh, como se muestra en la siguiente captura de pantalla.

Escriba exit en la consola para cerrar la sesión SSH remota.

$ ssh [email protected] _server $ w $ exit  Verificar inicio de sesión sin contraseña SSH Verificar inicio de sesión sin contraseña SSH

Para ver el contenido de su clave SSH pública para instalar manualmente la clave en un servidor SSH remoto, emita el siguiente comando.

$ cat ~/.ssh/id_rsa.pub  Ver clave SSH Ver clave SSH

Servidor SSH seguro en Ubuntu

Para proteger el demonio SSH, debe cambiar el número de puerto SSH predeterminado de 22. a un puerto aleatorio, superior a 1024. y no permita el acceso SSH remoto a la cuenta raíz mediante contraseña o clave, abriendo el archivo de configuración principal del servidor SSH y realice los siguientes cambios.

$ sudo vi/etc/ssh/sshd_config

Primero, busque la línea comentada # Port22. y agregue una nueva línea debajo (reemplace el número de puerto de escucha en consecuencia):

Puerto 2345

No cierre el archivo, desplácese hacia abajo y busque la línea #PermitRootLogin yes. descomente la línea quitando el signo #. ( hashtag) desde el principio de la línea y modifíquela para que se vea como se muestra en el siguiente extracto.

PermitRootLogin no  Servicio SSH seguro Servicio SSH seguro

Luego, reinicie el servidor SSH para aplicar la nueva configuración y pruebe la configuración intentando iniciar sesión desde una máquina remota a este servidor con la cuenta raíz a través del nuevo número de puerto. El acceso a la cuenta de root a través de SSH debe estar restringido.

$ sudo systemctl restart sshd

Además, ejecute netstat o el comando ss. y filtre la salida a través del comando grep para mostrar el nuevo número de puerto de escucha para el servidor SSH.

$ sudo ss-tlpn | grep ssh

$ sudo netstat-tlpn | grep ssh  Verificar puerto SSH Verificar puerto SSH Artículo relacionado. 7 consejos de seguridad SSH útiles para fortalecer el servidor OpenSSH

Allí son situaciones en las que es posible que desee desconectar automáticamente todas las conexiones SSH remotas establecidas en su servidor después de un período de inactividad.

Para habilitar esta función, ejecute el siguiente comando, que agrega TMOUT. variable bash a su cuenta .bashrc. archivo oculto y obliga a que todas las conexiones SSH realizadas con el nombre del usuario se desconecten o abandonen después de 5 minutos es de inactividad.

$ echo ‘TMOUT = 300’>> .bashrc

Ejecute el comando tail para comprobar si la variable se ha añadido correctamente al final del archivo .bashrc. Todas las conexiones SSH posteriores se cerrarán automáticamente después de 5 minutos de inactividad a partir de ahora.

$ tail .bashrc

En la siguiente captura de pantalla, la sesión SSH remota desde la máquina drupal al servidor Ubuntu a través de la cuenta ubuntu_user ha agotado el tiempo de espera. y cierre de sesión automático después de 5 minutos.

 Desconectar automáticamente las sesiones SSH Desconectar automáticamente las sesiones SSH

Configurar el firewall de Ubuntu UFW

Cada servidor necesita un firewall bien configurado para asegurar el sistema a nivel de red. El servidor Ubuntu usa la aplicación UFW. para administrar las reglas de iptables en el servidor.

Verifique el estado de la aplicación de firewall UFW en Ubuntu emitiendo los siguientes comandos.

$ sudo systemctl estado ufw

$ sudo ufw estado  Verificar el estado del firewall UFW Verificar el estado del firewall UFW

Por lo general, el demonio del firewall UFW está activo y ejecutándose en el servidor Ubuntu, pero las reglas no se aplican de forma predeterminada. Antes de habilitar la política de firewall UFW en su sistema, primero debe agregar una nueva regla para permitir que el tráfico SSH pase a través del firewall a través del puerto SSH modificado. La regla se puede agregar ejecutando el siguiente comando.

$ sudo systemctl restart systemd-timesyncd.service $ sudo systemctl status systemd-timesyncd.service  Start TimeSyncd Service Iniciar el servicio TimeSyncd

Deshabilitar y eliminar servicios innecesarios en Ubuntu

Para obtener una lista de todos los servicios de red TCP y UDP-y funcionando de forma predeterminada en su servidor Ubuntu, ejecute el comando ss. o netstat.

$ sudo netstat-tulpn O

$ sudo ss-tulpn Lista de todos los servicios en ejecución Lista de todos los servicios en ejecución

Comenzando con la versión Ubuntu 16.10. la resolución de DNS predeterminada ahora está controlada por systemd-resuelto. servicio, como se reveló por la salida de netstat. o comandos ss.

También debe verificar el estado del servicio systemd-resuelto. ejecutando el siguiente comando.

$ sudo systemctl status systemd-resuelto.service  Verificar el estado resuelto de Systemd Verificar el estado resuelto de Systemd

El servicio systemd-resuelto. se vincula en todos los habilitados interfaces de red y escucha en los puertos 53. y 5355 TCP. y UDP.

Ejecutando resuelto por el sistema. caché del demonio DNS en un servidor de producción puede ser peligroso debido a la gran cantidad de ataques DDOS realizados por piratas informáticos maliciosos contra servidores DNS no seguros.

Para detener y deshabilitar este servicio, ejecute los siguientes comandos.

$ sudo systemctl detener systemd-resuelto

$ sudo systemctl deshabilitar systemd-resuelto  Desactivar el servicio resuelto de Systemd Deshabilitar el servicio resuelto de Systemd

Verifique si el servicio se ha detenido y deshabilitado emitiendo ss. o netstat command. Los puertos de escucha resueltos por systemd, 53 y 5355 TCP y UDP, no deben aparecer en la salida del comando netstat o ss, como se ilustra a continuación.

También debe reiniciar la máquina para deshabilitar completamente todos servicios daemon resueltos por systemd y restaure el archivo /etc/resolv.conf. predeterminado.