Pasos de endurecimiento de Linux para principiantes

La mayoría de los sistemas tienen datos confidenciales que deben protegerse. Para proteger estos datos, necesitamos proteger nuestro sistema Linux. Pero, ¿cómo endurecer adecuadamente un sistema Linux? En este artículo, cubriremos esto paso a paso. Comenzamos con medidas de seguridad física para evitar que personas no autorizadas accedan al sistema en primer lugar. Lo siguiente es hacer la instalación de la manera correcta, por lo que tenemos una base sólida. Por último, aplicaremos un conjunto de medidas de seguridad comunes. Una vez que hayamos terminado, su servidor o sistema de escritorio debe estar mejor protegido. ¿Estás lista? ¡Procedamos con los primeros pasos!

Tabla de Contenidos

Linux ya es seguro por defecto, ¿verdad?

Uno de los mitos sobre Linux es que es seguro, ya que no es susceptible a virus u otras formas de malware. Esto es parcialmente cierto, ya que Linux utiliza las bases del sistema operativo UNIX original. Los procesos están separados y un usuario normal está restringido en lo que puede hacer en el sistema. Aún así, Linux no es perfectamente seguro por defecto. Una de las razones son las distribuciones de Linux que empaquetan el núcleo GNU/Linux y el software relacionado. Tienen que elegir entre usabilidad, rendimiento y seguridad.

Con las difíciles elecciones que las distribuciones de Linux tienen que hacer, puede estar seguro de compromisos. Estos compromisos suelen dar lugar a un nivel de seguridad más bajo. ¿Qué pasa con el malware para Linux? Eso es definitivamente un mito. La plataforma Linux también tiene su parte justa de puertas traseras, rootkits, obras e incluso ransomware. Esa es una de las razones por las que es importante reforzar el sistema, realizar auditorías de seguridad y verificar el cumplimiento de las directrices técnicas.

 Imagen de elementos que son relevantes para el endurecimiento, la auditoría y el cumplimiento del sistema Linux.

La seguridad de Linux tiene muchos aspectos, como el endurecimiento del sistema Linux, la auditoría y el cumplimiento.

¿Qué es el endurecimiento del sistema?

Para mejorar el nivel de seguridad de un sistema, tomamos diferentes tipos de medidas. Esto podría ser la eliminación de un servicio de sistema existente o la desinstalación de algunos componentes de software.

El endurecimiento del sistema es el proceso de hacer las cosas «correctas». El objetivo es mejorar el nivel de seguridad del sistema. Hay muchos aspectos para asegurar un sistema correctamente. Sin embargo, los conceptos básicos son similares para la mayoría de los sistemas operativos. Así que el proceso de endurecimiento del sistema para escritorios y servidores Linux es tan especial.

Principios básicos del endurecimiento del sistema

Si colocáramos un microscopio en el endurecimiento del sistema, podríamos dividir el proceso en algunos principios básicos. Estos incluyen el principio de menor privilegio, segmentación y reducción.

Príncipe de los privilegios mínimos

El principio de los privilegios mínimos significa que se le da a los usuarios y procesos el mínimo de permisos para hacer su trabajo. Es similar a conceder a un visitante acceso a un edificio. Podría dar acceso completo al edificio, incluidas todas las áreas sensibles. La otra opción es permitir que sus invitados accedan a un solo piso donde deben estar. La elección es fácil, ¿verdad?

Ejemplos:

  • Cuando el acceso de solo lectura sea suficiente, no otorgue permisos de escritura
  • No permita código ejecutable en áreas de memoria que estén marcadas como segmentos de datos
  • No ejecute aplicaciones como usuario root, en su lugar use una cuenta de usuario sin privilegios

Segmentación

El siguiente principio es que áreas más grandes en áreas más pequeñas. Si volvemos a mirar ese edificio, lo hemos dividido en varios pisos. Cada planta se puede dividir en diferentes zonas. Tal vez solo se le permita visitar el piso 4, en la zona azul. Si traducimos esto a la seguridad de Linux, este principio se aplicaría al uso de memoria. Cada proceso solo puede acceder a sus propios segmentos de memoria.

Reducción

Este principio tiene como objetivo eliminar algo que no es estrictamente necesario para que el sistema funcione. Parece el principio del menor privilegio, pero se centra en prevenir algo en primer lugar. Un proceso que no tiene que ejecutarse, debe detenerse. Similar para cuentas de usuario innecesarias o datos confidenciales que ya no se utilizan.

Pasos de endurecimiento del sistema

Descripción general de pasos de endurecimiento

  1. Instalar actualizaciones y parches de seguridad
  2. Usar contraseñas seguras
  3. Enlazar procesos a localhost
  4. Implementar un firewall
  5. Mantener las cosas limpias
  6. Configuraciones de seguridad
  7. Limitar el acceso
  8. Supervisar sus sistemas
  9. Crear copias de seguridad (y probar!)
  10. Realizar auditoría del sistema

1. Instalar actualizaciones y parches de seguridad

La mayoría de las debilidades en los sistemas son causadas por fallas en el software. A estos defectos los llamamos vulnerabilidades. El cuidado adecuado para la administración de parches de software ayuda a reducir muchos de los riesgos relacionados. La actividad de instalar actualizaciones a menudo tiene un bajo riesgo, especialmente al comenzar con los parches de seguridad primero. La mayoría de las distribuciones de Linux tienen la opción de limitar los paquetes que desea actualizar (todos, solo seguridad, por paquete). Asegúrese de que las actualizaciones de seguridad se instalen tan pronto como estén disponibles. No hace falta decir que, antes de implementar algo, pruébelo primero en un sistema de prueba (virtual).

Dependiendo de su distribución Linux, puede haber una forma de implementar parches de seguridad automáticamente, como actualizaciones desatendidas en Debian y Ubuntu. ¡Esto hace que la administración de parches de software sea mucho más fácil!

2. Use contraseñas seguras

La puerta de enlace principal a un sistema es iniciar sesión como usuario válido con la contraseña relacionada de esa cuenta. Las contraseñas seguras hacen que sea más difícil para las herramientas adivinar la contraseña y permiten que personas maliciosas entren por la puerta principal. Una contraseña segura consta de una variedad de caracteres (alfanuméricos, números, especiales como porcentaje, espacio o incluso caracteres Unicode).

3. Enlazar procesos a localhost

No todos los servicios tienen que estar disponibles a través de la red. Por ejemplo, cuando ejecute una instancia local de MySQL en su servidor web, deje que solo escuche en un socket local o se vincule a localhost (127.0.0.1). A continuación, configure su aplicación para conectarse a través de esta dirección local, que normalmente ya es la predeterminada.

4. Implemente un firewall

Solo el tráfico permitido debería llegar a su sistema en una situación ideal. Para lograr esto, implemente una solución de firewall como iptables o las nuevas nftables.

Al crear una política para su firewall, considere usar una política de «denegar todo, permitir algo». Por lo tanto, niega todo el tráfico de forma predeterminada y, a continuación, define qué tipo de tráfico desea permitir. Esto es especialmente útil para el tráfico entrante, para evitar compartir servicios que no tenía la intención de compartir.

Lecturas útiles:

  • Diferencias entre iptables y nftables

5. Mantenga las cosas limpias

Todo lo que se instale en un sistema que no pertenezca allí solo puede afectar negativamente a su máquina. También aumentará sus copias de seguridad (y los tiempos de restauración). O pueden contener vulnerabilidades. Un sistema limpio es a menudo un sistema más saludable y seguro. Por lo tanto, la minimización es un gran método en el proceso de endurecimiento de Linux.

Las tareas procesables incluyen:

  • Eliminar paquete no utilizado
  • Limpiar los directorios de inicio antiguos y eliminar los usuarios

6. Configuraciones seguras

La mayoría de las aplicaciones tienen una o más medidas de seguridad disponibles para protegerse contra algunas formas de amenazas para el software o el sistema. Mire la página de manual para ver las opciones y pruebe estas opciones cuidadosamente.

7. Limitar el acceso

Solo permite el acceso a la máquina a usuarios autorizados. ¿Alguien realmente necesita acceso o son posibles métodos alternativos para darle al usuario lo que quiere?

8. Supervise sus sistemas

La mayoría de las intrusiones no se detectan debido a la falta de supervisión. Implementar el monitoreo normal del sistema e implementar el monitoreo de eventos de seguridad. Por ejemplo, el uso del marco de auditoría de Linux aumentó las tasas de detección de eventos sospechosos.

9. Crear copias de seguridad (y probar!)

Haga regularmente una copia de seguridad de los datos del sistema. Esto puede evitar la pérdida de datos. Aún más importante, pruebe sus copias de seguridad. Tener una copia de seguridad es bueno, pero es la restauración lo que realmente cuenta.

Las copias de seguridad se pueden hacer con herramientas del sistema existentes como tary scp. Otra opción para ahorrar ancho de banda es sincronizar datos con herramientas como rsync. Si prefiere usar un programa de respaldo, considere Amanda o Bacula.

10. Realizar auditoría del sistema

Captura de pantalla de Lynis (Herramienta de auditoría de Linux/Unix)

Captura de pantalla de una auditoría de seguridad de servidor Linux realizada con Lynis.

No puede proteger adecuadamente un sistema si no lo mide.

Utilice una herramienta de seguridad como Lynis para realizar una auditoría periódica de su sistema. Los hallazgos se muestran en la pantalla y también se almacenan en un archivo de datos para su posterior análisis. Con un extenso archivo de registro, permite utilizar todos los datos disponibles y planificar las siguientes acciones para un mayor endurecimiento del sistema.