Configuración inicial del servidor y configuraciones en RHEL 7


En este tutorial, discutiremos los primeros pasos de configuración que debe cuidar después de una instalación nueva de Red Hat Enterprise Linux 7 en un servidor de metal o en un servidor privado virtual.

  1. RHEL 7 Minimal Installation

Actualizar el sistema RHEL 7

En el primer paso, inicie sesión en su RHEL consola del servidor con una cuenta con privilegios de root o directamente como root y ejecute el siguiente comando para actualizar completamente los componentes de su sistema, como los paquetes instalados, el kernel o aplicar otros parches de seguridad.

# yum check-update
# yum update

Para eliminar todos los paquetes descargados localmente y otros cachés de YUM relacionados, ejecute el siguiente comando.

# yum clean all

Instalar las utilidades del sistema en RHEL 7

Las siguientes utilidades pueden resultar útiles para la administración diaria del sistema: nano (editor de texto para reemplazar el editor vi), wget, curl (utilidades utilizadas para descargar paquetes sobre todo en la red) herramientas de red , lsof (utilidades para administrar redes locales) y bash-completed (línea de comando autocompletada).

Instálalas todas de una sola vez ejecutando el siguiente comando.

# yum install nano wget curl net-tools lsof bash-completion

Configuración de redes en RHEL 7

RHEL 7 tiene una amplia gama de herramientas que se pueden usar para configurar y administrar redes, desde la edición manual del archivo de configuración de red hasta el uso de comandos como ip, ifconfig, nmtui , nmcli o ruta .

La utilidad más sencilla que un principiante puede usar para administrar y cambiar las configuraciones de red es la línea de comando gráfico nmtui .

Para cambiar el nombre de host del sistema mediante la utilidad nmtui , ejecute el comando nmtui-hostname , configure el nombre de host de su máquina y presione OK para finalizar, como se ilustra En la captura de pantalla de abajo.

# nmtui-hostname

Para manipular una interfaz de red, ejecute el comando nmtui-edit , elija la interfaz que desea editar y seleccione editar en el menú de la derecha, como se muestra en la siguiente captura de pantalla.

Una vez que esté en la interfaz gráfica proporcionada por la utilidad nmtui , puede configurar 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 la tecla [pestaña] para guardar la configuración y salir.

Para aplicar la nueva configuración de la interfaz de red, ejecute el comando nmtui-connect , seleccione la interfaz que desea administrar y presione la opción Desactivar/Activar para retirar el servicio y aumentar la interfaz con la configuración de IP, como se presenta en las capturas de pantalla a continuación.

# nmtui-connect

Para ver la configuración de la interfaz de red, puede inspeccionar el contenido del archivo de interfaz o puede emitir los siguientes comandos.

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

Otras utilidades útiles que se pueden usar para administrar la velocidad, el estado del enlace u obtener información sobre las interfaces de red de la máquina son ethtool y mii-tool .

# ethtool enp0s3
# mii-tool enp0s3

Crear nueva cuenta de usuario

En el siguiente paso, mientras inicie sesión como root en su servidor, cree un nuevo usuario con el siguiente comando. Este usuario se utilizará más adelante para iniciar sesión en su sistema y realizar tareas administrativas.

# adduser tecmint_user

Una vez que haya agregado al usuario con el comando anterior, configure una contraseña segura para este usuario emitiendo el siguiente comando.

# passwd tecmint_user

En los casos en que desee forzar a este nuevo usuario a cambiar su contraseña en el primer intento de inicio de sesión, ejecute el siguiente comando.

# chage -d0 tecmint_user

Esta nueva cuenta de usuario con privilegios de cuenta regulares por ahora y no puede realizar tareas administrativas mediante el comando sudo.

Para evitar el uso de la cuenta raíz para realizar privilegios administrativos, otorgue privilegios administrativos a este nuevo usuario agregando al usuario al grupo de sistema " rueda ".

Los usuarios que pertenecen al grupo " wheel " tienen permitido, de forma predeterminada en RHEL, ejecutar comandos con privilegios de root utilizando la utilidad sudo antes de escribir el comando necesario para la ejecución.

Por ejemplo, para agregar el usuario " tecmint_user " al grupo " wheel ", ejecute el comando siguiente.

# usermod -aG wheel tecmint_user

Luego, inicie sesión en el sistema con el nuevo usuario e intente actualizarlo mediante el comando ‘ sudo yum update ’ para comprobar si el usuario tiene poderes de root otorgados.

# su - tecmint_user
$ sudo yum update

Configure la autenticación de clave pública SSH en RHEL 7

En el siguiente paso para aumentar la seguridad de su servicio RHEL, configure la autenticación de clave pública SSH para el nuevo usuario. Para generar un par de claves SSH, la clave pública y la privada, ejecute el siguiente comando en la consola del servidor. Asegúrese de haber iniciado sesión en el sistema con el usuario que está configurando la clave SSH.

# su - tecmint_user
$ ssh-keygen -t RSA

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

Una vez que se haya generado la clave SSH, copie el par de claves públicas en un servidor remoto ejecutando el siguiente comando. Para instalar la clave pública en el servidor SSH remoto, necesitará una cuenta de usuario que tenga credenciales para iniciar sesión en ese servidor.

$ ssh-copy-id [email protected]

Ahora debe intentar iniciar sesión a través de SSH en el servidor remoto utilizando la clave privada como método de autenticación. Debería poder iniciar sesión automáticamente sin que el servidor SSH solicite una contraseña.

$ ssh [email protected]

Para ver el contenido de su clave SSH pública si desea instalar manualmente la clave en un servidor SSH distante, ejecute el siguiente comando.

$ cat ~/.ssh/id_rsa

Asegure SSH en RHEL 7

Para proteger el demonio SSH y no permitir el acceso remoto de SSH a la cuenta raíz a través de una contraseña o clave, abra el archivo de configuración principal del servidor SSH y realice los cambios siguientes.

$ sudo vi /etc/ssh/sshd_config

Busque la línea #PermitRootLogin sí , elimine el comentario de la línea eliminando el signo # (hashtag) del principio de la línea y modifique la línea para que se vea como se muestra a continuación extracto.

PermitRootLogin no

Luego, reinicie el servidor SSH para aplicar la nueva configuración y pruebe la configuración intentando iniciar sesión en este servidor con la cuenta raíz. El acceso a la cuenta de root a través de SSH debe estar restringido por ahora.

$ sudo systemctl restart sshd

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

Para habilitar esta característica en todo el sistema, ejecute el siguiente comando, que agrega la variable TMOUT bash al archivo principal bashrc y obliga a que todas las conexiones SSH se desconecten o se caigan. después de 5 minutos de inactividad.

$ su -c 'echo "TMOUT=300" >> /etc/bashrc'

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

$ tail /etc/bashrc

En la siguiente captura de pantalla, la sesión SSH remota desde la máquina drupal al servidor RHEL se ha cerrado automáticamente después de 5 minutos.

Configurar Firewall en RHEL 7

En el siguiente paso, configure el firewall para asegurar aún más el sistema a nivel de red. RHEL 7 se envía con la aplicación Firewalld para administrar las reglas de iptables en el servidor.

Primero, asegúrese de que el firewall se esté ejecutando en su sistema emitiendo el siguiente comando. Si el daemon de Firewalld se detiene, debe iniciarlo con el siguiente comando.

$ sudo systemctl status firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

Una vez que el firewall esté habilitado y funcionando en su sistema, puede usar la utilidad de línea de comandos firewall-cmd para configurar la información de la política del firewall y permitir el tráfico a algunos puertos de red específicos, como el demonio SSH, la conexión se realizó a un servidor web interno u otros servicios de red relacionados.

Debido a que en este momento solo estamos ejecutando un demonio SSH en nuestro servidor, podemos ajustar la política de firewall para permitir el tráfico para el puerto de servicio SSH emitiendo el siguiente comando.

$ sudo firewall-cmd --add-service=ssh --permanent
$ sudo firewall-cmd --reload

Para agregar una regla de firewall sobre la marcha, sin aplicar la regla la próxima vez que se inicie el servidor, use la siguiente sintaxis de comando.

$ sudo firewall-cmd --add-service=sshd

Si instala otros servicios de red en su servidor, como el servidor HTTP, un servidor de correo u otros servicios de red, puede agregar reglas para permitir las conexiones específicas de la siguiente manera.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --permanent --add-service=smtp

Para enumerar todas las reglas de firewall, ejecute el siguiente comando.

$ sudo firewall-cmd --permanent --list-all

Eliminar servicios innecesarios en RHEL 7

Para obtener una lista de todos los servicios de red (TCP y UDP) que se ejecutan en su servidor RHEL de manera predeterminada, ejecute el comando ss , como se ilustra en la siguiente muestra.

$ sudo ss -tulpn

El comando ss revelará algunos servicios interesantes que se inician y ejecutan de forma predeterminada en su sistema, como el servicio maestro Postfix y el servidor responsable del protocolo NTP.

Si no planea configurar este servidor como un servidor de correo, debe detener, deshabilitar y eliminar el demonio Postfix emitiendo los siguientes comandos.

$ sudo systemctl stop postfix.service 
$ sudo yum remove postfix

Recientemente, se han informado algunos ataques DDOS desagradables sobre el protocolo NTP. En caso de que no esté planeando configurar su servidor RHEL para que se ejecute como un servidor NTP para que los clientes internos puedan sincronizar la hora con este servidor, debe deshabilitar y eliminar completamente el demonio Chrony emitiendo los siguientes comandos.

$ sudo systemctl stop chronyd.service 
$ sudo yum remove chrony

Nuevamente, ejecute el comando ss para identificar si se están ejecutando otros servicios de red en su sistema y deshabilítelos y elimínelos.

$ sudo ss -tulpn

Para proporcionar la hora exacta para su servidor y la hora de sincronización con un servidor de tiempo superior, puede instalar la utilidad ntpdate y la hora de sincronización con un servidor NTP público, ejecutando los siguientes comandos.

$ sudo yum install ntpdate
$ sudo ntpdate 0.uk.pool.ntp.org

Para automatizar el comando de sincronización de tiempo ntpdate para que se ejecute todos los días sin la intervención del usuario, programe un nuevo trabajo de crontab para que se ejecute a medianoche con el siguiente contenido.

$ sudo crontab -e

Extracto del archivo Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

¡Eso es todo! Ahora, su servidor RHEL está preparado para instalar el software adicional necesario para servicios o aplicaciones de red personalizados, como instalar y configurar un servidor web, un servidor de base de datos, un servicio de intercambio de archivos u otras aplicaciones específicas.

Para asegurar y fortalecer aún más el servidor RHEL 7, consulte los siguientes artículos.

  1. The Mega Guide To Harden and Secure RHEL 7 – Part 1
  2. The Mega Guide To Harden and Secure RHEL 7 – Part 2

Si planea implementar sitios web en este sistema RHEL 7, aprenda cómo configurar y configurar la pila LAMP o la pila LEMP.