SUS PRIMEROS 5 PASOS PARA EL HARDENING DE UN SERVIDOR LINUX

By Keren Pollack, on August 3rd, 2021

Al instalar un nuevo servidor Linux, debe tener en cuenta que su nivel de seguridad es muy bajo por defecto, para permitir la mayor funcionalidad posible. Por lo tanto, es fundamental realizar acciones de refuerzo (hardening) básicas antes de poner el servidor en producción.

 

Este blog cubrirá 5 acciones básicas de refuerzo que deben realizarse en cualquier tipo de servidor Linux, independientemente de su función. Tenga en cuenta que estas acciones son prácticas básicas para minimizar la superficie de ataque. Para lograr una postura de seguridad adecuada, debe desarrollar una política de refuerzo específica para el servidor de acuerdo con su función, entorno, versión, etc.

 

Aquí hay 5 pasos fundamentales de refuerzo que debe realizar en su servidor Linux:

  1. Crear un nuevo usuario sudo
  2. Configurar un firewall
  3. Instalar y configurar el firewall Fail2ban
  4. Configurar SSH
  5. Habilitar SELinux
  6. Automatizar el hardening de Linux

 

PASO 1: CREAR UN NUEVO USUARIO “SUDO”

En los sistemas Linux, el usuario root tiene los privilegios más altos del sistema. Esto es necesario para instalar y configurar el servidor. Este usuario no debe utilizarse para realizar operaciones regulares del servidor para reducir la posibilidad de que los intrusos aprovechen su acceso y privilegios.

 

Por lo tanto, se debe crear un nuevo usuario con los privilegios relevantes para realizar operaciones regulares del servidor. Este usuario sudo tendrá derechos de administrador limitados.

 

El comando:

# adduser tom

(refiera a Tom como su nombre de usuario)

 

Se le pedirá una contraseña. Ingrese una contraseña única y larga. El nuevo usuario deberá obtener privilegios de nivel raíz para realizar tareas administrativas, por lo tanto, debe colocarse en el grupo de sudoer:

# usermod -aG sudo tom

 

PASO 2: INSTALAR UN FIREWALL BÁSICO

Los servidores Linux generalmente vienen con un firewall instalado, pero deberá activarlo. Los servidores de Ubuntu usan el firewall ufw que se puede activar a través de este comando:

# ufw enable

 

PASO 3: INSTALE Y CONFIGURE FAIL2BAN FIREWALL

El firewall Fail2ban es útil para bloquear el tráfico de red ilegítimo entrante al servidor. Fail2ban es una aplicación de análisis de logs que supervisa los logs del sistema en busca de síntomas de un ataque automatizado en su Linode.

 

Cuando se detecta actividad maliciosa, mediante el uso de los parámetros definidos, Fail2ban agrega una nueva regla a iptables para bloquear la dirección IP del atacante, ya sea por un período de tiempo determinado o de forma permanente. Fail2ban también puede avisarle por correo electrónico que se está produciendo un ataque. Este es un firewall de terceros y debe instalarse por separado. Después de la instalación, se puede configurar para bloquear diferentes tipos de tráfico HTTP, SSH, FTP no deseado realizando las configuraciones adecuadas en el archivo /etc/fail2ban/jail.local

 

# nano /etc/fail2ban/jail.local

 

PASO 4: CONFIGURE SSH

SSH es el servicio que es sujeto de la mayoría de los ataques externos. Asegurarlo tiene altísima prioridad. Los servidores Linux llegan del fabricante con servicios SH. Aquí hay muchas cosas que puede configurar para aumentar la seguridad, pero le recomendamos que comience por estas:

 

  1. El puerto SSH predeterminado es el puerto 22. Se sabe que el puerto 22 tiene varias vulnerabilidades, por lo que es mejor que cambie las configuraciones predeterminadas.
  2. Asegúrese de que no se pueda acceder a la cuenta root mediante SSH:
PermitRootLogn no
  1. La autenticación de contraseña debe reemplazarse con autenticación basada en claves. Todo esto se puede configurar desde /etc/ssh/sshd_config
  2. Permitir algunos usuarios específicos:

AllowUsers [nombre de usuario]

 

Esto es solo la punta del iceberg al configurar SSH, y hay mucho más que puede hacer. Por ejemplo, algunas empresas agregan banners para disuadir a los atacantes y desanimarlos de continuar.

 

Aquí hay algunas opciones adicionales que debe asegurarse de que existan en el archivo “sshd_config”:

Protocol2

IgnoreRhosts to yes

HostbasedAuthentication no

PermitEmptyPasswords no

X11Forwarding no

MaxAuthTries 5

Ciphers aes128-ctr,aes192-ctr,aes256-ctr

ClientAliveInterval 900

ClientAliveCountMax 0

UsePAM yes

 

Finalmente, configure los permisos en el archivo sshd_config para que solo los usuarios root puedan cambiar su contenido:

#chown root: root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

Para obtener más instrucciones, considere consultar el manual SSH para comprender todas las configuraciones en este archivo.

 

PASO 5: HABILITAR SELINUX

Security-Enhanced Linux (SELinux) es un mecanismo de seguridad del Kernel para soportar la política de seguridad de control de acceso. El SELinux tiene tres modos de configuración:

Deshabilitado: Apagado

Permisivo: imprime advertencias

Cumplimiento: la política se aplica

 

Usando un editor de texto, abra el archivo de configuración:

#nano /etc/selinux/config

Asegúrese de que se cumpla la política:

SELINUX=enforcing

 

AUTOMATICE EL HARDENING DE LINUX:

Cualquier actividad de endurecimiento (hardening) debe probarse para determinar su impacto antes de ser implementada. Este procedimiento de prueba requiere mucho tiempo y es complejo, especialmente en un entorno empresarial donde las dependencias son casi infinitas.

 

La automatización de hardening toma esta tarea de refuerzo y la reduce de 5 horas a 5 minutos por servidor. La automatización del hardening también garantizará que no sufra interrupciones de producción mientras se refuerza.

 

Cuando se trata de una infraestructura de más de 100 servidores, el uso de herramientas de refuerzo manual no es realista. Los recursos que deben invertirse para evitar cortes de producción empujan a muchas organizaciones a descuidar la tarea de hardening. Ahora que las regulaciones se vuelven más estrictas requiriendo hardening y el hecho de que el hardening puede prevenir la mayor cantidad de técnicas de ataque (según un informe de MITRE ATT&CK), las herramientas de automatización de hardening son una necesidad para cada proyecto de endurecimiento.