PPTP-Client hinter einem NAT: Wie leite ich Port weiter

441
RebelWithoutAPulse

Das Setup ist wie folgt:

  1. PPTP Windows Server over Internet (SERVER)
  2. Windows-Hostmaschine (HOST)
  3. Linux-VM, die auf Maschine 2 (VM) ausgeführt wird

VM wird auf HOST ausgeführt, wobei der Netzwerkadapter an NAT angeschlossen ist

HOST kann problemlos mit den angegebenen Anmeldeinformationen über VPN auf SERVER zugreifen. VM, die unter HOST ausgeführt wird, kann nicht ausgeführt werden. Tcpdump zeigt, was mir fehlt, wenn es an GRE-Antworten mangelt:

17:17:17.024882 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [S], seq 223797697, win 29200, options [mss 1460,sackOK,TS val 2041885 ecr 0,nop,wscale 7], length 0 17:17:17.265478 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [S.], seq 284096001, ack 223797698, win 65535, options [mss 1460], length 0 17:17:17.265531 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [.], ack 1, win 29200, length 0 17:17:17.266374 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [P.], seq 1:157, ack 1, win 29200, length 156: pptp CTRL_MSGTYPE=SCCRQ PROTO_VER(1.0) FRAME_CAP(AS) BEARER_CAP(DA) MAX_CHAN(65535) FIRM_REV(1) HOSTNAME(local) VENDOR(cananian) 17:17:17.266576 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [.], ack 157, win 65535, length 0 17:17:17.512333 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [P.], seq 1:157, ack 157, win 65535, length 156: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) HOSTNAME(local) VENDOR(linux) 17:17:17.512370 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [.], ack 157, win 30016, length 0 17:17:18.267029 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [P.], seq 157:325, ack 157, win 30016, length 168: pptp CTRL_MSGTYPE=OCRQ CALL_ID(0) CALL_SER_NUM(0) MIN_BPS(2400) MAX_BPS(10000000) BEARER_TYPE(Any) FRAME_TYPE(E) RECV_WIN(3) PROC_DELAY(0) PHONE_NO_LEN(0) PHONE_NO() SUB_ADDR() 17:17:18.267276 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [.], ack 325, win 65535, length 0 17:17:18.516316 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [P.], seq 157:189, ack 325, win 65535, length 32: pptp CTRL_MSGTYPE=OCRP CALL_ID(9) PEER_CALL_ID(0) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(10000000) RECV_WIN(3) PROC_DELAY(0) PHY_CHAN_ID(0) 17:17:18.516353 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [.], ack 189, win 30016, length 0 17:17:18.516617 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 1, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:21.013567 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 2, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:24.018211 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 3, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:27.021510 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 4, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:30.024770 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 5, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:33.027047 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 6, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:36.030701 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 7, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:39.034014 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 8, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:42.037526 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 9, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:45.040779 IP $VM_IP > $SERVER_IP: GREv1, call 9, seq 10, length 36: LCP, Conf-Request (0x01), id 1, length 22 17:17:48.048560 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [P.], seq 325:341, ack 189, win 30016, length 16: pptp CTRL_MSGTYPE=CCRQ CALL_ID(0) 17:17:48.048649 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [F.], seq 341, ack 189, win 30016, length 0 17:17:48.048685 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [.], ack 341, win 65535, length 0 17:17:48.049126 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [.], ack 342, win 65535, length 0 17:17:54.359765 IP $SERVER_IP.pptp > $VM_IP.46712: Flags [F.], seq 189, ack 342, win 65535, length 0 17:17:54.359810 IP $VM_IP.46712 > $SERVER_IP.pptp: Flags [.], ack 190, win 30016, length 0 

Frage: Sollte ich zusätzliche Ports über den Hypervisor von HOST an die VM weiterleiten, oder fehlt mir etwas?

0
PPTP ist unsicher und seit Jahren veraltet. Bitte wechseln Sie zu einem richtigen VPN-Port. Spiff vor 7 Jahren 1

1 Antwort auf die Frage

0
davidgo

[Vorausgesetzt, Sie verwenden Linux.] Sie müssen wahrscheinlich Unterstützung für "nf_conntrack_pptp" hinzufügen. Ich nehme an, dass NAT die GRE-Pakete nicht mit PPTP verknüpft und sie daher nicht weiterleitet. Abhängig von Ihrer Variante kann modprobe nf_conntrack_pptp vorübergehend funktionieren. Das Spielen mit /etc/modprobe.d/* oder das Hinzufügen zu / etc / modules kann ein Dauerfehler sein, wenn dies die Ursache des Problems ist.

Ich habe die Frage überarbeitet, um die verwendeten Betriebssysteme klarer zu machen. nf_conntrack_pptp wird in guest geladen: # grep pptp / proc / modules nf_conntrack_pptp 19257 0 - Live 0xffffffffa0261000 RebelWithoutAPulse vor 7 Jahren 0
nf_conntrack_pptp muss auf dem Host ausgeführt werden (um ihn durch NAT zu navigieren), nicht auf dem Gast. davidgo vor 7 Jahren 0