Consejos de seguridad de endurecimiento del servidor de 20 CentOS - Parte 1
- 3855
- 491
- Carmen Casillas
Este tutorial solo cubre consejos de seguridad generales para CentOS 8/7 que se puede usar para endurecer el sistema. Los consejos de la lista de verificación están destinados a usarse principalmente en varios tipos de servidores de metal desnudo o en máquinas (físicas o virtuales) que proporcionan servicios de red.
Sin embargo, algunos de los consejos también se pueden aplicar con éxito a las máquinas de uso general, como computadoras de escritorio, computadoras portátiles y computadoras de un solo tablero (Frambuesa pi).
Requisitos
- CentOS 8 Instalación mínima
- CentOS 7 Instalación mínima
1. Protección física
Localice el acceso a las habitaciones de su servidor, use el bloqueo de los bastidores y la vigilancia de video. Tenga en cuenta que cualquier acceso físico a las salas de servidores puede exponer su máquina a problemas de seguridad graves.
Biografía Las contraseñas se pueden cambiar restableciendo los saltadores en la placa base o desconectando la batería CMOS. Además, un intruso puede robar los discos duros o adjuntar directamente los nuevos discos duros a las interfaces de la placa base (SATA, SCSI, etc.), arrancar con una distribución en vivo de Linux y clon o copiar datos sin dejar ningún rastro de software.
2. Reducir el impacto del espionaje
En caso de datos altamente sensibles, probablemente debería usar una protección física avanzada, como colocar y bloquear el servidor en una jaula de Faraday o usar una solución de tempestad militar para minimizar el impacto de espiar el sistema a través de emanaciones de radio o fugas eléctricas.
3. BIOS/UEFI seguro
Inicie el proceso de endurecer su máquina asegurando BIOS/UEFI configuración, especialmente establecer un BIOS/UEFI Contraseña y deshabilitar los dispositivos de medios de arranque (CD, DVD, Desactivar el soporte USB) para evitar que cualquier usuario no autorizado modifique la configuración del BIOS del sistema o altere la prioridad del dispositivo de arranque y el arranque de 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
Establecer un COMIDA Contraseña Para evitar que los usuarios maliciosos se tambalen con la secuencia de arranque del kernel o los niveles de ejecución, edite parámetros del núcleo o inicie el sistema en un modo de usuario único para dañar su sistema y restablecer la contraseña de root para obtener un control privilegiado.
5. Use particiones de disco separadas
Al instalar Cento En los sistemas previstos como servidores de producción utilizan particiones dedicadas o discos duros dedicados para las siguientes partes del sistema:
/(root) /boot /home /tmp /var
6. Use LVM y RAID para la redundancia y el crecimiento del sistema de archivos
El /var La partición es el lugar donde los mensajes de registro se escriben en el disco. Esta parte del sistema puede crecer exponencialmente en servidores de tráfico que exponen servicios de red como servidores web o servidores de archivos.
Por lo tanto, use una gran partición para /var o considere configurar esta partición utilizando volúmenes lógicos (LVM) o combine varios discos físicos en un dispositivo Virtual RAID 0 más grande para mantener grandes cantidades de datos. Para los datos, la redundancia considere usar el diseño LVM en la parte superior de la redada 1 nivel.
Para configurar LVM o RAID en los discos, siga nuestras guías útiles:
- Configuración de almacenamiento de disco con LVM en Linux
- Cree discos LVM usando VGCreate, LVCreate y Lvextend
- Combine varios discos en un gran almacenamiento virtual
- Cree RAID 1 usando dos discos en Linux
7. Modificar opciones de FSTAB para asegurar las particiones de datos
Particiones separadas destinadas a almacenar datos y evitar la ejecución de programas, archivos de dispositivos o setuid bit en este tipo de particiones agregando las siguientes opciones a fstab Archivo como se ilustra en el siguiente extracto:
/dev /sda5 /nas ext4 predeterminados,Nosuid, Nodev, NoExec 1 2
Para evitar la reducción de privilegios y la ejecución arbitraria de script, cree una partición separada para /TMP y montarlo como nosuida, nodev, y noexec.
/dev /sda6 /tmp ext4 predeterminados,Nosuid, Nodev, NoExec 0 0
8. Cifrar los discos duros a nivel de bloque con luks
Para proteger los datos confidenciales de los datos en caso de acceso físico a los discos duros de la máquina. Le sugiero que aprenda a cifrar el disco leyendo nuestro artículo Cifrado de datos de disco duro de Linux con luks.
9. Use PGP y criptografía de clave pública
Para cifrar discos, use el comando PGP y la criptografía de clave pública u OpenSSL para cifrar y descifrar archivos confidenciales con una contraseña como se muestra en este artículo Configurar almacenamiento de sistema de Linux cifrado.
10. Instale solo la cantidad mínima de paquetes requeridos
Evite instalar programas, aplicaciones o servicios sin importancia o innecesarios para evitar vulnerabilidades de paquetes. Esto puede disminuir el riesgo de que el compromiso de un software pueda llevar a comprometer otras aplicaciones, partes del sistema o incluso sistemas de archivos, lo que finalmente resulta en la corrupción de datos o la pérdida de datos.
11. Actualizar el sistema con frecuencia
Actualizar el sistema regularmente. 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:
# Actualización de Yum
12. Deshabilitar Ctrl+Alt+del
Para evitar que los usuarios reinicie 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, Interfaz de software de virtualización) debe deshabilitar Ctrl+Alt+del
secuencia de clave ejecutando el siguiente comando.
# SystemCTL Mask Ctrl-Alt-Del.objetivo
13. Eliminar paquetes de software innecesarios
Instale un software mínimo requerido para su máquina. Nunca instale programas o servicios adicionales. Instalar paquetes solo de repositorios de confianza o de confianza. Use la instalación mínima del sistema en caso de que la máquina esté destinada a ejecutar toda su vida como servidor.
Verifique los paquetes instalados utilizando uno de los siguientes comandos:
# rpm -qa
Haga una lista local de todos los paquetes instalados.
# Lista Yum instalada >> Instalada.TXT
Consulte la lista de software inútil y elimine un paquete emitiendo el siguiente comando:
# yum eliminar paquete_nameArtículo relacionado: Desactivar y eliminar paquetes no deseados en una instalación mínima de CentOS
14. Reiniciar servicios de Systemd después de las actualizaciones de Daemon
Use el ejemplo de comando a continuación para reiniciar un servicio Systemd para aplicar nuevas actualizaciones.
# SystemCTL reiniciar httpd.servicio
15. Eliminar servicios innecesarios
Identifique los servicios que escuchan en puertos específicos utilizando el siguiente comando SS.
# ss -tulpn
Para enumerar todos los servicios instalados con su estado de salida, el siguiente comando: el siguiente comando:
# SystemCTL List -Units -T Servicio
Por ejemplo, Cento La instalación mínima predeterminada viene con Daemon Postfix instalado de forma predeterminada que se ejecuta con el nombre de un maestro en el puerto 25. Eliminar el servicio de red PostFix en caso de que su máquina no se use como servidor de correo.
# yum eliminar postfixArtículo relacionado: Detener y deshabilitar los servicios no deseados en CentOS
dieciséis. Encrypt datos transmitidos
No use protocolos no garantizados para acceso remoto o transferencia de archivos, como Telnet, Ftp, u otros protocolos altos de texto plano como SMTP, HTTP, NFS o SMB que, por defecto, no cifra 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 a GUI.
Para túnel 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 a continuación para una conexión virtual al punto final remoto.
# VNCViewer Localhost: 5902
17. Escaneo de puertos de red
Realice controles de puertos externos utilizando la herramienta NMAP desde un sistema remoto a través de la LAN. Este tipo de escaneo se puede utilizar para verificar las vulnerabilidades de la red o probar las reglas del firewall.
# nmap -st -o 192.168.1.10Artículo relacionado: Aprenda a usar NMAP con estos 29 ejemplos
18. Firewall de filtro de paquetes
Usar cortafuegos utilidad para proteger los puertos del sistema, abrir o cerrar los puertos de servicios específicos, especialmente los puertos bien conocidos (<1024).
Instalar, iniciar, habilitar y enumerar las reglas de firewall emitiendo los siguientes comandos:
# yum instalación firewalld # systemCtl iniciar firewalld.Servicio # SystemCTL Habilitar firewalld.servicio # firewall-cmd --list-all
19. Inspeccionar paquetes de protocolo con tcpdump
Use la utilidad TCPDUMP para rastrear los paquetes de red localmente e inspeccionar su contenido para el tráfico sospechoso (puertos de destino de origen, protocolos TCP/IP, capa dos de tráfico, solicitudes de ARP inusuales).
Para un mejor análisis del tcpdump Archivo capturado Utilice un programa más avanzado como Wireshark.
# tcpdump -i eno16777736 -w tcpdump.PCAP
20. Prevenir los ataques de DNS
Inspeccionar el contenido de su resolución, típicamente /etc/resolv.confusión Archivo, que define la dirección IP de los servidores DNS que debe usar para consultar los nombres de dominio, para evitar ataques de hombre en el medio, tráfico innecesario para servidores DNS raíz, falsificación o crear un ataque DOS.
Esta es solo la primera parte. En la siguiente parte, discutiremos otros consejos de seguridad para CentOS 8/7.
No te pierdas: La mega guía para endurecer y asegurar CentOS 8/7 - Parte 2- « Cómo crear equipo o vinculación de NIC en Centos 8 / Rhel 8
- Cómo ejecutar cualquier distribución de Linux directamente desde el disco duro en Ubuntu usando el menú Grub »