23 consejos de seguridad de endurecimiento del servidor CentOS - Parte 2
- 5043
- 1374
- Hugo Vera
Continuando con el tutorial anterior sobre cómo asegurar y endurecer el servidor CentOS, en este artículo, discutiremos otros consejos de seguridad que se presentarán en la lista de verificación a continuación.
Requisitos
- Consejos de seguridad de endurecimiento del servidor de 20 CentOS - Parte 1
21. Deshabilitar comandos inútiles Suid y SGID
Si el setuid y setgid Los bits se establecen en programas binarios, estos comandos pueden ejecutar tareas con otros derechos de usuario o grupo, como raíz privilegios que pueden exponer serios problemas de seguridad.
A menudo, los ataques de desbordamiento de búfer pueden explotar dichos binarios de ejecutables para ejecutar código no autorizado con los derechos de un usuario de potencia raíz.
# find / -path / proc -prune -o -type f \ (-perm -4000 -o -perm -2000 \) -exec ls -l \;
Para desestimar el setuid bit ejecute el siguiente comando:
# chmod u-s/rath/to/binary_file
Para desastar el bit setgid, ejecute el siguiente comando:
# Chmod G-S/Path/To/Binary_File
22. Verifique los archivos y directorios no propiedades
Los archivos o directorios que no son propiedad de una cuenta válida deben eliminarse o asignarse con permisos de un usuario y grupo.
Emitir el siguiente comando encontrar archivos o directorios sin usuario y grupo.
# Find / -Nouser -o -NoGroup -exec ls -l \;
23. Lista de archivos escritos en el mundo
Mantener un archivo mundial en el sistema puede ser peligroso debido al hecho de que cualquiera puede modificarlo. Ejecutar el siguiente comando a continuación para mostrar archivos escritos por palabras, excepto Symlinks, que siempre son escritos mundiales.
# encontrar / -path / proc -prune -o -perm -2 ! -Tipo L -LS
24. Crear contraseñas seguras
Crear una contraseña de un mínimo de ocho caracteres. La contraseña debe contener dígitos, caracteres especiales y letras mayúsculas. Usar PWMake para generar una contraseña de 128 bits de /dev/urandom archivo.
# PWMake 128
25. Aplicar la política de contraseña segura
Obligar al sistema a usar contraseñas seguras agregando la línea a continuación en /etc/pam.D/PASSWD archivo.
Contraseña requerida PAM_PWQUALIDAD.Entonces vuelve a intentarlo = 3
Agregar la línea anterior, la contraseña ingresada no puede contener más de 3 personajes en una secuencia monotónica, como a B C D, y más de 3 caracteres consecutivos idénticos, como 1111.
Para obligar a los usuarios a usar una contraseña con una longitud mínima de 8 Los personajes, incluidas todas las clases de personajes, verificación de fuerza para secuencias de caracteres y personajes consecutivos, agregan las siguientes líneas a la /etc/seguridad/pwQuality.confusión archivo.
Minlen = 8 mínclas = 4 max -showsence = 3 maxRepeat = 3
26. Use el envejecimiento de la contraseña
El comando CHAGE se puede utilizar para el envejecimiento de la contraseña de usuario. Para establecer la contraseña de un usuario para expirar 45 Días, use el siguiente comando:
# CHAGE -M 45 Nombre de usuario
Para deshabilitar el tiempo de vencimiento de la contraseña, use el comando:
# CHAGE -M -1 Nombre de usuario
Forzar la vencimiento de la contraseña inmediata (el usuario debe cambiar la contraseña en el siguiente inicio de sesión) ejecutando el siguiente comando:
# CHAGE -D 0 Nombre de usuario
27. Bloquear cuentas
Las cuentas de usuario se pueden bloquear ejecutando el pasada o comando usermod:
# passwd -l nombre de usuario # usermod -l nombre de usuario
Para desbloquear cuentas use el -u
opción para pasada comando y -U
opción para usermod.
28. Evitar el acceso a la concha de las cuentas
Para evitar que una cuenta del sistema (cuenta ordinaria o cuenta de servicio) obtenga acceso a un shell bash, cambie el shell raíz a /usr/sbin/nologin o /bin/falso en el /etc/passwd Archivo emitiendo el comando a continuación:
# usermod -s /bin /falso nombre de usuario
Para cambiar el shell al crear un nuevo usuario de usuario, el siguiente comando:
# userAdd -s/usr/sbin/nologin nombre de usuarioArtículo relacionado: Aprenda 15 ejemplos de comando "UserAdd" en Linux
29. Bloquear la consola de usuario virtual con vlock
vlock es un programa utilizado para bloquear una sesión múltiple en la consola de Linux. Instale el programa y comience a bloquear su sesión de terminal ejecutando los comandos a continuación:
# yum install vlock # vlock
30. Utilice un sistema centralizado para administrar cuentas y autenticación
El uso de un sistema de autenticación centralizado puede simplificar enormemente la gestión y el control de las cuentas. Los servicios que pueden ofrecer este tipo de administración de cuentas son IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba Ans o Winbind.
Algunos de estos servicios están, por defecto, están altamente asegurados con protocolos criptográficos y criptografía de tecla simétrica, como Kerberos.
Artículo relacionado: Configurar el servidor NFS con autenticación de usuario con sede en Kerberos en Linux31. Force el montaje de solo lectura de los medios USB
Usando blockdev Utilidad Puede forzar todos los medios extraíbles a montar como solo lectura. Por ejemplo, crea un nuevo udev Archivo de configuración nombrado 80-readonly-USB.normas en el /etc/udev/reglas.d/ Directorio con el siguiente contenido:
Subsistema == "bloque", attrs eliminable == "1", ejecut programa = "/sbin/blockdev --setro %n"
Luego, aplique la regla con el siguiente comando:
# Udevadm Control -ReloadArtículo relacionado: Cómo usar UDEV para la detección y administración de dispositivos en Linux
32. Deshabilitar el acceso a la raíz a través de TTY
Para evitar que la cuenta raíz realice el inicio de sesión del sistema a través de todos los dispositivos de consola (TTY), borre el contenido del archivo Securetty escribiendo el siguiente mensaje terminal de comando como root.
# CP /ETC /SEVETTY /ETC /SEVELTY.bak # cat /dev /null> /etc /Securetty
Recuerde que esta regla no se aplica a las sesiones de inicio de sesión de SSH
Para evitar el inicio de sesión raíz a través de SSH, edite el archivo /etc/ssh/sshd_config y agregue la línea a continuación:
Permitrootlogin noArtículo relacionado: Cómo asegurar y endurecer el servidor OpenSsh
33. Use ACL de POSIX para expandir los permisos del sistema
Las listas de control de acceso pueden definir los derechos de acceso para más que un solo usuario o grupo y pueden especificar derechos para programas, procesos, archivos y directorios. Si establece ACL en un directorio, sus descendientes heredarán los mismos derechos automáticamente.
Por ejemplo,
# setfacl -m u: user: rw archivo # getFacl archivoArtículo relacionado: Configurar cuotas de ACL y disco para usuarios/grupos en Linux
34. Configurar Selinux en modo de aplicación
El Selinux La mejora del kernel de Linux implementa la política de control de acceso obligatorio (MAC), lo que permite a los usuarios definir una política de seguridad que proporciona permisos granulares para todos los usuarios, programas, procesos, archivos y dispositivos.
Las decisiones de control de acceso del kernel se basan en todo el contexto relevante de seguridad y no en la identidad del usuario autenticada.
Llegar Selinux Estado y hacer cumplir la política Ejecute los siguientes comandos:
# getenforce # setenforce 1 # sestatusArtículo relacionado: Configurar la política de control de acceso obligatoria con Selinux
35. Instalar utilidades adicionales de Selinux
Instalar PolicyCoreutils-Python paquete que proporciona utilidades de Python adicionales para operar Selinux: Audit2allow, auditoría, chcat, y semanago.
Para mostrar todos los valores booleanos junto con una breve descripción, use el siguiente comando:
# semanage booleano -l
Por ejemplo, para mostrar y establecer el valor de httpd_enable_ftp_server, Ejecute el siguiente comando:
# getsebool httpd_enable_ftp_server
Para que el valor de un booleano persista a través de reinicios, especifique el -PAG
opción para setsebool, Como se ilustra en el siguiente ejemplo:
# setsebool -p httpd_enable_ftp_server en
36. Usar servidor de registro centralizado
Configurar rsyslog Daemon para enviar mensajes de registro de utilidades confidenciales a un servidor de registro centralizado. Además, monitoree los archivos de registro con la ayuda de la utilidad de logwatch.
El envío de mensajes de registro a un servidor remoto asegura que una vez que el sistema se ha visto comprometido, los usuarios maliciosos no pueden ocultar completamente su actividad, siempre dejando rastros en archivos de registro remotos.
Artículo relacionado: 4 Las mejores herramientas de administración de monitoreo y registro de registro de Linux37. Habilitar contabilidad de procesos
Habilitar contabilidad de procesos instalando PSACCT Utility y use Lastcomm comando para mostrar información sobre comandos ejecutados previamente como se registra en el archivo de contabilidad del sistema y SA Para resumir la información sobre los comandos ejecutados previamente como se registra en el archivo de contabilidad del sistema.
38. Endurecimiento /etc /sysctl.confusión
Use las siguientes reglas de parámetros del núcleo para proteger el sistema:
Desactivar el enrutamiento de la fuente
neto.IPv4.confusión.todo.Acept_source_route = 0
Deshabilitar el reenvío de IPv4
IPv4.confusión.todo.Reenvío = 0
Deshabilitar IPv6
neto.IPv6.confusión.todo.disable_ipv6 = 1 net.IPv6.confusión.por defecto.disable_ipv6 = 1 net.IPv6.confusión.holgazanería.disable_ipv6 = 1
Deshabilite la aceptación y el envío de paquetes redirigidos por ICMP a menos que se requiera específicamente.
neto.IPv4.confusión.todo.Acept_Redirects = 0 net.IPv4.confusión.todo.seguro_redirects = 0 net.IPv4.confusión.todo.send_redirects = 0
Deshabilitar el reenvío de la ruta inversa
neto.IPv4.confusión.todo.rp_filter = 2
Ignore todas las solicitudes de eco ICMP (establecido en 1 para habilitar)
neto.IPv4.ICMP_ECHO_IGNORE_ALL = 0
39. Use servicios VPN para acceder a sus instalaciones a través de redes públicas sin protección
Siempre usa VPN Servicios para que los transportistas accedan a las instalaciones de LAN a través de Internet. Dichos tipos de servicios se pueden configurar utilizando una solución de código abierto gratuito, como OpenVPN, o utilizando una solución patentada, como Cisco VPN (instalar VPNC Utilidad de línea de comandos proporcionada por los repositorios de EPEL).
Artículo relacionado: Instale el servidor OpenVPN con clientes de Windows en CentOS40. Realizar una exploración de sistema externo
Evalúe la seguridad de su sistema para las vulnerabilidades escaneando el sistema desde puntos remotos a través de su LAN utilizando herramientas específicas como:
- Nmap - escáner de red 29 ejemplos de comando nMAP
- Nessus - escáner de seguridad
- Abierto - Se utiliza para escanear vulnerabilidades y para una gestión integral de vulnerabilidades.
- Nikto - Una excelente vulnerabilidad web de escaneo de escáner de script de interfaz de puerta de enlace común (CGI) en Linux
41. Proteger el sistema internamente
Utilice la protección interna del sistema contra virus, kits rootkits, malware y, como una buena práctica, instale sistemas de detección de intrusiones que puedan detectar actividad no autorizada (ataques DDoS, escaneos de puertos), como:
- Ayudante - Entorno avanzado de detección de intrusos - http: // ayudante.Fuente de la fuente.neto/
- Clamav - escáner antivirus https: // www.clamav.neto
- RKHUnter - RootKit Scanner
- Lynis - Herramienta de auditoría y escaneo de seguridad para Linux
- Cable - Integridad de seguridad y datos http: // www.cable.com/
- Fail2ban - Prevención de redes de intrusión
- Ossec - (HIDS) Sistema de detección de intrusos basado en host http: // ossec.github.IO/
- Mod_securidad - Proteger la fuerza bruta o los ataques DDoS
42. Modificar las variables de entorno de usuario
Adjuntar fecha y tiempo formatear para almacenar la ejecución de los comandos emitiendo el siguiente comando:
# echo 'HistTimeFormat = "%d/%m/%y%t"' >> .bashrc '
Fuerza para registrar instantáneamente Histórico Cada vez que se escribe un comando (en lugar de inicio de sesión):
# ECHO 'ARD_COMMAND = "HISTORIA -A"' >> .bashrc
Limite la sesión de inicio de sesión de tiempo de espera. Tirar automáticamente la carcasa cuando no se realiza ninguna actividad durante un período de tiempo de inactividad. Muy útil para desconectar automáticamente las sesiones de SSH.
# echo 'tmout = 120' >> .bashrc
Aplicar todas las reglas ejecutando:
# fuente .bashrcArtículo relacionado: Establecer variables de entorno de usuario en Linux
43. Los datos de copia de seguridad
Use utilidades de respaldo, como alquitrán, gato, rsync, scp, lvm instantáneas, etc. para almacenar una copia de su sistema, preferiblemente fuera del sitio, en caso de falla del sistema.
Si el sistema se compromete, puede realizar la restauración de datos desde copias de seguridad anteriores.
Finalmente, no olvide que, sin importar cuántas medidas de seguridad y medidas contrarias, tome para mantener su sistema seguro, nunca estará 100% completamente seguro siempre que su máquina esté enchufada y encendida.
- « Cómo instalar PostgreSQL y Pgadmin4 en Ubuntu 20.04
- Configuración de Zimbra Collaboration Suite (ZCS) en Rhel/Centos 7/8 »