20 consejos de seguridad para el refuerzo del servidor CentOS-Parte 1

20 consejos de seguridad para el refuerzo del servidor CentOS-Parte 1

Este tutorial solo cubre consejos de seguridad generales para CentOS 8/7. que pueden usarse para fortalecer el sistema. Los consejos de la lista de comprobación están pensados ​​para utilizarse principalmente en varios tipos de servidores bare-metal o en máquinas (físicas o virtuales) que proporcionan servicios de red.

Sin embargo, algunos de los consejos se pueden aplicar con éxito a general-máquinas de propósito también, como computadoras de escritorio, computadoras portátiles y computadoras de placa única del tamaño de una tarjeta ( Raspberry Pi. .

Requisitos

  • Instalación mínima de CentOS 8
  • Instalación mínima de CentOS 7

1. Protección física

Cierre el acceso a las salas de servidores, utilice el bloqueo de los racks y la videovigilancia. Tenga en cuenta que cualquier acceso físico a las salas de servidores puede exponer su máquina a serios problemas de seguridad.

Las contraseñas de BIOS. se pueden cambiar restableciendo los puentes en la placa base o desconectando la batería CMOS . Además, un intruso puede robar los discos duros o conectar directamente nuevos discos duros a las interfaces de la placa base (SATA, SCSI, etc.), arrancar con una distribución en vivo de Linux y clonar o copiar datos sin dejar ningún rastro de software.

2. Reducir el impacto del espionaje

En caso de datos muy confidenciales, probablemente debería utilizar protección física avanzada, como colocar y bloquear el servidor en una jaula de Faraday o utilizar una solución TEMPEST militar para minimizar el impacto de espiar el sistema por radio o emanaciones eléctricas con fugas.

3. Secure BIOS/UEFI

freestar.config.enabled_slots.push

Inicie el proceso de endurecimiento de su máquina asegurando BIOS/UEFI. especialmente establezca una contraseña de BIOS/UEFI. y deshabilite los dispositivos de medios de arranque (CD, DVD, deshabilitar la compatibilidad con USB) para evitar que usuarios no autorizados modifiquen la configuración del BIOS del sistema o alteren el arranque prioridad del dispositivo y arrancar la máquina desde un medio alternativo.

Para aplicar este tipo de cambio a su máquina, debe consultar el manual del fabricante de la placa base para obtener instrucciones específicas.

4. Cargador de arranque seguro

Establezca una contraseña de GRUB. para evitar que los usuarios malintencionados alteren la secuencia de arranque del kernel o los niveles de ejecución, editen los parámetros del kernel o inicien el sistema en un modo de usuario único para dañar su sistema y restablecer la contraseña de root para obtener control privilegiado.

5. Utilice particiones de disco independientes

Al instalar CentOS. en sistemas destinados a servidores de producción, utilice particiones o discos duros dedicados para las siguientes partes del sistema:

/(raíz)/boot/home/tmp/var

6. Utilice LVM y RAID para la redundancia y el crecimiento del sistema de archivos

La partición /var. es el lugar donde se escriben los mensajes de registro en el disco. Esta parte del sistema puede crecer exponencialmente en tamaño en servidores con mucho tráfico que exponen servicios de red como servidores web o servidores de archivos.

Por lo tanto, use una partición grande para /var. o considere configurar esta partición utilizando volúmenes lógicos ( LVM. o combine varios discos físicos en un dispositivo RAID 0 virtual más grande para almacenar grandes cantidades de datos. Para los datos, considere la redundancia en el uso del diseño LVM en la parte superior del nivel RAID 1.

Para configurar LVM o RAID en los discos, siga nuestras guías útiles:

  1. Configure el almacenamiento en disco con LVM en Linux
  2. Cree discos LVM usando vgcreate, lvcreate y lvextend
  3. Combine varios discos en un gran almacenamiento virtual
  4. Crear RAID 1 usando dos discos en Linux

7. Modifique las opciones de fstab para proteger las particiones de datos

Separe las particiones destinadas a almacenar datos y evite la ejecución de programas, archivos de dispositivo o bit setuid. en este tipo de particiones agregando las siguientes opciones a Archivo fstab. como se ilustra en el siguiente extracto:

/dev/sda5/nas ext4 defaults, nosuid, nodev, noexec. 1 2

Para evitar la escalada de privilegios y la ejecución arbitraria de un script, cree una partición separada para /tmp. y móntela como nosuid. nodev. y noexec.

/dev/sda6/tmp ext4 por defecto, nosuid, nodev, noexec. 0 0

8. Cifre los discos duros a nivel de bloque con LUKS

Para proteger los datos confidenciales que espían en caso de acceso físico a los discos duros de la máquina. Le sugiero que aprenda a cifrar un disco leyendo nuestro artículo Cifrado de datos de disco duro de Linux con LUKS.

9. Utilice PGP y criptografía de clave pública

Para cifrar discos, utilice PGP y criptografía de clave pública o el comando OpenSSL para cifrar y descifrar archivos confidenciales con una contraseña como se muestra en este artículo Configurar el almacenamiento cifrado del sistema Linux.

10. Instale solo la cantidad mínima de paquetes requerida

Evite la instalación de programas, aplicaciones o servicios innecesarios o sin importancia para evitar vulnerabilidades de paquetes. Esto puede disminuir el riesgo de que el compromiso de una pieza de software pueda llevar a comprometer otras aplicaciones, partes del sistema o incluso sistemas de archivos, lo que finalmente resultará en corrupción o pérdida de datos.

11. Actualice el sistema con frecuencia

Actualice el sistema con regularidad. Mantenga el kernel de Linux sincronizado con los últimos parches de seguridad y todo el software instalado actualizado con las últimas versiones emitiendo el siguiente comando:

# yum update

12. Deshabilite Ctrl + Alt + Supr

Para evitar que los usuarios reinicien el servidor una vez que tengan acceso físico a un teclado o mediante una aplicación de consola remota o una consola virtualizada ( KVM. Virtualizando la interfaz del software) debe deshabilitar la secuencia de teclas Ctrl + Alt + Supr ejecutando el siguiente comando.

# systemctl mask ctrl-alt-del.target

13. Elimine los paquetes de software innecesarios

Instale el software mínimo requerido para su máquina. Nunca instale programas o servicios adicionales. Instale paquetes solo de repositorios oficiales o de confianza. Utilice una instalación mínima del sistema en caso de que la máquina esté destinada a funcionar durante toda su vida como servidor.

Verifique los paquetes instalados usando uno de los siguientes comandos:

# rpm-qa

Make una lista local de todos los paquetes instalados.

# yum list installed>> installed.txt

Consulte la lista de software inútil y elimine un paquete emitiendo el siguiente comando:

# yum remove package_name Artículo relacionado. Deshabilite y elimine paquetes no deseados en una instalación mínima de CentOS

14. Reinicie los servicios de Systemd después de las actualizaciones de Daemon

Utilice el siguiente ejemplo de comando para reiniciar un servicio de systemd con el fin de aplicar nuevas actualizaciones.

# systemctl restart httpd.service

15. Eliminar servicios innecesarios

Identifique los servicios que están escuchando en puertos específicos utilizando el siguiente comando ss.

# ss-tulpn

Para enumerar todos los servicios instalados con su estado de salida, emita el siguiente comando:

# systemctl list-units-t service

Por ejemplo, la instalación mínima predeterminada de CentOS. viene con el demonio Postfix instalado por defecto que se ejecuta con el nombre de un maestro en el puerto 25. Elimine el servicio de red Postfix en caso de que su máquina no se utilice como servidor de correo.

# yum remove postfix Artículo relacionado. Detenga y deshabilite servicios no deseados en CentOS

16. Cifre los datos transmitidos

No utilice protocolos no seguros para el acceso remoto o la transferencia de archivos como Telnet. FTP. u otros protocolos de texto sin formato como SMTP, HTTP, NFS o SMB que, de forma predeterminada, no encripta las sesiones de autenticación o los datos enviados.

Use solo sftp, scp para transferencias de archivos y SSH o VNC sobre túneles SSH para conexiones de consola remota o Acceso GUI.

Para tunelizar una consola VNC a través de SSH, use el siguiente ejemplo que reenvía el puerto VNC 5901 desde la máquina remota a su máquina local:

# ssh-L 5902: localhost: 5901 remote_machine

En la máquina local, ejecute el siguiente comando para realizar una conexión virtual al punto final remoto.

# vncviewer localhost: 5902

17. Escaneo de puertos de red

Realice verificaciones de puertos externos utilizando la herramienta Nmap desde un sistema remoto a través de la LAN. Este tipo de análisis se puede utilizar para verificar las vulnerabilidades de la red o probar las reglas del firewall.

# nmap-sT-O 192.168.1.10 Artículo relacionado: Aprenda a usar Nmap con estos 29 ejemplos

18. Cortafuegos de filtrado de paquetes

Utilice la utilidad firewalld. para proteger los puertos del sistema, abrir o cerrar puertos de servicios específicos, especialmente puertos conocidos (<1024).

Instale, inicie, habilite y enumere las reglas del firewall emitiendo los siguientes comandos:

# yum install firewalld # systemctl start firewalld.service # systemctl enable firewalld.service # firewall-cmd–list-all

19. Inspeccionar paquetes de protocolo con Tcpdump

Utilice la utilidad tcpdump para rastrear paquetes de red localmente e inspeccionar su contenido en busca de tráfico sospechoso (puertos de origen-destino, protocolos TCP/IP, tráfico de capa dos, solicitudes ARP inusuales).

Para un mejor análisis del archivo capturado tcpdump. utilice un programa más avanzado como Wireshark.

# tcpdump-i eno16777736-w tcpdump.pcap

20. Prevenir ataques de DNS

Inspeccione el contenido de su resolutor, normalmente el archivo /etc/resolv.conf. que define la dirección IP de los servidores DNS que debe utilizar para consultar los nombres de dominio., para evitar ataques man-in-the-middle, tráfico innecesario para servidores DNS raíz, falsificar o crear un ataque DOS.

Esta es solo la primera parte. En la siguiente parte, analizaremos otros consejos de seguridad para CentOS 8/7.