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
  • clase/smr/sr/firewall.txt
  • Última modificación: 2025/10/29 19:18
  • por cesguiro