Búsqueda de sitios web

Configuración y configuración inicial del servidor en RHEL 7


En este tutorial, analizaremos los primeros pasos de configuración que debe seguir después de una instalación nueva de Red Hat Enterprise Linux 7 en un servidor básico o en un servidor privado virtual.

Requisitos

  1. Instalación mínima de RHEL 7

Importante: Los usuarios de CentOS 7 pueden seguir este artículo para realizar una configuración inicial del servidor en CentOS 7.

Actualizar el sistema RHEL 7

En el primer paso, inicie sesión en la consola de su servidor RHEL 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 YUM relacionados, ejecute el siguiente comando.

yum clean all

Instalar 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 principalmente a través de la red) net-tools, lsof (utilidades para administrar redes locales) y bash-completion (autocompletar línea de comandos).

Instálelos todos de una sola vez ejecutando el siguiente comando.


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

Configurar redes en RHEL 7

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

La utilidad más sencilla que puede utilizar un principiante para gestionar y cambiar configuraciones de red es la línea de comandos gráfica 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 siguiente captura de pantalla.


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 IP de la interfaz de red como se ilustra en la siguiente captura de pantalla. Cuando termine, navegue hasta Aceptar usando la tecla [tab] 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 desmantelar y activar. la interfaz con la configuración de IP, como se presenta en las capturas de pantalla siguientes.


nmtui-connect

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


ifconfig enp0s3
ip a
ping -c2 google.com

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


ethtool enp0s3
mii-tool enp0s3

Crear nueva cuenta de usuario

En el siguiente paso, mientras está conectado 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

Después de haber agregado al usuario usando el comando anterior, configure una contraseña segura para este usuario emitiendo el siguiente comando.

passwd tecmint_user

En los casos en los 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 tiene 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 a este nuevo usuario privilegios administrativos agregándolo al grupo del sistema “rueda”.

Los usuarios que pertenecen al grupo “rueda” pueden, 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 "rueda", ejecute el siguiente comando.

usermod -aG wheel tecmint_user

Luego, inicie sesión en el sistema con el nuevo usuario e intente actualizar el sistema mediante el comando 'sudo yum update' para probar si el usuario tiene poderes de root otorgados.

su - tecmint_user
sudo yum update

Configurar 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 privada, ejecute el siguiente comando en la consola de su servidor. Asegúrese de haber iniciado sesión en el sistema con el usuario para el que está configurando la clave SSH.

su - tecmint_user
ssh-keygen -t RSA

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

Una vez generada la clave SSH, copie el par de claves públicas a 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 

Ahora debería 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 le solicite una contraseña.

ssh [email 

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

cat ~/.ssh/id_rsa

SSH seguro en RHEL 7

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

sudo vi /etc/ssh/sshd_config

Busque la línea #PermitRootLogin sí, descomente la línea eliminando el signo # (hashtag) del principio de la línea y modifíquela 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 raíz a través de SSH ya debería estar restringido.

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 función en todo el sistema, ejecute el siguiente comando, que agrega la variable bash TMOUT al archivo principal bashrc y fuerza que todas las conexiones SSH se desconecten o eliminen. se apaga después de 5 minutos de inactividad.

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

Ejecute el comando tail para comprobar 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 cerró automáticamente después de 5 minutos.

Configurar el cortafuegos en RHEL 7

En el siguiente paso, configure el firewall para proteger aún más el sistema a nivel de red. RHEL 7 se entrega 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 demonio Firewalld está detenido, 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 ejecutándose en su sistema, puede usar la utilidad de línea de comando 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, conexión realizada. 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, utilice la siguiente sintaxis de comando.

sudo firewall-cmd --add-service=sshd

Si instala otros servicios de red en su servidor, como un servidor HTTP, un servidor de correo u otros servicios de red, puede agregar reglas para permitir 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 forma predeterminada, ejecute el comando ss, como se ilustra en el siguiente ejemplo.

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 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 a través del protocolo NTP. En caso de que no planee configurar su servidor RHEL para que se ejecute como un servidor NTP para que los clientes internos sincronicen 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 de su servidor y sincronizar la hora con un servidor homólogo superior, puede instalar la utilidad ntpdate y sincronizar la hora 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 hora ntpdate para que se ejecute todos los días sin la intervención del usuario, programe un nuevo trabajo 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 para compartir archivos u otras aplicaciones específicas.

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

  1. La mega guía para fortalecer y proteger RHEL 7 - Parte 1
  2. La mega guía para fortalecer y proteger RHEL 7 - Parte 2

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