CodeGym /Cursos /Docker SELF /Configuración del cortafuegos (`ufw`, `iptables`)

Configuración del cortafuegos (`ufw`, `iptables`)

Docker SELF
Nivel 5 , Lección 1
Disponible

Configuración del cortafuegos ufw, iptables

1. UFW: Uncomplicated Firewall

¿Para qué sirve un firewall?

Imagina que tu servidor es como una casa llena de cosas valiosas (datos, claro). Si dejas las puertas abiertas, cualquiera podría entrar, "comerse" tus datos y dejarte los platos sucios (o algo peor). El firewall son esas puertas que puedes controlar: quién puede entrar, por qué puerta y bajo qué condiciones.

Linux proporciona dos herramientas principales para configurar un firewall: ufw (Uncomplicated Firewall, o sea "firewall sencillo") y iptables. Vamos a ver cómo funcionan y en qué se diferencian.

¿Qué es UFW?

UFW es una herramienta para configurar el firewall diseñada con la idea de "hagámoslo más simple". Es perfecta para quienes quieren configurar rápidamente reglas básicas de acceso sin meterse de lleno en detalles complicados.

Instalar y activar UFW

UFW normalmente viene preinstalado en la mayoría de las distribuciones basadas en Debian/Ubuntu. Si no está, instálalo con:

sudo apt update
sudo apt install ufw

Activar UFW:

sudo ufw enable

Verificar el estado:

sudo ufw status

En el primer inicio, probablemente el estado será "inactive". Luego de activarlo, cambiará a "active".

Configuración de reglas en UFW

Ahora viene lo más interesante: configurar las reglas que determinan qué tráfico permitir y qué bloquear.

Permitir acceso por SSH (puerto 22):

sudo ufw allow 22

Abrir acceso al servidor web (puerto 80):

sudo ufw allow 80

Abrir HTTPS (puerto 443):

sudo ufw allow 443

Cerrar acceso a un puerto innecesario (por ejemplo, 8080):

sudo ufw deny 8080

Eliminar una regla:

Si cambias de idea, elimina la regla por el número que se muestra con el comando sudo ufw status numbered. Por ejemplo:

sudo ufw delete 1

Verificación y pruebas

Para asegurarte que todo funciona correctamente, puedes verificar el estado nuevamente:

sudo ufw status

Verás una lista de todas las reglas activas.


2. IPTABLES: más control, más posibilidades

¿Qué es iptables?

Si UFW es "una puerta simple con cerradura", entonces iptables es "un guardia inteligente" que te permite configurar absolutamente todo. Proporciona control total sobre el tráfico, incluyendo enrutamiento, filtrado según varios criterios e incluso la capacidad de modificar los paquetes.

Conceptos básicos de iptables

  1. Tablas: son conjuntos de funciones para manejar paquetes de red.
    • filter: manejo y filtrado de paquetes (por ejemplo, permitir o bloquear).
    • nat: traducción de direcciones/puertos (por ejemplo, para routers).
  2. Cadenas: son reglas que se aplican a los paquetes.
    • INPUT: para tráfico entrante.
    • OUTPUT: para tráfico saliente.
    • FORWARD: para tráfico redirigido.
  3. Objetivos (targets): son las acciones aplicadas a un paquete.
    • ACCEPT: permitir el paquete.
    • DROP: descartar el paquete.
    • REJECT: descartar el paquete enviando una notificación.

Echemos un vistazo a cómo configurar reglas de iptables.

Ver las reglas actuales

Para ver qué reglas ya están configuradas, ejecuta:

sudo iptables -L

También puedes agregar -v o -n para obtener información detallada sobre los paquetes y direcciones IP.

Crear reglas con iptables

Regla simple: permitir SSH (puerto 22):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Bloquear acceso al puerto 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

Restringir acceso por dirección IP:

Si quieres que una computadora con una IP específica pueda conectarse a tu servidor y las demás no:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Eliminar reglas

Para eliminar una regla, necesitas saber su número. Encuéntralo con:

sudo iptables -L --line-numbers

Luego elimínala con:

sudo iptables -D INPUT <número_de_regla>

Guardar reglas

Las reglas de iptables se "olvidan" por defecto al reiniciar el sistema. Para evitar esto, guárdalas con:

sudo iptables-save > /etc/iptables/rules.v4

Luego se pueden restaurar así:

sudo iptables-restore < /etc/iptables/rules.v4

3. UFW vs IPTABLES: ¿cuál elegir?

UFW e iptables hacen lo mismo: protegen tu servidor. Entonces, ¿qué herramienta deberías elegir?

  • UFW — es una herramienta sencilla para una configuración básica de seguridad. Si no quieres meterte con los detalles de bajo nivel o simplemente quieres configurar rápidamente un firewall, elige UFW.
  • Iptables — es una herramienta poderosa para configuraciones más complejas. Si tienes una infraestructura complicada (por ejemplo, NAT, enrutamiento), necesitarás iptables.

Por cierto, UFW en realidad funciona "encima" de iptables. Simplemente genera reglas de iptables por ti. Entonces, si ya conoces iptables, automáticamente entiendes cómo funciona internamente UFW.


4. Ejemplos prácticos: proteger el servidor

Ejemplo 1: proteger SSH y el servidor web con UFW

  1. Asegúrate de que UFW está instalado y activado:
sudo ufw enable
  1. Permite acceso a SSH y al servidor web:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
  1. Revisa las reglas activas:
sudo ufw status

Ejemplo 2: bloquear tráfico innecesario con iptables

  1. Permite acceso por SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. Permite tráfico web:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  1. Bloquea todo lo demás:
sudo iptables -A INPUT -j DROP

Hoy aprendiste cómo proteger un servidor usando UFW e iptables. Ambos son herramientas potentes y útiles: simplemente acostúmbrate a ver a UFW como tu "amigo para el día a día" y a iptables como "una herramienta poderosa en manos de un maestro". Configura el cortafuegos, estudia tus configuraciones, y que tu servidor sea una fortaleza y no un pasillo.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION