Conceptos básicos de seguridad en Linux
1. Principios de seguridad en Linux
La seguridad en Linux es, sobre todo, una estrategia de "minimizar privilegios" y un control de acceso confiable. Imagina Linux como una protección de capas de una fortaleza: cuanto más avanzas, más controles hay. Pero primero, vamos a desglosar los tres pilares en los que se basa la seguridad del sistema.
Separación de permisos: usuarios, grupos y root
El secreto de la estabilidad y seguridad de Linux es la estricta separación de permisos. En el sistema hay tres tipos de objetos:
- Usuarios (users): cuentas individuales. Es como los invitados en una fiesta familiar, cada uno con su pase de entrada.
- Grupos (groups): conjuntos de usuarios. Para algunas tareas, un solo pase sirve para todo el grupo, como acceder a la carpeta compartida "Fotos de la abuela".
- Root: el superusuario con todos los permisos. Root es como Superman en tu mundo Linux. Puede hacer de todo, y conlleva tanto superpoder como súper responsabilidad.
Linux utiliza este modelo para restringir el acceso a archivos, aplicaciones o funciones del sistema. Incluso si un atacante entra al sistema como usuario normal, no podrá dañar el kernel o archivos críticos.
Minimización de privilegios
No es buena idea dar acceso root a todos. Imagínate que cada empleado de tu oficina tiene una llave para la caja fuerte con dinero. Alguien seguramente la perderá. En Linux aplica la regla: da a los usuarios solo los permisos necesarios para realizar sus tareas.
Principales amenazas de seguridad
- Virus: sí, sí, Linux tampoco es perfecto, pero aquí los virus son menos comunes gracias a la arquitectura del sistema.
- Ataques a través de red: hackeo de SSH, ataques DDoS, suplantación de DNS.
- Vulnerabilidades de software: paquetes antiguos y bibliotecas no seguras pueden ser puertas para los atacantes.
2. Prevención de amenazas
Ahora vamos a revisar los pasos importantes para que tu servidor Linux siga siendo tu fiel compañero y no termine siendo una herramienta para hackers.
Actualizar el sistema regularmente
Ejemplo claro: las actualizaciones del sistema son como actualizar tu antivirus. Sin ellas, incluso la protección más avanzada será inútil contra nuevas amenazas. El comando:
sudo apt update && sudo apt upgrade
te permite mantener tu Linux en buena forma.
Controlar el acceso a archivos importantes
Hay archivos que es mejor mantener lejos de miradas curiosas. Por ejemplo, el archivo /etc/sudoers
— es una lista de usuarios con acceso a privilegios administrativos. Solo puede ser editado usando visudo
, para evitar errores accidentales.
Restringir el acceso root
Sabes que el root tiene poder, pero no abuses de él. Es mejor trabajar bajo un usuario normal y usar sudo
cuando necesites privilegios temporalmente.
3. Herramientas de seguridad
¿Qué herramientas en Linux te ayudan en la lucha por la seguridad? Echemos un vistazo a las soluciones incorporadas y de terceros.
Mecanismos incorporados
- firewalld y iptables: cortafuegos para gestionar el tráfico de red. Suena complicado, ¡pero lo vamos a desglosar!
- SELinux (Security-Enhanced Linux): una extensión especial que verifica qué procesos tienen permiso para acceder a archivos.
- ACL (Access Control Lists): una versión ampliada de los derechos de acceso estándar.
Herramientas externas
- Lynis: herramienta para auditoría de seguridad.
- OpenSCAP: un conjunto de herramientas para verificar la conformidad del sistema con los estándares de seguridad.
Configuración de la política de contraseñas
¿Qué tan compleja es tu contra... ¡mejor no lo digas! Es mejor asegurar directamente una política de contraseñas confiable. La longitud mínima y la complejidad de la contraseña se configuran con PAM.
sudo nano /etc/security/pwquality.conf
Ejemplo de parámetros:
minlen = 12
minclass = 3
4. Ejemplo práctico: configuración básica de seguridad
¡Ahora arremángate! Configuraremos una política de seguridad simple para un sistema de prueba.
Registro de usuarios
Crearemos dos usuarios: un administrador y un usuario estándar.
sudo adduser admin
sudo adduser user1
sudo usermod -aG sudo admin
Ahora admin
tiene derechos administrativos, y user1
no los tiene.
Control de acceso a archivos importantes
Limitaremos el acceso a la configuración de Nginx:
sudo chmod 600 /etc/nginx/nginx.conf
Trabajo con el firewall
Instalaremos y configuraremos ufw
(Uncomplicated Firewall) para proteger nuestro servidor:
sudo apt install ufw
sudo ufw enable
Permitiremos solo tráfico SSH y HTTP:
sudo ufw allow 22
sudo ufw allow 80
Activaremos la verificación:
sudo ufw status
5. Errores típicos
Cuando se trata de seguridad, no basta con saber qué hacer, también es importante entender qué evitar.
Error 1: Trabajar como root
Muchos principiantes son perezosos y trabajan con la cuenta de root. Esto es peligroso: cualquier error o hackeo será fatal para el sistema.
Error 2: Paquetes desactualizados
Como dijo un admin: "El único buen servidor es un servidor actualizado". El software antiguo es el objetivo perfecto para los ataques.
Error 3: Contraseñas inseguras
"password123" es una de las contraseñas más populares. No seas esa persona que la usa.
6. Aplicación práctica: ¿para qué sirve esto?
Configurar la seguridad de Linux te será útil no solo en el trabajo, sino también en una entrevista. Conocer lo básico sobre firewalls, SELinux y configuración de permisos impresiona a los empleadores. Por ejemplo, podrás proteger el servidor de la empresa contra ataques DDoS o configurar permisos para el trabajo en equipo en proyectos.
Si te dedicas al desarrollo, proteger el sistema significa que tu código no terminará en manos de la competencia y los datos de los clientes estarán seguros. No es solo paranoia de Jabárovsk, sino una necesidad real en la industria moderna.
GO TO FULL VERSION