En estas prácticas se utiliza un MikroTik RB951Ui-2nD con RouterOS 6.47.4 para trabajar los principales conceptos relacionados con la instalación y configuración de cortafuegos.
La idea es que los alumnos no se limiten a utilizar WinBox: cada práctica puede realizarse gráficamente y mediante comandos de RouterOS.
El recorrido propuesto es progresivo:
- Configuración básica del MikroTik como firewall SOHO.
- Creación de reglas de filtrado.
- NAT y salida a Internet.
- Registros y análisis de sucesos.
- Sondeo y pruebas con Nmap.
- Segmentación y creación de una DMZ.
- Comparación con OPNsense, proxy, IDS, VPN y QoS.
1. Topología general
La infraestructura de partida será:
INTERNET
│
▼
┌──────────────┐
│ Router aula │
│ 192.168.1.1 │
│ DHCP │
└──────┬───────┘
│
ether1
│
┌──────▼───────┐
│ MikroTik │
│ RB951Ui-2nD │
│ │
│ Firewall │
│ NAT │
│ DHCP │
│ DNS │
└──────┬────────┘
│
bridgeLocal
192.168.88.1
│
┌────────────┼────────────┐
│ │ │
wlan1 ether2 ether3
│
▼
Clientes
Wi-Fi
Configuración inicial:
WAN:
ether1
DHCP
192.168.1.0/24
LAN:
bridgeLocal
192.168.88.1/24
DHCP:
192.168.88.200-192.168.88.250
Wi-Fi:
SSID: ASIR-WIFI
2. Preparación del MikroTik
Antes de comenzar las prácticas se puede dejar el MikroTik completamente limpio.
⚠️ Este comando elimina la configuración actual.
/system reset-configuration no-defaults=yes skip-backup=yes
Después del reinicio se puede acceder mediante WinBox → Neighbors, utilizando la dirección MAC.
Práctica 1. Configuración de un MikroTik como firewall SOHO
Objetivo
Configurar el MikroTik para que funcione como:
- Router.
- Firewall.
- NAT.
- Servidor DHCP.
- Servidor DNS.
- Punto de acceso Wi-Fi.
Esta práctica sirve para introducir:
- Concepto de cortafuegos.
- Ubicación del cortafuegos.
- Firewall hardware.
- Firewall para pequeñas redes SOHO.
- WAN y LAN.
- NAT.
- DHCP.
- DNS.
Configuración gráfica
1. Crear el bridge
Ir a:
Bridge → Bridge → +
Crear:
Name: bridgeLocal
Después:
Bridge → Ports → +
Añadir:
ether2 → bridgeLocal
ether3 → bridgeLocal
ether4 → bridgeLocal
ether5 → bridgeLocal
wlan1 → bridgeLocal
ether1 no debe estar en el bridge.
2. Configurar la IP LAN
Ir a:
IP → Addresses → +
Address: 192.168.88.1/24
Interface: bridgeLocal
3. Configurar la WAN
Ir a:
IP → DHCP Client → +
Interface: ether1
Add Default Route: yes
Use Peer DNS: no
El router principal proporcionará una IP, por ejemplo:
192.168.1.128
4. Crear el pool DHCP
Ir a:
IP → Pool → +
Name: pool1
Addresses: 192.168.88.200-192.168.88.250
5. Crear el servidor DHCP
Ir a:
IP → DHCP Server → DHCP → DHCP Setup
Seleccionar:
Interface: bridgeLocal
Configurar:
Address Space:
192.168.88.0/24
Gateway:
192.168.88.1
Address Pool:
192.168.88.200-192.168.88.250
DNS:
192.168.88.1
6. Configurar DNS
Ir a:
IP → DNS
Servers:
8.8.8.8
1.1.1.1
Activar:
Allow Remote Requests
7. Configurar NAT
Ir a:
IP → Firewall → NAT → +
Chain: srcnat
Out. Interface: ether1
Action: masquerade
Configuración mediante comandos
/interface bridge
add name=bridgeLocal
/interface bridge port
add bridge=bridgeLocal interface=ether2
add bridge=bridgeLocal interface=ether3
add bridge=bridgeLocal interface=ether4
add bridge=bridgeLocal interface=ether5
add bridge=bridgeLocal interface=wlan1
/ip address
add address=192.168.88.1/24 interface=bridgeLocal
/ip dhcp-client
add interface=ether1 disabled=no add-default-route=yes use-peer-dns=no
/ip pool
add name=pool1 ranges=192.168.88.200-192.168.88.250
/ip dhcp-server
add name=server1 interface=bridgeLocal address-pool=pool1 lease-time=10m disabled=no
/ip dhcp-server network
add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=192.168.88.1
/ip dns
set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes
/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
Comprobaciones
/ip address print
/ip dhcp-client print
/ip dhcp-server print
/ip dhcp-server lease print
/ip firewall nat print
Pruebas:
/ping 192.168.1.1
/ping 8.8.8.8
/ping google.com
Resultado esperado
El cliente Wi-Fi debe recibir:
IP: 192.168.88.x
Gateway: 192.168.88.1
DNS: 192.168.88.1
y tener acceso a Internet.
Práctica 2. Creación de reglas de filtrado
Objetivo
Aprender a crear reglas de firewall para permitir y bloquear tráfico.
Se trabajará especialmente con:
INPUT
FORWARD
OUTPUT
La diferencia fundamental será:
INPUT
Internet/cliente → MikroTik
FORWARD
Cliente → Internet
OUTPUT
MikroTik → exterior
Ejercicio 2.1. Bloquear ping hacia Internet
Queremos impedir que los clientes de la LAN puedan utilizar ICMP para salir a Internet.
Gráficamente
Ir a:
IP → Firewall → Filter Rules → +
En General:
Chain: forward
Src. Address: 192.168.88.0/24
Protocol: icmp
Out. Interface: ether1
En Action:
Action: drop
Mediante comandos
/ip firewall filter
add chain=forward \
src-address=192.168.88.0/24 \
protocol=icmp \
out-interface=ether1 \
action=drop \
comment="LAB - Bloquear ICMP LAN"
Prueba
Desde un equipo de la LAN:
ping 8.8.8.8
Debe fallar.
Ejercicio 2.2. Bloquear HTTP
Crear una regla:
Chain: forward
Protocol: tcp
Dst. Port: 80
Action: drop
Por comandos:
/ip firewall filter
add chain=forward \
protocol=tcp \
dst-port=80 \
out-interface=ether1 \
action=drop \
comment="LAB - Bloquear HTTP"
Desde Ubuntu:
curl http://example.com
El tráfico HTTP será bloqueado.
Para una prueba sencilla conviene utilizar un sitio que realmente responda mediante HTTP, ya que muchos sitios actuales redirigen automáticamente de HTTP a HTTPS.
Ejercicio 2.3. Permitir HTTPS
Crear:
Chain: forward
Protocol: tcp
Dst. Port: 443
Action: accept
Por comandos:
/ip firewall filter
add chain=forward \
protocol=tcp \
dst-port=443 \
out-interface=ether1 \
action=accept \
comment="LAB - Permitir HTTPS"
Aquí los alumnos pueden comprobar algo fundamental:
El orden de las reglas del firewall es importante.
Ejercicio 2.4. Bloquear un equipo concreto
Por ejemplo, bloquear:
192.168.88.200
Gráficamente:
Chain: forward
Src. Address: 192.168.88.200
Action: drop
Por comandos:
/ip firewall filter
add chain=forward \
src-address=192.168.88.200 \
action=drop \
comment="LAB - Bloquear cliente"
Práctica 3. NAT y salida a Internet
Objetivo
Comprender la diferencia entre:
- Firewall.
- Router.
- NAT.
La topología será:
192.168.88.200
│
▼
192.168.88.1
│
NAT
│
▼
192.168.1.128
│
▼
192.168.1.1
│
▼
Internet
Configuración gráfica
Ir a:
IP → Firewall → NAT → +
General
Chain: srcnat
Out. Interface: ether1
Action
Action: masquerade
Comandos
/ip firewall nat
add chain=srcnat \
out-interface=ether1 \
action=masquerade \
comment="LAB - NAT LAN"
Comprobaciones
/ip firewall nat print
Comprobar desde el cliente:
ip addr
ip route
Y:
ping 192.168.88.1
ping 8.8.8.8
Actividad para el alumno
Explicar:
¿Qué dirección IP tiene el ordenador?
¿Qué dirección IP tiene el MikroTik en la WAN?
¿Qué dirección IP ve el router principal?
¿Por qué necesitamos NAT?
Práctica 4. Registros y análisis de sucesos
Objetivo
Aprender a registrar tráfico bloqueado por el cortafuegos.
Esto permite trabajar:
- Logs.
- Auditoría.
- Análisis de eventos.
- Identificación de tráfico.
- Trazabilidad.
Ejemplo: registrar ping bloqueado
Gráficamente
Crear una regla:
Chain: forward
Src. Address: 192.168.88.0/24
Protocol: ICMP
Action: drop
En la pestaña Action activar:
Log: yes
Log Prefix: BLOQUEO_ICMP
Por comandos
/ip firewall filter
add chain=forward \
src-address=192.168.88.0/24 \
protocol=icmp \
out-interface=ether1 \
action=drop \
log=yes \
log-prefix="BLOQUEO_ICMP " \
comment="LAB - Bloqueo ICMP con log"
Desde el cliente:
ping 8.8.8.8
Consultar los logs
Gráficamente:
Log
O mediante:
/log print
También podemos filtrar:
/log print where message~"BLOQUEO_ICMP"
Los alumnos deberán identificar:
Fecha
Hora
IP origen
IP destino
Protocolo
Acción
Práctica 5. Sondeo y pruebas del cortafuegos
Objetivo
Utilizar herramientas de sondeo para comprobar qué servicios están accesibles.
Se puede utilizar una máquina Ubuntu conectada al MikroTik.
Comprobación básica
Desde Ubuntu:
ping 192.168.88.1
Después:
nmap 192.168.88.1
Y:
nmap -sT 192.168.88.1
También:
nmap -sU 192.168.88.1
Desde el MikroTik
Podemos comprobar las conexiones:
/ip firewall connection print
Y:
/ip firewall connection print where dst-address~"192.168.88"
Ejercicio
Los alumnos deben:
- Ejecutar un escaneo.
- Identificar los puertos accesibles.
- Crear una regla para bloquear uno.
- Volver a realizar el escaneo.
- Comparar los resultados.
- Consultar los logs.
Ejemplo
Bloquear WinBox desde una determinada red:
/ip firewall filter
add chain=input \
src-address=192.168.88.0/24 \
protocol=tcp \
dst-port=8291 \
action=drop \
comment="LAB - Bloquear WinBox"
Después:
nmap -p 8291 192.168.88.1
Práctica 6. Creación de una DMZ
Esta práctica permite introducir segmentación de redes.
La topología será:
INTERNET
│
▼
ether1 WAN
│
┌───────▼───────┐
│ MikroTik │
│ FIREWALL │
└───────┬───────┘
│
┌─────────────┴─────────────┐
│ │
LAN DMZ
│ │
192.168.88.0/24 192.168.50.0/24
│ │
Ordenadores Servidor
web Ubuntu
Por ejemplo:
ether2-5 + wlan1 → LAN
ether3 → DMZ
Por tanto, antes de esta práctica habrá que sacar ether3 del bridge.
Configuración gráfica
En:
Bridge → Ports
eliminar:
ether3 → bridgeLocal
Después:
IP → Addresses → +
Address: 192.168.50.1/24
Interface: ether3
Comandos
Eliminar ether3 del bridge:
/interface bridge port
remove [find interface=ether3]
Asignar IP:
/ip address
add address=192.168.50.1/24 interface=ether3 comment="DMZ"
Servidor de la DMZ
Por ejemplo:
Servidor Ubuntu
IP: 192.168.50.10
Gateway: 192.168.50.1
Reglas de firewall
Permitir LAN → DMZ:
/ip firewall filter
add chain=forward \
src-address=192.168.88.0/24 \
dst-address=192.168.50.0/24 \
action=accept \
comment="DMZ - LAN to DMZ"
Bloquear DMZ → LAN:
/ip firewall filter
add chain=forward \
src-address=192.168.50.0/24 \
dst-address=192.168.88.0/24 \
action=drop \
comment="DMZ - Block DMZ to LAN"
Así conseguimos:
LAN ──────────────► DMZ
permitido
DMZ ──────────────► LAN
bloqueado
Publicar un servidor web
Si el servidor Ubuntu tiene:
192.168.50.10
podemos publicar HTTP mediante NAT.
/ip firewall nat
add chain=dstnat \
in-interface=ether1 \
protocol=tcp \
dst-port=80 \
action=dst-nat \
to-addresses=192.168.50.10 \
to-ports=80 \
comment="DMZ - HTTP"
Y HTTPS:
/ip firewall nat
add chain=dstnat \
in-interface=ether1 \
protocol=tcp \
dst-port=443 \
action=dst-nat \
to-addresses=192.168.50.10 \
to-ports=443 \
comment="DMZ - HTTPS"
Después habrá que crear las reglas forward correspondientes para permitir únicamente esos servicios.
Práctica 7. QoS con MikroTik
Objetivo
Introducir:
Quality of Service (QoS)
La idea es limitar el ancho de banda de determinados equipos.
Por ejemplo:
192.168.88.200 → 2 Mbps
192.168.88.201 → 5 Mbps
Configuración gráfica
Ir a:
Queues → Simple Queues → +
Para el primer equipo:
Name: PC-1
Target: 192.168.88.200
Max Limit:
Upload: 2M
Download: 2M
Por comandos
/queue simple
add name="PC-1" \
target=192.168.88.200/32 \
max-limit=2M/2M
Otro equipo:
/queue simple
add name="PC-2" \
target=192.168.88.201/32 \
max-limit=5M/5M
Comprobación
En:
Queues → Simple Queues
se puede observar:
Rate
TX
RX
También:
/queue simple print stats
Los alumnos pueden realizar una descarga antes y después de aplicar la cola y comparar los resultados.
Práctica 8. VPN con MikroTik
Objetivo
Introducir:
- VPN.
- Acceso remoto.
- Túneles.
- Cifrado.
- Acceso seguro a una LAN.
Como el equipo utilizado trabaja con RouterOS 6.47.4, para esta práctica se puede plantear inicialmente IPsec.
La arquitectura:
INTERNET
│
│ VPN
│
┌────▼─────┐
│ MikroTik │
└────┬─────┘
│
192.168.88.0/24
│
Recursos LAN
Configuración gráfica
En:
IP → IPsec
se pueden configurar:
- Peers.
- Profiles.
- Identities.
- Policies.
Esta práctica es más avanzada y conviene realizarla después de dominar las reglas de firewall y NAT.
Comandos
Un ejemplo de comprobación de la configuración IPsec:
/ip ipsec peer print
/ip ipsec identity print
/ip ipsec policy print
/ip ipsec installed-sa print
El objetivo de la práctica no debería ser únicamente «hacer que funcione», sino que el alumno explique:
¿Qué es un túnel VPN?
¿Qué se cifra?
¿Qué dispositivo termina la VPN?
¿Qué red se puede alcanzar?
¿Qué reglas de firewall son necesarias?
Práctica 9. Proxy con Ubuntu + Squid
El apartado de:
Pasarelas de nivel de aplicación (proxies)
es mejor trabajarlo con una máquina Linux.
Topología:
Cliente
│
▼
MikroTik
│
▼
Ubuntu + Squid
│
▼
Internet
En Ubuntu:
sudo apt update
sudo apt install squid
Comprobar:
sudo systemctl status squid
Puerto habitual:
3128
Configuración básica de Squid
Editar:
sudo nano /etc/squid/squid.conf
Se pueden crear ACL para controlar qué clientes tienen permitido utilizar el proxy.
Después:
sudo systemctl restart squid
Comprobar los registros:
sudo tail -f /var/log/squid/access.log
Esta práctica permite comparar:
Firewall de red
↓
Filtrado de paquetes
Proxy
↓
Filtrado a nivel de aplicación
Práctica 10. IDS con Suricata
Objetivo
Introducir la diferencia entre:
Firewall
PERMITIR / BLOQUEAR
y:
IDS
DETECTAR / ALERTAR
Topología:
Internet
│
▼
MikroTik
│
├──────────────► Clientes
│
▼
Ubuntu + Suricata
En Ubuntu:
sudo apt update
sudo apt install suricata
Comprobar:
sudo systemctl status suricata
Registros:
sudo tail -f /var/log/suricata/fast.log
o:
sudo tail -f /var/log/suricata/eve.json
Generar tráfico de prueba
Desde otra máquina:
nmap 192.168.88.1
También se pueden realizar otras pruebas controladas dentro del laboratorio.
El alumno debe identificar:
Origen
Destino
Protocolo
Evento
Alerta
Fecha/hora
Práctica 11. Comparación MikroTik vs. OPNsense
Esta práctica cubre:
Distribuciones libres para implementar cortafuegos en máquinas dedicadas.
Se puede utilizar una máquina virtual con OPNsense.
Arquitectura:
INTERNET
│
┌───────┴───────┐
│ │
MikroTik OPNsense
│ │
LAN LAN
Los alumnos deben configurar en OPNsense:
- WAN.
- LAN.
- DHCP.
- NAT.
- Firewall.
- Reglas.
- Logs.
Y comparar los resultados con MikroTik.
Ejemplo de regla en OPNsense
Crear una regla para bloquear:
LAN → Internet
Protocol: ICMP
Action: Block
Después comprobar el mismo comportamiento que se había implementado en MikroTik.
12. Práctica final: auditoría de un cortafuegos
Como práctica de cierre, los alumnos pueden recibir un MikroTik previamente configurado y realizar una auditoría.
Deben responder:
Direccionamiento
¿Cuál es la WAN?
¿Cuál es la LAN?
¿Cuál es el gateway?
¿Qué rango DHCP se utiliza?
NAT
¿Existe masquerade?
¿Por qué es necesario?
Firewall
¿Qué tráfico está permitido?
¿Qué tráfico está bloqueado?
¿Qué reglas utilizan INPUT?
¿Qué reglas utilizan FORWARD?
Logs
¿Se registran bloqueos?
¿Qué información aparece?
Sondeo
¿Qué puertos están accesibles?
Seguridad
¿Se permite administrar el MikroTik desde Internet?
¿Está protegida la Wi-Fi?
¿Existe segmentación?
¿Existe una DMZ?
13. Secuencia completa de prácticas
Para el módulo de Instalación y configuración de cortafuegos, la secuencia podría quedar así:
| Nº | Práctica | Tecnologías | Nivel |
|---|---|---|---|
| 1 | MikroTik como firewall SOHO | RouterOS, DHCP, DNS, NAT, Wi-Fi | 🟢 |
| 2 | Reglas de filtrado | Firewall RouterOS | 🟢 |
| 3 | NAT y salida a Internet | NAT, masquerade | 🟢 |
| 4 | Logs del firewall | Logging | 🟢 |
| 5 | Sondeo del firewall | Nmap | 🟡 |
| 6 | Segmentación y DMZ | VLAN/redes, firewall, NAT | 🟡 |
| 7 | QoS | Simple Queues | 🟡 |
| 8 | VPN | IPsec | 🟠 |
| 9 | Proxy | Ubuntu + Squid | 🟠 |
| 10 | IDS | Ubuntu + Suricata | 🟠 |
| 11 | Firewall dedicado | OPNsense | 🟠 |
| 12 | Auditoría final | Todas las anteriores | 🟠 |
14. Relación con el temario
Con estas prácticas se pueden cubrir prácticamente todos los apartados:
Concepto de cortafuegos
↓
Práctica 1
Características y funciones
↓
Prácticas 1 y 2
Filtrado de paquetes
↓
Práctica 2
Firewall SOHO
↓
Práctica 1
Firewall hardware
↓
MikroTik
Firewall software
↓
OPNsense / Ubuntu
Reglas de filtrado
↓
Práctica 2
Pruebas de funcionamiento
↓
Práctica 5
Sondeo
↓
Nmap
Registros de sucesos
↓
Práctica 4
Distribuciones libres
↓
OPNsense
NAT
↓
Práctica 3
VPN
↓
Práctica 8
IDS
↓
Práctica 10
QoS
↓
Práctica 7
Proxy
↓
Práctica 9
DMZ / segmentación
↓
Práctica 6