La seguridad en sistemas Linux es un aspecto crucial para proteger datos sensibles y mantener la integridad del sistema. En este tema, exploraremos diversas técnicas y herramientas para asegurar un sistema Linux. Abordaremos desde configuraciones básicas hasta prácticas avanzadas de seguridad.
Conceptos Clave
- Principio de Mínimo Privilegio: Otorgar solo los permisos necesarios a usuarios y procesos.
- Actualizaciones y Parches: Mantener el sistema y las aplicaciones actualizadas.
- Configuración de Firewall: Controlar el tráfico de red entrante y saliente.
- Autenticación y Autorización: Implementar métodos robustos de autenticación y control de acceso.
- Monitoreo y Auditoría: Registrar y revisar actividades del sistema para detectar comportamientos sospechosos.
- Principio de Mínimo Privilegio
Usuarios y Grupos
Asegúrate de que cada usuario tenga solo los permisos necesarios para realizar su trabajo.
# Crear un nuevo usuario
sudo adduser nuevo_usuario
# Crear un nuevo grupo
sudo groupadd nuevo_grupo
# Añadir un usuario a un grupo
sudo usermod -aG nuevo_grupo nuevo_usuarioPermisos de Archivos
Configura los permisos de archivos y directorios adecuadamente.
# Cambiar el propietario de un archivo
sudo chown usuario:grupo archivo
# Cambiar los permisos de un archivo
sudo chmod 750 archivo
- Actualizaciones y Parches
Mantener el sistema actualizado es fundamental para protegerlo contra vulnerabilidades conocidas.
# Actualizar la lista de paquetes
sudo apt update
# Actualizar todos los paquetes instalados
sudo apt upgrade
- Configuración de Firewall
UFW (Uncomplicated Firewall)
UFW es una herramienta sencilla para gestionar el firewall en sistemas Linux.
# Habilitar UFW
sudo ufw enable
# Permitir tráfico SSH
sudo ufw allow ssh
# Permitir tráfico HTTP y HTTPS
sudo ufw allow http
sudo ufw allow https
# Ver el estado de UFW
sudo ufw status
- Autenticación y Autorización
SSH
Configura SSH para mejorar la seguridad.
# Editar el archivo de configuración de SSH
sudo nano /etc/ssh/sshd_config
# Deshabilitar el acceso root
PermitRootLogin no
# Cambiar el puerto por defecto
Port 2222
# Reiniciar el servicio SSH
sudo systemctl restart sshAutenticación de Dos Factores (2FA)
Implementa 2FA para añadir una capa extra de seguridad.
# Instalar Google Authenticator
sudo apt install libpam-google-authenticator
# Configurar Google Authenticator para un usuario
google-authenticator
# Editar el archivo de configuración de PAM
sudo nano /etc/pam.d/sshd
# Añadir la siguiente línea
auth required pam_google_authenticator.so
# Editar el archivo de configuración de SSH
sudo nano /etc/ssh/sshd_config
# Añadir la siguiente línea
ChallengeResponseAuthentication yes
# Reiniciar el servicio SSH
sudo systemctl restart ssh
- Monitoreo y Auditoría
Logwatch
Logwatch es una herramienta que analiza y resume los logs del sistema.
# Instalar Logwatch
sudo apt install logwatch
# Ejecutar Logwatch
sudo logwatch --detail High --mailto [email protected] --service All --range todayAuditd
Auditd es un demonio de auditoría que registra eventos del sistema.
# Instalar Auditd
sudo apt install auditd
# Iniciar y habilitar Auditd
sudo systemctl start auditd
sudo systemctl enable auditd
# Ver los logs de Auditd
sudo ausearch -m avcEjercicio Práctico
Ejercicio 1: Configuración Básica de Seguridad
-
Crear un nuevo usuario y grupo:
- Usuario:
seguridad_usuario - Grupo:
seguridad_grupo
- Usuario:
-
Configurar permisos para un archivo:
- Archivo:
/home/seguridad_usuario/seguridad_archivo - Permisos: Solo el propietario puede leer y escribir, el grupo puede leer, otros no tienen acceso.
- Archivo:
-
Configurar UFW para permitir solo tráfico SSH y HTTP.
-
Configurar SSH para deshabilitar el acceso root y cambiar el puerto a 2222.
Solución
# Crear un nuevo usuario y grupo
sudo adduser seguridad_usuario
sudo groupadd seguridad_grupo
sudo usermod -aG seguridad_grupo seguridad_usuario
# Crear un archivo y configurar permisos
sudo touch /home/seguridad_usuario/seguridad_archivo
sudo chown seguridad_usuario:seguridad_grupo /home/seguridad_usuario/seguridad_archivo
sudo chmod 640 /home/seguridad_usuario/seguridad_archivo
# Configurar UFW
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow http
sudo ufw status
# Configurar SSH
sudo nano /etc/ssh/sshd_config
# Cambiar las siguientes líneas:
# PermitRootLogin no
# Port 2222
sudo systemctl restart sshConclusión
En esta sección, hemos cubierto diversas técnicas y herramientas para asegurar un sistema Linux. Desde la implementación del principio de mínimo privilegio hasta la configuración de firewalls y la auditoría del sistema, estas prácticas son esenciales para mantener un entorno seguro. En el siguiente módulo, exploraremos temas avanzados de redes y seguridad, incluyendo la configuración de firewalls y sistemas de detección de intrusos.
Maestría en Linux: De Principiante a Avanzado
Módulo 1: Introducción a Linux
- ¿Qué es Linux?
- Historia de Linux
- Distribuciones de Linux
- Instalando Linux
- Estructura del Sistema de Archivos de Linux
Módulo 2: Comandos Básicos de Linux
- Introducción a la Línea de Comandos
- Navegando el Sistema de Archivos
- Operaciones de Archivos y Directorios
- Visualización y Edición de Archivos
- Permisos y Propiedad de Archivos
Módulo 3: Habilidades Avanzadas en la Línea de Comandos
- Uso de Comodines y Expresiones Regulares
- Tuberías y Redirección
- Gestión de Procesos
- Programación de Tareas con Cron
- Comandos de Redes
Módulo 4: Scripting en Shell
- Introducción al Scripting en Shell
- Variables y Tipos de Datos
- Estructuras de Control
- Funciones y Librerías
- Depuración y Manejo de Errores
Módulo 5: Administración del Sistema
- Gestión de Usuarios y Grupos
- Gestión de Discos
- Gestión de Paquetes
- Monitoreo del Sistema y Optimización del Rendimiento
- Respaldo y Restauración
Módulo 6: Redes y Seguridad
- Configuración de Redes
- Firewall y Seguridad
- SSH y Acceso Remoto
- Sistemas de Detección de Intrusos
- Asegurando Sistemas Linux
Módulo 7: Temas Avanzados
- Virtualización con Linux
- Contenedores de Linux y Docker
- Automatización con Ansible
- Optimización del Kernel de Linux
- Alta Disponibilidad y Balanceo de Carga
