Configuración inicial del servidor con Ubuntu 20.04/18.04 y 16.04
- 914
- 165
- Hugo Vera
Este tutorial lo guiará en los primeros pasos básicos que necesita configurar en un nuevo Ubuntu servidor para aumentar la seguridad y la confiabilidad para su servidor.
Las configuraciones explicadas en este tema son casi las mismas para todos los sistemas de servidor de Ubuntu, con respecto a la plataforma del sistema operativo subyacente, ya sea Ubuntu se instala en un servidor de metal desnudo, en una máquina virtual privada o en una máquina virtual hilada en una nube pública VPS.
Requisitos
- Ubuntu 20.Instalación del servidor 04
- Ubuntu 18.Instalación del servidor 04
- Ubuntu 16.Instalación del servidor 04
Actualizar y actualizar el sistema Ubuntu
El primer paso que debe cuidar en caso de una nueva instalación de Ubuntu servidor o un nuevo implementado Ubuntu VPS 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 las últimas versiones y parches de seguridad lanzados.
Para actualizar el servidor Ubuntu, iniciar sesión en la consola del servidor con una cuenta con privilegios raíz o directamente como root y ejecutar los comandos a continuación para realizar el proceso de actualización y actualización.
$ sudo apt actualizaciónActualizar el servidor Ubuntu
Después de ejecutar el comando de actualización, verá el número de paquetes disponibles para el proceso de actualización y el comando utilizado para enumerar las actualizaciones de los paquetes.
$ sudo apt list -actualizableLista Actualización de paquetes Ubuntu
Después de consultar la lista de paquetes disponibles para actualizar, emita el siguiente comando para iniciar el proceso de actualización del sistema.
$ sudo apt actualizaciónActualizar los 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 limpioPaquetes y caché de Autoremove APT
Crear una cuenta nueva en Ubuntu
Por defecto, como medida de seguridad, la cuenta raíz 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 raíz y cree una nueva cuenta con el siguiente comando.
Esta nueva cuenta se otorgará con los privilegios de potencia raíz 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 agregar usuario solicitar configurar los detalles del usuario y la contraseña.
$ sudo adduser ubuntu_userCrear 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 sudo utilidad. Para otorgar esta nueva cuenta de usuario con privilegios administrativos, debe agregar el usuario a "sudo"Grupo del sistema emitiendo el siguiente comando.
$ sudo usermod -a -g sudo ubuntu_user
Por defecto, todos los usuarios que pertenecen al "sudo"El grupo puede ejecutar comandos con privilegios raíz a través de sudo utilidad. Se debe usar el comando sudo antes de escribir el comando necesario para la ejecución, como se muestra en el siguiente ejemplo.
$ sudo apt instalación paquete_name
Pruebe si el nuevo usuario tiene los privilegios raíz otorgados, iniciando sesión en el sistema y ejecute el Actualización de apt comando prefijo con sudo.
$ SU - Ubuntu_user $ sudo apt actualizaciónVerificar el nuevo usuario
Configurar el nombre de host del sistema en Ubuntu
Por lo general, el nombre de host de la máquina está configurado durante el proceso de instalación del sistema o cuando el VPS se crea 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 llevan el nombre de los complejos esquemas de nombres para identificar fácilmente la máquina en los bastidores de los centros de datos. Por ejemplo, si su máquina Ubuntu operará 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.mi dominio.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, problema comando hostnamectl 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 /hostnameEstablezca 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 una cuenta local. Para generar un par de claves SSH, la clave pública y privada, con una longitud de clave, como 2048 bits, ejecuta el siguiente comando en su consola de servidor.
Asegúrese de que haya iniciado sesión en el sistema con el usuario, está configurando la tecla SSH.
$ su -Ubuntu_user $ ssh -keygen -t rsa -b 2048Configurar las teclas SSH en Ubuntu
Mientras se genera la clave, se le solicitará que agregue frase Para asegurar la clave. Puede ingresar una frase de pases fuerte o elegir dejar la frase de pases en blanco si desea automatizar tareas a través del servidor SSH.
Después de generar la tecla SSH, puede copiar la clave pública a un servidor remoto ejecutando el siguiente comando. Para instalar la clave pública al servidor SSH remoto, necesitará una cuenta de usuario remoto con los permisos y credenciales adecuados para iniciar sesión en un servidor remoto.
$ ssh-copy-id [correo electrónico protegido] _serverCopiar la tecla SSH al servidor remoto
Debería poder iniciar sesión automáticamente a través de SSH al servidor remoto utilizando el método de autenticación de la clave pública. No necesitará agregar la contraseña remota del usuario mientras usa la autenticación de la clave pública SSH.
Después de iniciar sesión en el servidor remoto, puede comenzar a ejecutar comandos, como Comando W Para enumerar el control remoto SSH en los usuarios, como se muestra en la siguiente captura de pantalla.
Escriba la salida en la consola para cerrar la sesión SSH remota.
$ ssh [correo electrónico protegido] _server $ W $ SalidaVerificar el inicio de sesión sin contraseña SSH
Para ver el contenido de su clave SSH pública para instalar manualmente la clave a un servidor SSH remoto, emita el siguiente comando.
$ Cat ~/.ssh/id_rsa.pubVer tecla SSH
Secure SSH Server en Ubuntu
Para asegurar el demonio SSH, debe cambiar el número de puerto SSH predeterminado desde 22 a un puerto aleatorio, más alto que 1024, y no permita el acceso remoto de SSH a la cuenta raíz a través de la contraseña o la clave, abriendo el archivo de configuración principal del servidor SSH y realiza los siguientes cambios.
$ sudo vi/etc/ssh/sshd_config
Primero, busca 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 Sí, desenchufe la línea eliminando el # firma (hashtag) desde el comienzo de la línea y modifique la línea para que se vea como se muestra en el siguiente extracto.
Permitrootlogin noServicio SSH seguro
Posteriormente, reinicie el servidor SSH para aplicar la nueva configuración y pruebe la configuración tratando de 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 raíz a través de SSH debe estar restringido.
$ sudo systemctl reiniciar sshd
Además, ejecute netstat o 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 sshVerificar el puerto SSH Artículo relacionado: 7 Consejos de seguridad SSH útiles para Harden OpenSsh Server
Hay 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 el Tmout Variable Bash a su cuenta .bashrc Archivo oculto y obliga a cada conexión SSH realizada con el nombre del usuario para desconectarse o abandonar después de 5 minutos de inactividad.
$ echo 'tmout = 300' >> .bashrc
Ejecute el comando de cola para verificar si la variable se ha agregado correctamente al final de .bashrc archivo. Todas las conexiones SSH posteriores se cerrarán automáticamente después de 5 minutos de inactividad a partir de ahora.
$ cola .bashrc
En la siguiente captura de pantalla, la sesión SSH remota desde la máquina Drupal hasta el servidor Ubuntu a través de la cuenta Ubuntu_user ha sido programada y el desecho automático después de 5 minutos.
Sesiones de SSH de desconexión automáticaConfigurar Ubuntu Firewall UFW
Cada servidor necesita un firewall bien configurado para asegurar el sistema a nivel de red. Ubuntu Server usa UFW Aplicación para administrar las reglas iptables en el servidor.
Verifique el estado de la aplicación UFW Firewall en Ubuntu emitiendo los comandos a continuación.
$ sudo systemctl status UFW $ sudo UFW estadoConsulte el estado de firewall de UFW
Por lo general, el demonio de firewall UFW está en funcionamiento en el servidor Ubuntu, pero las reglas no se aplican de forma predeterminada. Antes de habilitar la política de firewall de UFW en su sistema, primero debe agregar una nueva regla para permitir que el tráfico SSH pase por el firewall a través del puerto SSH modificado. La regla se puede agregar ejecutando el siguiente comando.
$ sudo UFW Permitir 2345/TCP
Después de permitir el tráfico SSH, puede habilitar y verificar la aplicación UFW Firewall con los siguientes comandos.
$ sudo ufw habilitar $ sudo UFW estadoAbra el puerto SSH y verifique
Para agregar nuevas reglas de firewall para otros servicios de red instalados posteriormente en su servidor, como el servidor HTTP, un servidor de correo u otros servicios de red, use los ejemplos de comandos de firewall a continuación como guía.
$ sudo UFW Permitir http #LOW HTTP tráfico $ sudo UFW Permitir Proto TCP de cualquiera a cualquier puerto 25,443 # permitir el tráfico HTTPS y SMTP
Para enumerar todas las reglas de firewall, ejecute el siguiente comando.
$ sudo UFW estado detalladoConsulte las reglas de firewall de UFW Artículo relacionado: Cómo configurar UFW Firewall en Ubuntu Server
Establezca la hora del servidor de Ubuntu
Para controlar o consultar el reloj del servidor Ubuntu y otras configuraciones de tiempo relacionadas, ejecute el comando Timedatectl sin argumento.
Para cambiar la configuración de la zona horaria de su servidor, primero ejecute comando timedatectl Con el argumento de List TimeZones para enumerar todas las zonas horarias disponibles y, luego, establecer la zona horaria de su sistema como se muestra en el siguiente extracto.
$ sudo timedatectl $ sudo timedatectl list timeZones $ sudo timedatectl set-timezone europe/viennaEstablecer la zona horaria de Ubuntu
El nuevo Systemd-Timesyncd Systemd Daemon Client se puede utilizar en Ubuntu para proporcionar un tiempo preciso para su servidor a través de la red y sincronizar el tiempo con un servidor de par de tiempo superior.
Para aplicar esta nueva característica de Systemd, modifique Systemd-Timesyncd Archivo de configuración de Daemon y agregue los servidores NTP geográficos más cercanos a la línea de instrucción NTP, como se muestra en el extracto de archivo a continuación:
$ sudo nano/etc/systemd/timesyncd.confusión
Agregar la siguiente configuración a Timesyncd.confusión archivo:
[Tiempo] NTP = 0.piscina.NTP.org 1.piscina.NTP.org fallbackntp = ntp.ubuntu.comunicarseConfiguración de tiempo de NTP
Para agregar sus servidores NTP geográficos más cercanos, consulte la lista de servidores del proyecto NTP Pool en la siguiente dirección: http: // www.piscina.NTP.org/es/
Posteriormente, reinicie el Daemon SystemD Timesync para reflejar los cambios y verifique el estado del demonio ejecutando los comandos a continuación. Después de reiniciar, el demonio comenzará a sincronizar el tiempo con el nuevo par del servidor NTP.
$ sudo systemctl reiniciar Systemd-Timesyncd.Servicio $ sudo systemCtl statusd-modeSyncd.servicioServicio de inicio de tiempo de tiempo
Deshabilite y elimine los servicios innecesarios en Ubuntu
Para obtener una lista de todos los servicios de red TCP y UDP aumentando de forma predeterminada en su servidor Ubuntu, ejecute el ss o comando netstat.
$ sudo netstat -tulpn o $ sudo ss -tulpnEnumere todos los servicios en ejecución
Mirando con Ubuntu 16.10 versión, el resolución DNS predeterminado ahora está controlado por resuelto de Systemd servicio, como lo revela la salida de netstat o Comandos SS.
También debes consultar el resuelto de Systemd Estado del servicio ejecutando el siguiente comando.
$ sudo systemctl status systemd resuelto.servicioVerifique el estado resuelto de Systemd
El resuelto de Systemd El servicio se vincula en todas las interfaces de red habilitadas y escucha en los puertos 53 y 5355 TCP y UDP.
Correr resuelto del sistema El almacenamiento en caché del demonio DNS en un servidor de producción puede ser peligroso debido a la numerosa cantidad de ataques DDoS realizados por piratas informáticos maliciosos contra servidores DNS no garantizados.
Para detener y deshabilitar este servicio, ejecute los siguientes comandos.
$ sudo SystemCTL STOP resuelto $ sudo SystemCTL DISPLED-resueltoDeshabilitar Systemd Servicio resuelto
Verifique si el servicio ha sido detenido y deshabilitado emitiendo ss o comando netstat. Los puertos de escucha resueltos con SystemD, 53 y 5355 TCP y UDP, no deben enumerarse en la salida del comando NetStat o SS, como se ilustra en la siguiente.
También debe reiniciar la máquina para deshabilitar completamente todos los servicios de demonio resueltos de Systemd y restaurar el valor predeterminado /etc/resolv.confusión archivo.
$ sudo ss -tulpn $ sudo netstat -tulpn $ sudo systemctl reiniciarVerificar todos los servicios en ejecución
Aunque ha deshabilitado algunos servicios de red no deseados para que se ejecutaran en su servidor, también hay otros servicios instalados y ejecutados en su sistema, como LXC proceso y Snapd servicio. Estos servicios se pueden detectar fácilmente a través de PS, TOP o pstree comandos.
$ sudo ps aux $ sudo top $ sudo pstreeLista de servicios de ejecución en formato de árbol
En caso de que no use la virtualización de contenedores LXC en su servidor o comience a instalar software empaquetado a través de Snap Package Manager, debe deshabilitar y eliminar por completo estos servicios, emitiendo los comandos a continuación.
$ sudo Apt Autoremove-Purge LXC-Common LXCFS $ sudo apt Autoremove-Purge Snapd
Eso es todo! Ahora, Ubuntu Server ahora está preparado para instalar un software adicional necesario para servicios o aplicaciones de red personalizadas, como instalar y configurar un servidor web, un servidor de base de datos, un servicio de compartir archivos u otras aplicaciones específicas.
- « Cómo instalar LightTPD con PHP, MariadB y PhpMyadmin en Ubuntu
- Cómo clonar un servidor CentOS con RSYNC »