Además de la lista de verificación de endurecimiento de seguridad que se muestra a continuación, este artículo incluye breves explicaciones de cada recomendación, incluidos enlaces a tutoriales que muestran cómo implementarlos con capturas de pantalla reales de escenarios. El documento está optimizado para usuarios novedosos y avanzados.
Todos los consejos descritos en este artículo son útiles para cada distribución de Linux. Los usuarios del sistema operativo UNIX también pueden encontrar este tutorial útil para proteger sus sistemas."
Nota: La siguiente lista de verificación de endurecimiento de seguridad de Linux se escribió inicialmente en 2019 y se actualizó en 2022.
Lista de verificación de endurecimiento de seguridad de Linux
POLÍTICA | USUARIO DOMÉSTICO | SERVIDOR |
Deshabilitar ssh | ✔ | ✔/x |
Desactivar el acceso a la raíz SSH | ✔ | ✔ |
Cambiar el puerto predeterminado SSH | ✔ | ✔ |
Desactivar la autenticación de inicio de sesión de contraseña de SSH | ✔ | ✔ |
Definir las reglas adecuadas del firewall | ✔ | ✔ |
Implementar IDS (sistema de detección de intrusos) | X | ✔ |
Asegure el BIOS | ✔ | ✔ |
Cifrado de disco | ✔ | X |
Proteger el sistema contra RootKits | ✔ | ✔ |
Mantenga el sistema actualizado | ✔ | ✔ |
VPN (red privada virtual) | ✔ | X |
Habilitar Selinux | ✔ | ✔ |
Implementar Honeypots y Honeynets | X | ✔ |
Escanee externamente su dispositivo en busca de vulnerabilidades | ✔ | ✔ |
Prácticas de seguridad comunes | ✔ | ✔ |
Deshabilitar ssh
El servicio SSH es uno de los objetivos más utilizados para los atacantes. A través del acceso SSH, un hacker puede entrar en el sistema de destino para aumentar los privilegios, obteniendo el control total del sistema. Vale la pena recordar que las exploits de ejecución local son más peligrosas que las exploits remotas, ya que las exploits locales no se filtran con firewalls.
Los usuarios de hogares y corporativos deben desactivar todos los servicios innecesarios, ya que representan a las puertas para que los hackers accedan al sistema objetivo.
La recomendación principal es eliminar completamente los servicios no deseados. Si cree que en el futuro puede usar un servicio actualmente innecesario, lea este tutorial con instrucciones específicas sobre la identificación y la deshabilitación de los servicios no utilizados. Si necesita mantener el servicio SSH, siga leyendo a continuación para obtener instrucciones para asegurarlo.
Desactivar el acceso a la raíz SSH
Como se dijo en la recomendación anterior de deshabilitar o eliminar el servicio SSH, este servicio puede ser vulnerable a ciertos ataques si se configuran incorrectamente.
Una medida importante a tomar para asegurar el acceso SSH es deshabilitar el inicio de sesión de la raíz. La razón principal para deshabilitar el inicio de sesión de la raíz a través de SSH es que el superusor principal de cada sistema de Linux es una raíz; Por lo tanto, un atacante ya sabe que su sistema tiene el superusor raíz y puede usarlo en un ataque de fuerza bruta que solo necesita romper su contraseña. Además, otra razón importante para deshabilitar el acceso a la raíz a través de SSH es dificultar que un atacante obtenga acceso privilegiado ayudado por exploits.
En Linuxhint, hemos publicado un tutorial sobre cómo deshabilitar el acceso a la raíz SSH que puede leer aquí.
Cambiar el puerto predeterminado SSH
Muchos atacantes lanzan ataques masivos e indiscriminados contra objetivos aleatorios. Si un atacante intenta identificar enormemente dispositivos escaneando el puerto SSH (22), fallará contra los sistemas que sirven acceso a SSH a través de un puerto diferente de 22.
Desactivar la autenticación de contraseña de SSH
La autenticación de contraseña de SSH es la menos segura. Se recomiendan otros métodos como la autenticación clave para reemplazar el inicio de sesión de contraseña, que es vulnerable a muchos tipos de ataques, incluida la fuerza bruta, el método de ataque más fácil que cualquier usuario inexperto puede iniciar. En este enlace, puede leer instrucciones para deshabilitar la autenticación de contraseña de SSH y habilitar la autenticación clave.
Definir reglas propias de nftables o iptables
La implementación de reglas de firewall personalizadas es imprescindible y una medida básica para asegurar su dispositivo. Los firewalls son la primera defensa contra el tráfico malicioso, las conexiones no deseadas y los escaneos no deseados que intentan encontrar agujeros de seguridad en su sistema.
Los nftables y los iptables son interfaces para administrar y definir reglas de firewall en Linux. Los usuarios domésticos pueden preferir UFW (firewall sin complicaciones), que es una interfaz para que los iptables hagan que la creación de reglas de firewall sea más fácil de usar.
Dependiendo de las necesidades de su escritorio o servidor, la mayoría de las reglas de firewall recomendadas incluyen las políticas restrictivas que permiten solo el tráfico y las conexiones necesarias. Además, los firewalls son útiles para redirigir los puertos predeterminados a puertos personalizados, lo que dificulta que los atacantes identifiquen sus servicios habilitados para el sistema.
Los administradores del sistema pueden encontrar instrucciones para asegurar sistemas con iptables en este enlace. Los usuarios domésticos pueden elegir UFW, lo cual es más fácil de administrar y se puede aprender en este enlace.
Implementar IDS (sistema de detección de intrusos)
IDS (sistema de detección de intrusos) lleva la seguridad al siguiente nivel, lo que le permite analizar paquetes y detectar anomalías y acceso no autorizado al sistema. IDS es un gran complemento para firewalls. IDS monitorea el tráfico de la red en busca de paquetes maliciosos para identificar e informar incidentes de seguridad. Las identificaciones más populares son Snort y Ossec.
Esta lista de verificación de endurecimiento de seguridad no recomienda identificaciones para usuarios domésticos debido a la gran cantidad de recursos que requieren. Sin embargo, si disfruta de buenos recursos, agregarlos siempre es una buena opción.
Puedes leer este tutorial para comenzar con OSSEC. Con respecto a Snort, en Linuxhint, hemos publicado varios tutoriales enumerados a continuación.
Asegure el BIOS
RootKits, BIOS de malware y servidor con acceso remoto representan vulnerabilidades adicionales tanto para servidores como para dispositivos nacionales. El BIOS se puede piratear a través del código ejecutado desde el sistema operativo o mediante canales de actualización para obtener acceso no autorizado o para almacenar kits rootkits para siempre, forzando el reemplazo de hardware y la restauración de copia de seguridad.
La mejor manera de proteger su BIOS es mantenerlo actualizado, para lo cual puede encontrar instrucciones aquí.
Encrypt de dispositivos y particiones de almacenamiento
Esta es una medida más relevante para los usuarios de escritorio que pueden perder sus computadoras o ser víctimas de robo; Es especialmente útil que los usuarios de la computadora portátil eviten que los ladrones accedan a la información. Hoy casi todos los SO admiten el cifrado de disco y partición; Las distribuciones de Linux permiten cifrar el disco duro durante el proceso de instalación. Para obtener instrucciones sobre el cifrado de disco, consulte el artículo sobre cómo cifrar una unidad en Linux.
Proteger el sistema contra RootKits
RootKits es un software malicioso que otorga a los atacantes acceso no autorizado. Son extremadamente difíciles de detectar debido a su capacidad para esconderse. Algunos raíces obtienen acceso al BIOS del sistema que requiere reemplazo de hardware como solución. Prevención y eliminación de rootkits El software más popular es Chrootkit y Rkhunter. Puede comenzar con Chkrootkit leyendo este tutorial que también incluye instrucciones para Rkhunter.
Mantenga el sistema actualizado
Tanto los usuarios de escritorio como los administradores del sistema deben mantener el sistema actualizado para evitar que las versiones vulnerables ofrezcan acceso o ejecución no autorizadas. Además, el uso del Administrador de paquetes proporcionados por el sistema operativo para verificar las actualizaciones disponibles que ejecutan escaneos de vulnerabilidad pueden ayudar a detectar software vulnerable que no se actualizó en repositorios oficiales o código vulnerable que debe reescribirse. A continuación se presentan algunos tutoriales para actualizar los sistemas operativos de Linux y el software instalado:
VPN (red privada virtual)
Los usuarios de Internet deben ser conscientes de que las ISP supervisan todo su tráfico, y la única forma de pagar esto es mediante el uso de un servicio VPN. El ISP puede monitorear el tráfico al servidor VPN pero no desde la VPN hasta los destinos finales. Dado que la VPN puede afectar la velocidad negativamente, esta no es una opción recomendada para los servidores. Para minimizar el efecto en la velocidad de conexión, se recomienda utilizar un servicio pagado. ProTonVPN es una excelente opción que ofrece servicios gratuitos y pagos. Puede aprender a instalar protonvpn en este enlace.
Habilitar Selinux (Linux mejorado con seguridad)
Selinux es un conjunto de modificaciones de kernel de Linux centradas en la gestión de aspectos de seguridad relacionados con las políticas de seguridad agregando Mac (control de acceso al mecanismo), RBAC (control de acceso basado en roles) y MLS (seguridad de nivel múltiple) y seguridad multicatategoría (MCS (MCS ). Cuando Selinux está habilitado, una aplicación solo puede acceder a los recursos especificados que necesita. Los recursos permitidos se definen a través de políticas de seguridad. El acceso a puertos, procesos, archivos y directorios se controlan a través de reglas definidas en Selinux, que permite o niega las operaciones en función de las políticas de seguridad. En Linuxhint, hemos publicado algunos artículos sobre esta función que se enumeran a continuación.
Implementar Honeypots y Honeynets
Un honeypot es una herramienta que simula un objetivo que es realmente una grabadora de la actividad de los atacantes. Múltiples honeypots que simulan múltiples dispositivos, servicios y aplicaciones se conocen como nonal.
Básicamente, los honeypots y las bolas de miel son objetivos falsos tanto para distraer a los atacantes de objetivos reales como para registrar su actividad. Puede aprender a implementar Honeypots y Honeynets aquí.
Escanee externamente su dispositivo en busca de vulnerabilidades
Una buena práctica para mantener su sistema seguro es ver qué ven los atacantes cuando se dirigen a su sistema. Esto se puede lograr escaneando su sistema para encontrar vulnerabilidades. Hay muchas alternativas en el mercado que puede usar para escanear su sistema. Algunos tutoriales se enumeran a continuación.
Prácticas comunes
Conclusión
Como puede ver en la lista de verificación de endurecimiento de seguridad de Linux anterior, proteger el sistema no es una tarea fácil y requiere numerosas medidas de seguridad. Sin embargo, a pesar de la cantidad de tareas que los usuarios deben completar para asegurar sus sistemas, todos los usuarios de Linux pueden implementar cada recomendación independientemente de su nivel de experiencia leyendo los tutoriales vinculados en cada elemento, que están optimizados para ser comprensibles por los usuarios novedosos. La mayoría de las recomendaciones también se pueden aplicar a otros sistemas operativos como BSD Systems. Aplicar los consejos numerados definitivamente disuadirá a los atacantes aleatorios de apuntar a usted. Un sistema fuertemente protegido es menos atractivo para los atacantes.
Espero que esta lista de verificación de endurecimiento de seguridad haya sido útil para usted para asegurar su sistema. Sigue leyendo tutoriales adicionales de Linux Professional.