Reenvío de puerto L2TP iptables

Reenvío de puerto L2TP iptables

Estoy configurando el reenvío de puertos para una conexión VPN L2TP al servidor VPN local de Windows 2003. El enrutador es una máquina Debian simple con iptables. El servidor VPN funciona perfecto. Pero no puedo iniciar sesión desde la WAN. Me falta algo.

El servidor VPN utiliza una clave previamente compartida (L2TP) y proporciona una IP en el rango: 192.168.3.0. El rango de la red local es 192.168.2.0/24

Agregué la ruta: con ruta add -net 192.168.3.0 netmask 255.255.255.240 gw 192.168.2.13 (el servidor vpn)

iptables -t nat -A PREROUTING -p udp --dport 1701 -i eth0 -j DNAT --to 192.168.2.13
iptables -A FORWARD -p udp --dport 1701 -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport 500 -i eth0 -j DNAT --to 192.168.2.13
iptables -A FORWARD -p udp --dport 500 -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport 4500 -i eth0 -j DNAT --to 192.168.2.13
iptables -A FORWARD -p udp --dport 4500 -j ACCEPT
iptables -t nat -A PREROUTING -p 50 -j DNAT --to 192.168.2.13
iptables -A FORWARD -p 50 -j ACCEPT
iptables -t nat -A PREROUTING -p 51 -j DNAT --to 192.168.2.13
iptables -A FORWARD -p 51 -j ACCEPT

El script completo de iptables es (sin las líneas de arriba):

    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies

            #Flush table's
            iptables -F INPUT
            iptables -F OUTPUT
            iptables -F FORWARD
            iptables -t nat -F

            #Drop traffic
            iptables -P INPUT DROP
            iptables -P FORWARD DROP
            iptables -P OUTPUT ACCEPT

            #verkeer naar buiten toe laten en nat aanzetten
            iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
            iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
            iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

            #RDP forward voor windows servers
            iptables -t nat -A PREROUTING -p tcp --dport 3389 -i eth0 -j DNAT --to 192.168.2.10:3389
            iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
            iptables -t nat -A PREROUTING -p tcp --dport 3340  -i eth0 -j DNAT --to 192.168.2.12:3340
            iptables -A FORWARD -p tcp --dport 3340 -j ACCEPT

            #toestaan SSH verkeer
            iptables -t nat -A PREROUTING -p tcp --dport 22 -i eth0 -j DNAT --to-destination 192.168.2.1
            iptables -A INPUT -p tcp --dport 22 -j ACCEPT

            #toestaan verkeer loopback
            iptables -A INPUT -i lo -j ACCEPT

            #toestaan lokaal netwerk
            iptables -A INPUT -i eth1 -j ACCEPT

            #accepteren established traffic
            iptables -A INPUT -i eth0 --match state --state RELATED,ESTABLISHED -j ACCEPT

        #droppen ICMP boodschappen
        iptables -A INPUT -p icmp -i eth0 -m limit --limit 10/minute -j ACCEPT
        iptables -A INPUT -p icmp -i eth0 -j REJECT

    ifconfig eth1 192.168.2.1/24
    ifconfig eth0 XXXXXXXXXXXXX/30
    ifconfig eth0 up
    ifconfig eth1 up
    route add default gw XXXXXXXXXXXXXXXXXXX
    route add -net 192.168.3.0 netmask 255.255.255.240 gw 192.168.2.13

Respuesta1

Ejecute una sesión tcpdump mientras realiza la prueba y también mire los contadores de iptables -L -nv antes y después de la prueba.

Respuesta2

La solución: iptables -A FORWARD -p udp --sport 1701 -j ACCEPT

Respuesta3

Si está detrás de un Firewall y NAT, es posible que esté buscando: http://support.microsoft.com/kb/885407/en-us

información relacionada