Escenario:
firewall -> eth0 DHCP, eth1 red intnet 172.18.2.1, eht2 red dmz 172.39.2.1
Máquinas dmz -> Apache, eth0 red interna dmz 172.39.2.2, DNS, eth0 red interna dmz 172.39.2.3
Máquinas intnet -> DHCP, eht0 red interna intnet 172.18.2.2, clientes: red interna intnet dhcp
Una vez configurado Apache, en firewall:
# Habilitar reenvío IPv4
sudo sysctl -w net.ipv4.ip_forward=1
# (Opcional: hacerlo permanente)
sudo echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
# Instalar iptables si no está
sudo apk add iptables
# Limpiar reglas anteriores
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t nat -X
# Políticas básicas
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
Añadir reglas NAT/redirección de puertos SSH:
# Redirecciones de puertos desde la WAN (eth0) hacia los servidores DMZ
# Apache (puerto externo 2222)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to-destination 172.39.2.2:22
# DNS (puerto externo 2223)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2223 -j DNAT --to-destination 172.39.2.3:22
# Hacer masquerade para que las respuestas vuelvan correctamente
sudo iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
Ver iptables:
sudo iptables -L
sudo iptables -L -v
sudo iptables -t nat -L -n -v --line-numbers
Permitir conexión LAN - DMZ (DNS)
# Permitir LAN -> DMZ DNS
# 1️⃣ Permitir tráfico LAN → DMZ (todo TCP/UDP o sólo puertos necesarios)
sudo iptables -A FORWARD -i eth1 -o eth2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 2️⃣ Si quieres limitar solo a ciertos puertos (opcional, más seguro)
# Por ejemplo DNS (53) y HTTP (80)
sudo iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth2 -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
En el servidor DHCP cambiar para añadir los dns y la puerta de enlace:
{
"Dhcp4": {
"valid-lifetime": 4000,
"renew-timer": 1000,
"rebind-timer": 2000,
"interfaces-config": {
"interfaces": ["eth0"]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/dhcp4.leases"
},
"subnet4": [
{
"id": 1,
"subnet": "172.18.2.0/24",
"pools": [
{
"pool": "172.18.2.70 - 172.18.2.90"
}
],
"interface": "eth0",
"option-data": [
{
"name": "domain-name-servers",
"code": 6,
"data": "172.39.2.3"
},
{
"name": "routers",
"code": 3,
"data": "172.18.2.1"
}
],
"reservations": [
{
"hw-address": "08:00:27:CD:6D:00",
"ip-address": "172.18.2.84"
}
]
}
]
}
}
Para comprobar en lubuntu:
ip route
...via default 172.18.2.1...
Los DNS:
resolvectl status
Lubuntu al arrancar no recibe bien los DNS (probablemente por usar NetworkManager). Solución, instalar dhclient y hacer: \\ \\
sudo dhclient -r && sudo dhclient -v enp0s3