Configuración inicial del servidor con CentOS / RHEL 8


En este artículo, lo guiaremos a través de los primeros pasos básicos que debe aplicar después de instalar un servidor CentOS/RHEL 8 mínimo sin entorno gráfico para recuperar la información sobre el sistema instalado, el hardware sobre el cual el servidor está ejecutando y configura otras tareas específicas del sistema, como actualización del sistema, redes, privilegios de root, configurar ssh, administrar servicios y otros.

  1. CentOS 8 Installation Guide
  2. RHEL 8 Minimal Installation
  3. Enable RHEL Subscription in RHEL 8

Importante: Debe tener habilitado un servicio de suscripción de Red Hat en su servidor RHEL 8 para realizar la actualización del sistema y la instalación del software.

Paso 1: actualice el software del sistema

Primero, inicie sesión en su servidor como usuario root y ejecute los siguientes comandos para actualizar completamente el sistema con el último kernel, parches de seguridad del sistema, repositorios de software y paquetes.

# dnf check-update
# dnf update

Una vez que finaliza el proceso de actualización del software, para liberar espacio en el disco, puede eliminar todos los paquetes de software descargados con toda la información de los repositorios en caché ejecutando el siguiente comando.

# dnf clean all

Paso 2: instalar las utilidades del sistema

Las siguientes utilidades del sistema pueden ser muy útiles para las tareas de administración del sistema diarias: nano, vim editor, wget & curl (utilidades utilizadas para descargar paquetes a través de la red principalmente) net-tools (utilidades para administrar redes locales) lsof (útil para búsqueda de la lista de archivos abiertos por proceso) y bash-complete (autocompletar línea de comandos).

# dnf install nano vim wget curl net-tools lsof bash-completion

Paso 3: Configurar el nombre de host y la red

En CentOS/RHEL 8, hay una amplia gama de herramientas incluidas en los repositorios que solían configurar y administrar las redes, desde alterar manualmente el archivo de configuración de red hasta usar comandos como ifconfig, ip, nmcli y nmtui.

La utilidad más fácil que un novato puede usar para configurar y administrar configuraciones de red, como establecer el nombre de host de la red y configurar la dirección IP estática, es usar la utilidad de línea de comandos gráfica nmtui.

Para configurar o cambiar el nombre de host del sistema, ejecute el siguiente comando nmtui-hostname, que le pedirá que ingrese el nombre de host de su máquina y presione OK para finalizar, como se ilustra en la captura de pantalla a continuación.

# nmtui-hostname

Para configurar una interfaz de red, ejecute el siguiente comando nmtui-edit, que le pedirá que seleccione la interfaz que desea configurar en el menú, como se muestra en la siguiente captura de pantalla.

# nmtui-edit

Una vez que haga clic en el botón Editar, se le pedirá que configure la configuración de IP de la interfaz de red como se ilustra en la siguiente captura de pantalla. Cuando termine, navegue hasta Aceptar usando [tab] una tecla para guardar la configuración y salir.

Una vez que haya terminado con la configuración de red, debe ejecutar el siguiente comando para aplicar la nueva configuración de red seleccionando la interfaz que desea administrar y presionar la opción Desactivar/Activar para retirar y abrir la interfaz con la configuración de IP, como se presenta en la siguiente captura de pantalla.

# nmtui-connect

Para verificar los ajustes de configuración de red, puede verificar el contenido del archivo de interfaz o puede emitir los siguientes comandos.

# ifconfig enp0s3
# ip a
# ping -c2 google.com

También puede utilizar otras utilidades de red útiles, como ethtool y mii-tool, para verificar la velocidad de la interfaz de red, el estado del enlace de red y obtener información sobre las interfaces de red de la máquina.

# ethtool enp0s3
# mii-tool enp0s3

Un aspecto importante de la red de su máquina, es importante enumerar todos los sockets de red abiertos para verificar qué servicios están escuchando en qué puertos y cuál es el estado de las conexiones de red establecidas y enumerar todos los archivos abiertos por procesos.

# netstat -tulpn
# ss -tulpn
# lsof -i4 -6

Paso 4: cree una nueva cuenta de usuario

Siempre es recomendable tener un usuario normal con permisos de root para realizar tareas administrativas cuando sea necesario. Para asignar privilegios de root a un usuario normal, primero, cree un usuario con el comando useradd, establezca la contraseña y agregue un usuario al grupo de rueda administrativa.

# useradd ravisaive
# passwd ravisaive
# usermod -aG wheel ravisaive

Para verificar que el nuevo usuario tiene privilegios de root, inicie sesión en el sistema con las credenciales del usuario y ejecute el comando dnf con los permisos de Sudo como se muestra.

# su - ravisaive
# sudo dnf update

Paso 5: Configure el inicio de sesión sin contraseña SSH en CentOS 8

Para aumentar la seguridad de su servidor, configure una autenticación sin contraseña SSH para su nuevo usuario generando un par de Clave SSH, que contiene una clave pública y privada, pero debe crear una. Esto aumentará la seguridad de su servidor al requerir una clave SSH privada para conectarse al sistema.

# su - ravisaive
$ ssh-keygen -t RSA

Una vez que se genera la clave, le pedirá que ingrese la frase de contraseña para proteger la clave privada. Puede ingresar una contraseña segura o dejar la contraseña vacía si desea automatizar las tareas administrativas a través del servidor SSH.

Una vez que se ha generado la clave SSH, debe copiar el par de claves públicas generadas a un servidor remoto ejecutando el comando ssh-copy-id con el nombre de usuario y la dirección IP del servidor remoto como se muestra.

$ ssh-copy-id [email protected]

Una vez que se haya copiado la clave SSH, ahora puede intentar iniciar sesión en su servidor Linux remoto utilizando la clave privada como método de autenticación. Debería poder iniciar sesión automáticamente sin que el servidor SSH le solicite una contraseña.

$ [email protected]

Paso 6: Asegurar los inicios de sesión remotos SSH

Aquí, aseguraremos nuestro servidor un poco más deshabilitando el acceso SSH remoto a la cuenta raíz en el archivo de configuración SSH.

# vi /etc/ssh/sshd_config

Busque la línea que dice #PermitRootLogin yes , elimine el comentario de la línea eliminando el # del principio de la línea y modifique la línea a.

PermitRootLogin no

Luego, reinicie el servidor SSH para aplicar los nuevos cambios recientes.

# systemctl restart sshd

Ahora verifique la configuración intentando iniciar sesión como cuenta raíz, obtendrá acceso al error de permiso denegado SSH como se muestra.

# ssh [email protected]

Hay escenarios en los que es posible que desee desconectar todas las conexiones SSH remotas automáticamente a su servidor después de un cierto período de inactividad.

Paso 7: configurar el firewall en CentOS 8

En CentOS/RHEL 8, el firewall predeterminado es Firewalld, que se utiliza para administrar las reglas de iptables en el servidor. Para habilitar e iniciar el servicio firewalld en el servidor, ejecute los siguientes comandos.

# systemctl enable firewalld
# systemctl start firewalld
# systemctl status firewalld

Para abrir una conexión entrante a un servicio específico (SSH), primero, debe verificar que el servicio esté presente en las reglas de firewalld y, luego, agregar la regla para el servicio agregando --permanent cambie a los comandos como se muestra.

# firewall-cmd --add-service=[tab]  #List services
# firewall-cmd --add-service=ssh
# firewall-cmd --add-service=ssh --permanent

Si desea abrir conexiones entrantes a otros servicios de red como HTTP o SMTP, simplemente agregue las reglas como se muestra especificando el nombre del servicio.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --permanent --add-service=smtp

Para ver todas las reglas de firewall en el servidor, ejecute el siguiente comando.

# firewall-cmd --permanent --list-all

Paso 8: elimine los servicios no deseados en CentOS 8

Se recomienda encarecidamente que después de instalar un servidor CentOS/RHEL 8 nuevo, debe eliminar y deshabilitar los servicios no deseados que se ejecutan de forma predeterminada en el servidor para reducir los ataques en el servidor.

Para enumerar todos los servicios de red en ejecución, incluidos TCP y UDP, en el servidor, ejecute el comando ss o el comando netstat como se ilustra en el siguiente ejemplo.

# ss -tulpn
OR
# netstat -tulpn

Los comandos anteriores enumerarán algunos servicios interesantes que se ejecutan de forma predeterminada en el servidor, como el servidor de correo Postfix. Si no planea alojar el sistema de correo en el servidor, debe detenerlo y eliminarlo del sistema como se muestra.

# systemctl stop postfix
# systemctl disable postfix
# dnf remove postfix

Además del comando ss y el comando netstat, también puede ejecutar los comandos ps, top o pstree para descubrir e identificar todos los servicios no deseados y eliminarlos del sistema.

# dnf install psmisc
# pstree -p

Paso 9: Administrar servicios en CentOS 8

En CentOS/RHEL 8, todos los servicios y demonios se administran a través de un comando systemctl, y puede usar este comando para enumerar todos los servicios activos, en ejecución, salidos o fallidos.

# systemctl list-units

Para verificar si un demonio o servicio se habilita automáticamente durante el inicio del sistema, ejecute el siguiente comando.

# systemctl list-unit-files -t service

Para obtener más información sobre el comando systemctl, lea nuestro artículo que explica: Cómo administrar servicios usando "Systemctl" en Linux.

¡Eso es todo! En este artículo, hemos explicado algunas configuraciones y comandos básicos que todo administrador de sistemas Linux necesita conocer y aplicar en un sistema CentOS/RHEL 8 recién instalado o para realizar las tareas diarias en el sistema.