En este módulo, aprenderás sobre la configuración y gestión de firewalls en sistemas Linux, así como las mejores prácticas de seguridad para proteger tu sistema. Los firewalls son una parte esencial de la seguridad de la red, ya que controlan el tráfico de red entrante y saliente basado en reglas de seguridad predefinidas.
- Introducción a los Firewalls
¿Qué es un Firewall?
Un firewall es un sistema de seguridad de red que monitorea y controla el tráfico de red entrante y saliente basado en reglas de seguridad predefinidas. Los firewalls pueden ser hardware, software o una combinación de ambos.
Tipos de Firewalls
- Firewalls de Red: Protegen redes enteras y se implementan en el perímetro de la red.
- Firewalls de Host: Protegen un solo dispositivo y se implementan en el sistema operativo del dispositivo.
- Firewalls en Linux
iptables
iptables es una herramienta de línea de comandos utilizada para configurar las reglas del firewall en sistemas Linux. Es parte del paquete de software netfilter.
Comandos Básicos de iptables
# Listar todas las reglas
sudo iptables -L
# Añadir una regla para permitir el tráfico HTTP entrante
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Añadir una regla para bloquear el tráfico SSH entrante
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
# Guardar las reglas
sudo iptables-save > /etc/iptables/rules.v4ufw (Uncomplicated Firewall)
ufw es una interfaz simplificada para iptables, diseñada para facilitar la configuración del firewall.
Comandos Básicos de ufw
# Habilitar ufw
sudo ufw enable
# Permitir el tráfico HTTP
sudo ufw allow 80/tcp
# Bloquear el tráfico SSH
sudo ufw deny 22/tcp
# Ver el estado y las reglas actuales
sudo ufw status
- Configuración de Firewalls
Configuración Básica de iptables
# Limpiar todas las reglas existentes
sudo iptables -F
# Establecer políticas por defecto
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# Permitir tráfico entrante relacionado y establecido
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Permitir tráfico entrante en el puerto 22 (SSH)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Permitir tráfico entrante en el puerto 80 (HTTP)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Guardar las reglas
sudo iptables-save > /etc/iptables/rules.v4Configuración Básica de ufw
# Habilitar ufw
sudo ufw enable
# Establecer políticas por defecto
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Permitir tráfico entrante en el puerto 22 (SSH)
sudo ufw allow 22/tcp
# Permitir tráfico entrante en el puerto 80 (HTTP)
sudo ufw allow 80/tcp
# Ver el estado y las reglas actuales
sudo ufw status
- Seguridad Adicional
Fail2ban
fail2ban es una herramienta que monitorea los archivos de registro en busca de intentos de intrusión y bloquea las direcciones IP que muestran comportamientos maliciosos.
Instalación y Configuración de fail2ban
# Instalar fail2ban
sudo apt-get install fail2ban
# Configurar fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Añadir la configuración para proteger SSH
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5SELinux y AppArmor
SELinux y AppArmor son sistemas de control de acceso obligatorio que proporcionan una capa adicional de seguridad al restringir las capacidades de los procesos.
Habilitar y Configurar SELinux
# Verificar el estado de SELinux
sestatus
# Habilitar SELinux
sudo setenforce 1
# Configurar SELinux en modo permisivo
sudo setenforce 0Habilitar y Configurar AppArmor
# Verificar el estado de AppArmor
sudo aa-status
# Habilitar AppArmor
sudo systemctl enable apparmor
sudo systemctl start apparmor
# Configurar perfiles de AppArmor
sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld
sudo aa-enforce /etc/apparmor.d/usr.sbin.mysqld
- Ejercicios Prácticos
Ejercicio 1: Configuración de iptables
- Limpia todas las reglas existentes en
iptables. - Establece políticas por defecto para denegar todo el tráfico entrante y permitir todo el tráfico saliente.
- Permite el tráfico entrante en los puertos 22 (SSH) y 80 (HTTP).
- Guarda las reglas.
Solución
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4Ejercicio 2: Configuración de ufw
- Habilita
ufw. - Establece políticas por defecto para denegar todo el tráfico entrante y permitir todo el tráfico saliente.
- Permite el tráfico entrante en los puertos 22 (SSH) y 80 (HTTP).
- Verifica el estado y las reglas actuales.
Solución
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw statusConclusión
En esta sección, has aprendido sobre la importancia de los firewalls y cómo configurarlos en sistemas Linux utilizando iptables y ufw. También has explorado herramientas adicionales como fail2ban, SELinux y AppArmor para mejorar la seguridad de tu sistema. Con estos conocimientos, estás mejor preparado para proteger tu sistema Linux contra amenazas de red y mantener un entorno seguro.
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
