10 Recomendaciones para securizar tus sistemas Linux

Posted by José Manuel Hernández on


Hoy en día la seguridad de nuestros sistemas es de vital importancia para prevenir problemas en nuestra infraestructura y evitar robo de datos, es por ello por lo que voy a dar varias recomendaciones para tener tus sistemas lo más seguro posible, recuerda que en seguridad el 100% no existe. :)

1º Usa paquetes oficiales
Cuando tengas que instalar un servicio intenta que sea del propio repositorio de tu distribución Linux o de un repositorio conocido. De este modo te aseguras que los paquetes no están modificados con malware y que cumplen ciertas medidas de seguridad en su instalación.

2º Utiliza las guías de hardening para el software que estés instalando
Muchos servicios cuentan con una guía de hardening (securización) en la cual explican como reforzar la seguridad del software a instalar. Busca que seguro hay alguna para tu paquete de software.

3º Utiliza un IPS
Muchos de los actuales firwalls tienen capacidades IPS (Intrusion Prevention System), un IPS detectará y bloqueará muchos de los ataques y escaneos de vulnerabilidades provenientes de boots automáticos en internet. Te recomiendo que uses un firewall con IPS y configures las reglas oportunas. Si no estás holgado de presupuesto puedes usar algún IPS gratuito como Suricata IDS o similar.

4º Configura WAF (Web Application Firewall) para servicios web
A parte de tu firewall e IPS puedes aumentar la seguridad de tu aplicación utilizando un WAF. Un WAF protege páginas web contra ataques del tipo inyección SQL, XSS y falsificación de petición de sitios cruzados (CSRF)
Muchos firewalls modernos también tienen capacidades WAF, sino siempre puedes optar por  software libre: ModSecurity, IronBee, etc...

5º Configura correctamente el firewall de cada host (firewalld/IPTables)
En lugar de deshabilitar el firewall configúralo correctamente permitiendo exclusivamente el tráfico necesario. Por ejemplo, si es un servidor web habilita los puertos 80 y 443 para acceso público y el puerto 22 (SSH) solo para acceso desde la red interna, todo lo demás, si no lo necesitas, debe de estar cerrado. 

6º Configura correctamente SELINUX (Security Enhanced Linux) y no lo deshabilites
Aunque existe cierta tendencia a deshabilitarlo o ponerlo en modo permisivo, te recomiendo que aprendas a configurar SELINUX correctamente. SELINUX es un módulo de seguridad del kernel de Linux. En la práctica, el núcleo pregunta a SELinux antes de cada llamada al sistema para saber si un proceso está autorizado a realizar dicha operación. Por ejemplo, si Apache puede acceder a una BD o si puedes escribir en determinado directorio.j

7º Mantén tus sistemas actualizados
Es de vital importancia que los componentes software de tu sistema estén actualizados y libres de bugs y CVEs. Para ello puedes usar yum-cron auto-update o programar un playbook con Ansible que de forma periódica pase las actualizaciones y programe un reinicio en horas de bajo uso. De este modo te aseguras de que tus sistemas tengan los últimos parches de seguridad aplicados.

8º Usa siempre HTTPS para tus servicios webs
Intenta que tus webs o APIs usen siempre conexiones cifradas HTTPS.
Si dispones de pocos recursos para comprar un certificado puedes hacer uso de Let's encrypt, una autoridad de certificación que proporciona certificados X.509 gratuitos para el cifrado de Seguridad de nivel de transporte (TLS).

9º Exponer solo los sistemas estrictamente necesarios
Regla básica y sencilla, exponer al exterior solo lo estrictamente necesario, si es posible no lo publiques a internet y accede a los sistemas vía VPN. 

10º Realiza un scan de vulnerabilidades
A parte de securizar tus sistemas tienes que probar que tus medidas son válidas de verdad, para ello puedes usar varias herramientas según tus conocimientos, algunas de las más populares:

  • OpenVAS: Escaner de vulnerabilidades Open Source.
  • SQLMap: Herramientas Open Source para pruebas de penetración y explotación de SQL inyection.
  • Acunetix: Escaner de vulnerabilidades web y penetración SQL inyection. 
  • Kali: Distribución Linux diseñada para la auditoria de la seguridad informática.

"Las empresas invierten millones en firewalls, cifrado y dispositivos para acceder de forma segura, y es dinero malgastado, porque ninguna de estas medidas corrige el nexo más débil de la cadena."

Kevin Mitnick.

Hasta otra!