L2TP iptables 포트 전달

L2TP iptables 포트 전달

로컬 Windows 2003 VPN 서버에 대한 L2TP VPN 연결을 위한 포트 전달을 설정하고 있습니다. 라우터는 iptables가 있는 단순한 데비안 시스템입니다. VPN 서버는 완벽하게 작동합니다. 하지만 WAN에서는 로그인할 수 없습니다. 나는 뭔가를 놓치고 있습니다.

VPN 서버는 사전 공유 키(L2TP)를 사용하고 있으며 192.168.3.0 범위의 IP를 제공합니다. 로컬 네트워크 범위는 192.168.2.0/24입니다.

경로를 추가했습니다. 경로 add -net 192.168.3.0 netmask 255.255.255.240 gw 192.168.2.13 (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

전체 iptables 스크립트는 다음과 같습니다(위의 줄 제외).

    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

답변1

테스트를 진행하는 동안 tcpdump 세션을 실행하고 테스트 전후에 iptables -L -nv의 카운터도 살펴보세요.

답변2

해결책: iptables -A FORWARD -p udp --sport 1701 -j ACCEPT

답변3

방화벽과 NAT 뒤에 있는 경우 다음을 찾을 수 있습니다. http://support.microsoft.com/kb/885407/en-us

관련 정보