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.v4
ufw (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.v4
Configuració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 = 5
SELinux 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 0
Habilitar 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.v4
Ejercicio 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 status
Conclusió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