PPTP-Tunnel (IPv4) unter Debian-Linux einrichten (Anleitung)

Aus Portunity Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Zeile 9: Zeile 9:
<source lang="command">apt-get install pptp-linux</source>  
<source lang="command">apt-get install pptp-linux</source>  
-
Nun gibt es das Verzeichnis <code>/etc/ppp</code>. Hier sind die wichtigsten Config-Files für den PPTP-Tunnel.&nbsp;Ein kleines Was ist was:  
+
Nun gibt es das Verzeichnis <code>/etc/ppp</code>. Hier sind die wichtigsten Config-Files für den PPTP-Tunnel:
-
*Verzeichnis: "peers" =&gt; Die wichtigsten Zugangsdaten und Einstellungen je Tunnel  
+
*Verzeichnis "<code>peers</code>": Die wichtigsten Zugangsdaten und Einstellungen je Tunnel  
-
*Verzeichnis: "ip-up.d" =&gt; Wird beim Tunnelaufbau ausgeführt (IPv4)
+
*Verzeichnis "<code>ip-up.d</code>": Scripte, die beim Tunnelaufbau ausgeführt werden
-
*Verzeichnis: "ip-down.d" =&gt; Wird beim Tunnelabbau (zusammenbruch) ausgeführt (IPv4)
+
*Verzeichnis "<code>ip-down.d</code>": Wird beim Tunnelabbau (zusammenbruch) ausgeführt
-
*Datei: "chap-secrets" =&gt; Tunnelpasswörter
+
*Datei "<code>chap-secrets</code>": Zugangsdaten für die Tunnelverbindungen
= Schritt 2: Grundkonfiguration - peers  =
= Schritt 2: Grundkonfiguration - peers  =
-
Legen Sie mit Ihrem Lieblingseditor im Verzeichnnis <code>/etc/ppp/peers</code> die Datei <code>"portunity"</code> an - in unserem Beispiel <code>vim</code>
+
Legen Sie mit einem Texteditor im Verzeichnnis <code>/etc/ppp/peers</code> die Datei "<code>portunity</code>" an &ndash; in unserem Beispiel verwenden wir <code>vim</code>, Sie können aber jeden anderen Texteditor verwenden.
-
<source lang="command">vi /etc/ppp/peers/portunity</source>  
+
<source lang="command">vim /etc/ppp/peers/portunity</source>  
-
''Nun einmal "'''i'''" (kleines I für insert) drücken, um in den Einfügemodus zu wechseln.''
+
-
 
+
-
Inhalt:
+
 +
Inhalt:
 +
''Bitte beachten Sie [[Wie lauten die Einwahlserver für meinen VPN-Tunnel]] für die Serveradresse, hier mit Platzhalter "pptp.tpX.tunneleinwahl.de" dargestellt''
 +
<pre>
  ### Verbindungsziel - Portunity-Server
  ### Verbindungsziel - Portunity-Server
-
  pty "pptp [[Wie lautet meine VPN Gatway Adresse|XXXX.ffm.portunity.de]] --nolaunchpppd --nobuffer --timeout 10"
+
  pty "pptp pptp.tpX.tunneleinwahl.de --nolaunchpppd --nobuffer --timeout 10"
   
   
-
  ### PPTP - Loginname
+
  ### PPTP-Loginname, wird im Kundencenter im Tarif angezeigt
  name tunnelXXXXX
  name tunnelXXXXX
   
   
Zeile 34: Zeile 34:
  persist
  persist
   
   
-
  ### MTU muss kleiner 1500 sein, da das PPTP-Protokoll ein TCP Paket vergrössert
+
  ### MTU muss kleiner 1500 sein, da das PPTP-Protokoll selbst ja auch Platz im Paket benötigt.
  mtu 1400
  mtu 1400
   
   
-
  ### Wird an die ip-up / ip-down Scripte übergeben zur eindeutigen Erkennung
+
  ### Wird an die ip-up / ip-down-Scripte übergeben zur eindeutigen Erkennung
  ipparam portunity
  ipparam portunity
   
   
Zeile 57: Zeile 57:
  nodeflate
  nodeflate
   
   
-
  #### Diese Option kann auf älteren Linux Systemen dazu führen dass der Tunnel  nicht aufgebaut wird.
+
  ### IPv6 ermöglichen
-
#    Dann bitte einfach auskommentieren oder das + durch ein - ersetzen um IPv6 zu Deaktivieren. => #+ipv6
+
  +ipv6
  +ipv6
   
   
  #end
  #end
 +
</pre>
-
Statt [[Wie lautet meine VPN Gatway Adresse|"XXXX.ffm.portunity.de"]] geben Sie bitte ihre VPN Gateway Adresse aus dem Kundencenter an und anstelle von "tunnelXXXXX" geben Sie bitte Ihren PPTP-Loginnamen ein.
 
-
''Mit "'''ESC ESC&nbsp;:wq ENTER'''" speichern und beenden Sie den vi-Editor.''
+
Nun muss das Passwort für den Tunnel noch in der Datei "<code>chap-secrets</code>" im Verzeichnis "<code>/etc/ppp</code>" hinterlegt werden.  
-
Nun muss das Passwort für den Tunnel noch in der Datei "'''chap-secrets'''" im Verzeichnis "'''/etc/ppp'''" hinterlegt werden.
+
<source lang="command">vim /etc/ppp/chap-secrets</source>  
-
 
+
-
<source lang="command">vi /etc/ppp/chap-secrets</source>  
+
Inhalt:  
Inhalt:  
Zeile 79: Zeile 76:
#end</source>  
#end</source>  
-
Anstelle "'''tunnelXXXXX'''" geben Sie bitte wieder Ihren PPTP-Loginnamen ein und anstelle von "'''PASSWORT'''" Ihr PPTP-Passwort, welches Sie vergeben haben. Nicht Ihr ISP-Suite Passwort! Die Bezeichnung PPTP unter server muss genauso wie im Skript nach remotename angegeben werden; Groß-/Kleinbuchstaben werden hier unterschieden!
+
Anstelle "'''tunnelXXXXX'''" geben Sie bitte wieder Ihren PPTP-Loginnamen ein und anstelle von "'''PASSWORT'''" Ihr PPTP-Passwort, welches Sie vergeben haben &ndash; dies ist nicht Ihr Kundencenter-Passwort. Die Bezeichnung PPTP unter "<code>server</code>" muss genauso wie im Script nach "<code>remotename</code>" angegeben werden; Groß-/Kleinbuchstaben werden hier unterschieden.
-
Sie sollten nun noch festlegen, das nur "root" Leserechte auf die Datei hat, damit niemand Ihr Passwort auslesen kann. Dies geht mit  
+
Sie sollten nun noch festlegen, dass nur der Benutzer "root" Leserechte auf die Datei hat, damit niemand Ihr Passwort auslesen kann. Dies geht mit  
<source lang="command">chmod 600 /etc/ppp/chap-secrets</source>  
<source lang="command">chmod 600 /etc/ppp/chap-secrets</source>  
-
'''Besonderheit:''' Wir kennen natürlich nicht Ihren Rechner / Server, aber wir gehen davon aus, dass Sie eine Firewall laufen haben. Die Firewall muss das Protokoll "GRE" ('''Protokoll'''nummer 47) und die Kommunikation zu unseren PPTP-Servern [Port 1723/TCP] zulassen!
 
= Schritt 3: Erster Test des Tunnels  =
= Schritt 3: Erster Test des Tunnels  =
Zeile 93: Zeile 89:
<source lang="command">pon portunity</source>  
<source lang="command">pon portunity</source>  
-
Prüfen, ob das PPP-Device erstellt wurde:&nbsp; <source lang="command">ifconfig
+
Prüfen, ob das PPP-Device erstellt wurde:&nbsp;  
-
eth0 ....
+
<pre>
 +
:~# ip addr show
 +
 
 +
4: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
 +
    link/ppp
 +
    inet 188.246.4.X peer 188.246.4.1/32 scope global ppp0
 +
 
 +
</pre>
-
ppp0 Protokoll:Punkt-zu-Punkt Verbindung
 
-
inet Adresse:188.246.4.X P-z-P:188.246.4.1 Maske:255.255.255.255
 
-
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1400 Metric:1
 
-
RX packets:168585 errors:0 dropped:0 overruns:0 frame:0
 
-
TX packets:200554 errors:0 dropped:0 overruns:0 carrier:0
 
-
Kollisionen:0 Sendewarteschlangenlänge:3
 
-
RX bytes:17999794 (17.1 MiB) TX bytes:24537734 (23.4 MiB)</source> Es handelt sich um eine Point-2-Point Verbindung. Das Gateway auf Portunity Seite hat hier die: P-z-P:188.246.4.1
 
= Schritt 4: Routen  =
= Schritt 4: Routen  =
-
Default Route setzen? Wenn Sie den kompletten Traffic durch den Tunnel schicken wollen, dann können Sie eine Defaultroute in den Tunnel setzen. Achten Sie nur darauf, das Ihr Server dann auch nur noch aus dem lokalen Netzsegment und durch den Tunnel erreichbar ist!  
+
Default-Route setzen? Wenn Sie den kompletten Traffic durch den Tunnel schicken möchten, können Sie eine Defaultroute in den Tunnel setzen. Achten Sie nur darauf, das Ihr Server dann auch nur noch aus dem lokalen Netzsegment und durch den Tunnel erreichbar ist!<br>
 +
Eine Alternative ist [[PBR (Policy Based Routing)]], welches Sie anstelle der Defaultroute konfigurieren können.
== Route manuell setzen  ==
== Route manuell setzen  ==
Zeile 113: Zeile 110:
Die Default-Route kann wie folgt manuell gesetzt werden:  
Die Default-Route kann wie folgt manuell gesetzt werden:  
-
<source lang="command">ip -4 route add 0.0.0.0/0 dev ppp0</source>  
+
<source lang="command">ip -4 route add default dev ppp0</source>  
-
Prüfen Sie bitte mit <code>ifconfig</code> oder <code>ip link show</code>, ob der portunity-Tunnel aktuell "ppp0" heißt. Die Nummer kann sich schon mal ändern! z.B. ppp1. Wird der Tunnel abgebaut, wird die route automatisch gelöscht!  
+
Prüfen Sie bitte mit <code>ip link show</code>, ob der Portunity-Tunnel aktuell tatsächlich "ppp0" heißt. Wird der Tunnel abgebaut, wird die Route automatisch gelöscht!  
== Route "bootfest" machen  ==
== Route "bootfest" machen  ==
-
Legen Sie mit Ihrem Lieblingseditor im Verzeichnnis "/etc/ppp/ip-up.d/" die Datei "portunity" an. Diese Datei wird nach erfolgreichem Tunnelaufbau automatisch ausgeführt.  
+
Legen Sie mit einem Texteditor im Verzeichnnis "<code>/etc/ppp/ip-up.d/</code>" die Datei "portunity" an. Diese Datei wird nach erfolgreichem Tunnelaufbau automatisch ausgeführt.  
<source lang="command">vim /etc/ppp/ip-up.d/portunity</source>  
<source lang="command">vim /etc/ppp/ip-up.d/portunity</source>  
Zeile 148: Zeile 145:
echo "`date +%b" "%e" "%H":"%M":"%S` Portunity: PPTP - ipparam: $6 Interface goes up ($1). "\
echo "`date +%b" "%e" "%H":"%M":"%S` Portunity: PPTP - ipparam: $6 Interface goes up ($1). "\
   "Now adding routing..." >> /var/log/messages
   "Now adding routing..." >> /var/log/messages
-
ip -4 route add 0.0.0.0/0 dev $1
+
ip -4 route add default dev $1
fi
fi
Zeile 158: Zeile 155:
<source lang="command">chmod 750 /etc/ppp/ip-up.d/portunity</source>  
<source lang="command">chmod 750 /etc/ppp/ip-up.d/portunity</source>  
-
Erster Datentest:&nbsp;Bauen Sie nun den Tunnel einmal neu auf, damit die Route gesetzt wird:  
+
Bauen Sie nun den Tunnel einmal neu auf, damit die Route gesetzt wird:  
-
<source lang="command">poff portunity
+
<source lang="command">poff portunity; pon portunity</source>  
-
 
+
-
pon portunity</source>  
+
Nun können wir testen:  
Nun können wir testen:  
-
<source lang="command">w3m https://www.portunity.de/ip</source>  
+
<source lang="command">curl "http://meineipv6.de/mro.php?format=plaintext"</source>  
-
Wird die IP-Adresse des PPP-Interfaces angezeigt, ist alles korrekt konfiguriert.<br>
+
Wird die IP-Adresse des PPP-Interface angezeigt, ist alles korrekt konfiguriert.<br>
Wenn dort nicht die IP-Adresse erscheint, welche Ihrem Tunnel zugeordnet ist, läuft der Traffic nicht durch den Tunnel.<br>
Wenn dort nicht die IP-Adresse erscheint, welche Ihrem Tunnel zugeordnet ist, läuft der Traffic nicht durch den Tunnel.<br>
-
 
-
<source lang="output">Ihre IP-Adresse lautet: 188.246.4.x
 
-
Hostname: meinptr.meinedomain.de</source>
 
Tunnel abschalten:  
Tunnel abschalten:  
Zeile 179: Zeile 171:
<source lang="command">poff portunity</source>  
<source lang="command">poff portunity</source>  
-
Wenn sich der Tunnel nicht aufbaut, dann schauen Sie bitte im entsprechenden FAQ-Artikel nach: Der PPTP-Tunnel startet nicht unter Debian
 
-
 
-
= Schritt 5: Tunnel bootfest machen  =
 
-
 
-
Den Tunnel komplett bootfest machen. Hierzu müssen wir 2 kleine Scripte anlegen und diese dann inter interfaces Datei eintragen. Dafurch wird der Tunnel immer aufgebaut, nachdem die Netzwerkkarte hochgefahren ist und abgebaut, bevor die Netzwerkkarte herunter fährt.
 
-
 
-
Anlegen der beiden Scripte:
 
-
 
-
== START - Script  ==
 
-
 
-
Für das Start-Script legen wir eine "up"-Datei an:
 
-
 
-
<source lang="command">vim /etc/ppp/portunity-pptp-up.sh</source>
 
-
 
-
Inhalt:
 
-
 
-
<source lang="bash">#!/bin/bash
 
-
####
 
-
# Startet den Portunity: PPP-Tunnel
 
-
#
 
-
 
-
# Noch mal 2 Sekunden warten
 
-
sleep 2
 
-
 
-
# Meldung bringen und Tunnel starten
 
-
echo "`date +%b" "%e" "%H":"%M":"%S` Portunity - PPTP: Netzwork startet," \
 
-
    " starting PPTP Tunnel to Portunity..." >> /var/log/messages
 
-
/usr/bin/pon portunity
 
-
 
-
#### IMMER mit ERFOLG enden, sonst fährt er das eth_x nicht hoch!
 
-
exit 0
 
-
# ende der Datei</source>
 
-
 
-
Die Datei muss natürlich ausführbar sein:
 
-
 
-
<source lang="command">chmod 750 /etc/ppp/portunity-pptp-up.sh</source>
 
-
 
-
== STOP - Script  ==
 
-
 
-
Und für das Stop-Script legen wir eine "down"-Datei an:
 
-
 
-
<source lang="command">vim /etc/ppp/portunity-pptp-down.sh</source>
 
-
 
-
Inhalt:
 
-
 
-
<source lang="bash">#!/bin/bash
 
-
####
 
-
# Stoppt den Portunity: PPP - Tunnel
 
-
#
 
-
 
-
# Meldung bringen und Tunnel starten
 
-
echo "`date +%b" "%e" "%H":"%M":"%S` Portunity - PPTP: Netzwork shutted down, " \
 
-
    " stopping PPTP Tunnel to Portunity!" >> /var/log/messages
 
-
/usr/bin/poff portunity
 
-
 
-
# Noch 1 Sekunde warten
 
-
sleep 1
 
-
 
-
#### IMMER mit ERFOLG enden, sonst fährt er das eth_x nicht hoch!
 
-
exit 0
 
-
# ende der Datei</source>
 
-
 
-
Die Datei muss natürlich ebenfalls ausführbar sein: <source lang="command">chmod 750 /etc/ppp/portunity-pptp-down.sh</source>
 
-
 
-
== Aktivieren der Scripte  ==
 
-
 
-
Pürfen Sie zu erst, über welche Netzwerkkarte der Tunnel aufgebaut wird. Also welche Netzwerkkarte mit dem Internet verbinden ist. Meist "eth0" oder "enp3s0", wenn nur eine Karte vorhanden resp. aktiviert ist.
 
-
 
-
<source lang="command">vim /etc/network/interfaces</source>
 
-
 
-
Inhalt:
 
-
 
-
<source lang="text"># ... Auszug der Datei ....
 
-
 
-
iface eth0 inet static
 
-
address 192.168.10.xxx # Nur als Beispiel
 
-
netmask 255.255.255.xxx # Nur als Beispiel
 
-
gateway 192.168.10.xxx # Nur als Beispiel
 
-
post-up /etc/ppp/portunity-pptp-up.sh
 
-
pre-down /etc/ppp/portunity-pptp-down.sh
 
-
 
-
# ... Auszug ende ...</source>
 
-
 
-
Wichtige Hinweise:
 
-
 
-
*Seien Sie bitte sehr umsichtig beim Bearbeiten dieser Datei
 
-
*erstellen Sie sich zuvor besser eine Sicherungskopie "cp -p /etc/network/interfaces /etc/network/interfaces-backup"
 
-
*Die IP-Adressen sind Beispiele. Sie werden vermutlich andere haben. Diese nicht ändern!
 
-
*Bei Fehlern fährt Ihr Rechner möglicherweise keine Netzwerkverbindungen mehr hoch!
 
-
 
-
= Debug-Hilfe  =
 
-
 
-
== Der PPTP-Tunnel startet nicht unter Debian - was kann ich machen?  ==
 
-
 
-
Wenn der Tunnel nicht mit:
 
-
 
-
<source lang="command">pon portunity</source> startet, dann können Sie den Start im Debug-Modus versuchen. Damit springt das Programm nicht in den Hintergrund, sondern es bleib oben und gtibt alles direkt auf der Console aus.
 
-
 
-
<source lang="command">pon portunity debug dump logfd 2 nodetach</source>
 
-
 
-
Musterausgabe:
 
-
 
-
<source lang="output">gate-firma:/# pon portunity debug dump logfd 2 nodetach
 
-
pppd options in effect:
 
-
debug          # (from command line)
 
-
nodetach                # (from command line)
 
-
persist        # (from /etc/ppp/peers/portunity)
 
-
logfd 2        # (from command line)
 
-
maxfail 0              # (from /etc/ppp/peers/portunity)
 
-
dump            # (from command line)
 
-
noauth          # (from /etc/ppp/peers/portunity)
 
-
refuse-eap              # (from /etc/ppp/peers/portunity)
 
-
name tunnelXXXXX              # (from /etc/ppp/peers/portunity)
 
-
remotename PPTP        # (from /etc/ppp/peers/portunity)
 
-
                # (from /etc/ppp/peers/portunity)
 
-
pty pptp pptp.ffm.portunity.de --nolaunchpppd          # (from /etc/ppp/peers/portunity)
 
-
crtscts        # (from /etc/ppp/options)
 
-
                # (from /etc/ppp/options)
 
-
asyncmap 0              # (from /etc/ppp/options)
 
-
mtu 1400                # (from /etc/ppp/peers/portunity)
 
-
lcp-echo-failure 4              # (from /etc/ppp/options)
 
-
lcp-echo-interval 30            # (from /etc/ppp/options)
 
-
hide-password          # (from /etc/ppp/options)
 
-
ipparam portunity              # (from /etc/ppp/peers/portunity)
 
-
proxyarp                # (from /etc/ppp/options)
 
-
nobsdcomp              # (from /etc/ppp/peers/portunity)
 
-
nodeflate              # (from /etc/ppp/peers/portunity)
 
-
noipx          # (from /etc/ppp/options)
 
-
using channel 44
 
-
Using interface ppp0
 
-
Connect: ppp0 <--> /dev/pts/6
 
-
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcad60176> <pcomp> <accomp>]
 
-
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth eap> <magic 0x92d64869> <pcomp> <accomp>]
 
-
sent [LCP ConfNak id=0x1 <auth chap MD5>]
 
-
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xcad60176> <pcomp> <accomp>]
 
-
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0x92d64869> <pcomp> <accomp>]
 
-
sent [LCP ConfAck id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0x92d64869> <pcomp> <accomp>]
 
-
sent [LCP EchoReq id=0x0 magic=0xcad60176]
 
-
rcvd [LCP EchoReq id=0x0 magic=0x92d64869]
 
-
sent [LCP EchoRep id=0x0 magic=0xcad60176]
 
-
rcvd [CHAP Challenge id=0x22 <fda0cddf723f723fd144ebad8fcf6d6a249dd9f99737f1>, name = "pptpd"]
 
-
sent [CHAP Response id=0x22 <e5d7907295f40bb49f272291dbdccde3>, name = "tunnelXXXXX"]
 
-
rcvd [LCP EchoRep id=0x0 magic=0x92d64869]
 
-
rcvd [CHAP Success id=0x22 ""]
 
-
CHAP authentication succeeded
 
-
CHAP authentication succeeded
 
-
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 188.246.8.X>]
 
-
rcvd [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
 
-
sent [CCP ConfReq id=0x1]
 
-
sent [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15>]
 
-
rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 188.246.4.X>]
 
-
sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 188.246.4.X>]
 
-
rcvd [IPCP ConfNak id=0x1 <addr 188.246.4.X>]
 
-
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 188.246.4.X>]
 
-
rcvd [CCP ConfAck id=0x1]
 
-
rcvd [CCP ConfReq id=0x2]
 
-
sent [CCP ConfAck id=0x2]
 
-
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 188.246.4.X>]
 
-
Cannot determine ethernet address for proxy ARP
 
-
local  IP address 188.246.4.X
 
-
remote IP address 188.246.4.X
 
-
Script /etc/ppp/ip-up started (pid 22886)
 
-
Script /etc/ppp/ip-up finished (pid 22886), status = 0x0</source> Hier steht der Tunnel stabil. Wenn sich das Script automatisch beendet, dann steht der Tunnel nicht.
 
-
 
-
*ZUM ABBRUCH DES TUNNELS: STRG + C *
 
-
 
-
<source lang="output">Terminating on signal 2
 
-
Script pptp pptp.ffm.portunity.de --nolaunchpppd finished (pid 22880), status = 0x0
 
-
Modem hangup
 
-
Connect time 0.3 minutes.
 
-
Sent 13332 bytes, received 4273 bytes.
 
-
Script /etc/ppp/ip-down started (pid 22941)
 
-
Connection terminated.
 
-
Waiting for 1 child processes...
 
-
  script /etc/ppp/ip-down, pid 22941
 
-
Script /etc/ppp/ip-down finished (pid 22941), status = 0x1</source>
 
-
 
-
'''Hinweis:''' Bei dem Muster hier werden noch ip-up.d bzw. ip-down.d Scripte ausgeführt.
 
-
 
-
Wenn Sie mit der Meldung nichts anfangen können, so schreiben Sie Portunity bitte erst eine eMail (oder geben ein Support-Ticket oder fragen im Support-Forum nach) auf, damit Portunity etwas sehen kann. Per Telefon ist so etwas kaum möglich.&nbsp;Bitte haben Sie auch Verständnis dafür, das Portunity Ihnen nur bis zu einem gewissen Maß kostenlos helfen können.<br>
 
-
 
-
== Fehler: Keine Defaultroute  ==
 
-
 
-
Wenn die Defaultroute nicht über die peers/portunity Datei mit dem Parameter "defaultroute" gesetzt werden kann, dann erscheint in der "pon portunity debug ..." Ausgabe ziemlich am Ende folgende Zeile:
 
-
 
-
<source lang="output">not replacing existing default route via 217.144.132.x</source>
 
-
 
-
Dann müssen Sie ein ip-up Script bemühen oder sich mit Policy-Based-Routing (PBR) unter Linux auseinander setzen.
 
= Abschließende Hinweise  =
= Abschließende Hinweise  =
Zeile 372: Zeile 176:
Diese Anleitung gilt ausschließlich für die Verbindung via IPv4. Mit nur wenigen weiteren Handgriffen kann aber auch IPv6 eingebunden werden, siehe hierzu den Artikel "[[PPTP-Tunnel (IPv6) unter Debian-Linux einrichten (Anleitung)|PPTP-Tunnel (IPv6) unter Debian-Linux einrichten]]".  
Diese Anleitung gilt ausschließlich für die Verbindung via IPv4. Mit nur wenigen weiteren Handgriffen kann aber auch IPv6 eingebunden werden, siehe hierzu den Artikel "[[PPTP-Tunnel (IPv6) unter Debian-Linux einrichten (Anleitung)|PPTP-Tunnel (IPv6) unter Debian-Linux einrichten]]".  
-
Wegen der Komplexität gehen wir in diesem Artikel nicht auch Dinge ein wie:  
+
Wegen der Komplexität gehen wir in diesem Artikel nicht auf Dinge ein wie:  
-
*IP-Netz routen  
+
* IP-Netz routen  
-
*Dienste an die neue statische IP binden  
+
* Dienste an die neue statische IP binden  
-
*autoamtisches starten des PPTP-Tunnels beim Rechnerstart
+
* automatischer Start des PPTP-Tunnels beim Systemstart
-
*PBR (Policy Based Routing)
+
* [[PBR (Policy Based Routing)]]
-
Schauen Sie bitte in die entsprechenden FAQ Artikel, oder falls noch nicht vorhanden sprechen Sie uns bitte an: Supportmöglichkeiten
 
[[Category:Access_Anleitungen]][[Category:Access]][[Category:PPTP_(Übersicht)]][[Category:VPN-Tunnel (Tarif)]]
[[Category:Access_Anleitungen]][[Category:Access]][[Category:PPTP_(Übersicht)]][[Category:VPN-Tunnel (Tarif)]]

Version vom 15:56, 1. Jun. 2021

Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian) einen PPTP-Tunnel mit einer statischen IP-Adresse (IPv4) einrichten.

Inhaltsverzeichnis

Schritt 1: Paket installieren

Die folgenden Befehle benötigen teilweise Root-Rechte. Diese können Sie entweder erlangen, indem Sie sich als root anmelden oder "sudo" verwenden.

Zunächst wird das Paket "pptp-linux" benötigt:

apt-get install pptp-linux

Nun gibt es das Verzeichnis /etc/ppp. Hier sind die wichtigsten Config-Files für den PPTP-Tunnel:

  • Verzeichnis "peers": Die wichtigsten Zugangsdaten und Einstellungen je Tunnel
  • Verzeichnis "ip-up.d": Scripte, die beim Tunnelaufbau ausgeführt werden
  • Verzeichnis "ip-down.d": Wird beim Tunnelabbau (zusammenbruch) ausgeführt
  • Datei "chap-secrets": Zugangsdaten für die Tunnelverbindungen

Schritt 2: Grundkonfiguration - peers

Legen Sie mit einem Texteditor im Verzeichnnis /etc/ppp/peers die Datei "portunity" an – in unserem Beispiel verwenden wir vim, Sie können aber jeden anderen Texteditor verwenden.

vim /etc/ppp/peers/portunity

Inhalt: Bitte beachten Sie Wie lauten die Einwahlserver für meinen VPN-Tunnel für die Serveradresse, hier mit Platzhalter "pptp.tpX.tunneleinwahl.de" dargestellt

 ### Verbindungsziel - Portunity-Server
 pty "pptp pptp.tpX.tunneleinwahl.de --nolaunchpppd --nobuffer --timeout 10"
 
 ### PPTP-Loginname, wird im Kundencenter im Tarif angezeigt
 name tunnelXXXXX
 
 ### Nach einer Trennung automatisch neu aufbauen
 persist
 
 ### MTU muss kleiner 1500 sein, da das PPTP-Protokoll selbst ja auch Platz im Paket benötigt.
 mtu 1400
 
 ### Wird an die ip-up / ip-down-Scripte übergeben zur eindeutigen Erkennung
 ipparam portunity
 
 # Terminate after n consecutive failed connection attempts.
 # # A value of 0 means no limit. The default value is 10.
 maxfail 0 
 
 # Soll der komplette Traffic durch den Tunnel geschickt werden? Default-Route!
 # HINWEIS: Gibt es bereits eine Route im System kann diese Option diese Route
 # leider nicht überschreiben, siehe dazu bitte weiter unten
 defaultroute 
 
 #### Diverses
 remotename PPTP
 lock
 noauth
 refuse-eap
 nobsdcomp
 nodeflate
 
 ### IPv6 ermöglichen
 +ipv6
 
 #end


Nun muss das Passwort für den Tunnel noch in der Datei "chap-secrets" im Verzeichnis "/etc/ppp" hinterlegt werden.

vim /etc/ppp/chap-secrets

Inhalt:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
tunnelXXXXX   PPTP    PASSWORT                *
#end

Anstelle "tunnelXXXXX" geben Sie bitte wieder Ihren PPTP-Loginnamen ein und anstelle von "PASSWORT" Ihr PPTP-Passwort, welches Sie vergeben haben – dies ist nicht Ihr Kundencenter-Passwort. Die Bezeichnung PPTP unter "server" muss genauso wie im Script nach "remotename" angegeben werden; Groß-/Kleinbuchstaben werden hier unterschieden.

Sie sollten nun noch festlegen, dass nur der Benutzer "root" Leserechte auf die Datei hat, damit niemand Ihr Passwort auslesen kann. Dies geht mit

chmod 600 /etc/ppp/chap-secrets


Schritt 3: Erster Test des Tunnels

Tunnel aktivieren:

pon portunity

Prüfen, ob das PPP-Device erstellt wurde: 

:~# ip addr show

4: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
    inet 188.246.4.X peer 188.246.4.1/32 scope global ppp0


Schritt 4: Routen

Default-Route setzen? Wenn Sie den kompletten Traffic durch den Tunnel schicken möchten, können Sie eine Defaultroute in den Tunnel setzen. Achten Sie nur darauf, das Ihr Server dann auch nur noch aus dem lokalen Netzsegment und durch den Tunnel erreichbar ist!
Eine Alternative ist PBR (Policy Based Routing), welches Sie anstelle der Defaultroute konfigurieren können.

Route manuell setzen

Die Default-Route kann wie folgt manuell gesetzt werden:

ip -4 route add default dev ppp0

Prüfen Sie bitte mit ip link show, ob der Portunity-Tunnel aktuell tatsächlich "ppp0" heißt. Wird der Tunnel abgebaut, wird die Route automatisch gelöscht!

Route "bootfest" machen

Legen Sie mit einem Texteditor im Verzeichnnis "/etc/ppp/ip-up.d/" die Datei "portunity" an. Diese Datei wird nach erfolgreichem Tunnelaufbau automatisch ausgeführt.

vim /etc/ppp/ip-up.d/portunity

Inhalt:

#!/bin/bash
#
# Hilfe-Text:
# ---------------------------------------------------------------
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty
# $3 The link speed
# $4 Local IP address
# $5 Peer IP address
# $6 Optional "ipparam" value foo
# ---------------------------------------------------------------
 
if [ "$1" = "lo" ]; then
exit 0
fi
 
#if [ "$1" = "ppp0" ]; then
if [ "$6" = "portunity" ]; then
 
echo "`date +%b" "%e" "%H":"%M":"%S` Portunity: PPTP - ipparam: $6 Interface goes up ($1). "\
   "Now adding routing..." >> /var/log/messages
ip -4 route add default dev $1
fi
 
exit 0
# ende der Datei

Die Datei muss natürlich ausführbar sein:

chmod 750 /etc/ppp/ip-up.d/portunity

Bauen Sie nun den Tunnel einmal neu auf, damit die Route gesetzt wird:

poff portunity; pon portunity

Nun können wir testen:

curl "http://meineipv6.de/mro.php?format=plaintext"


Wird die IP-Adresse des PPP-Interface angezeigt, ist alles korrekt konfiguriert.
Wenn dort nicht die IP-Adresse erscheint, welche Ihrem Tunnel zugeordnet ist, läuft der Traffic nicht durch den Tunnel.

Tunnel abschalten:

poff portunity


Abschließende Hinweise

Diese Anleitung gilt ausschließlich für die Verbindung via IPv4. Mit nur wenigen weiteren Handgriffen kann aber auch IPv6 eingebunden werden, siehe hierzu den Artikel "PPTP-Tunnel (IPv6) unter Debian-Linux einrichten".

Wegen der Komplexität gehen wir in diesem Artikel nicht auf Dinge ein wie:

  • IP-Netz routen
  • Dienste an die neue statische IP binden
  • automatischer Start des PPTP-Tunnels beim Systemstart
  • PBR (Policy Based Routing)
Persönliche Werkzeuge