PPTP-Tunnel (IPv4) unter Debian-Linux einrichten (Anleitung)
Aus Portunity Wiki
(→STOP - Script) |
|||
Zeile 27: | Zeile 27: | ||
### PPTP - Loginname | ### PPTP - Loginname | ||
- | name | + | name tunnelXXXXX |
### Nach einer Trennung automatisch neu aufbauen | ### Nach einer Trennung automatisch neu aufbauen | ||
Zeile 63: | Zeile 63: | ||
''Mit "'''ESC ESC :wq ENTER'''" speichern und beenden Sie den vi-Editor.'' | ''Mit "'''ESC ESC :wq ENTER'''" speichern und beenden Sie den vi-Editor.'' | ||
- | Anstelle " | + | Anstelle "tunnelXXXXX" geben Sie bitte Ihren PPTP-Loginnamen ein. |
Nun muss das Passwort für den Tunnel noch in der Datei "'''chap-secrets'''" im Verzeichnis "'''/etc/ppp'''" hinterlegt werden. | Nun muss das Passwort für den Tunnel noch in der Datei "'''chap-secrets'''" im Verzeichnis "'''/etc/ppp'''" hinterlegt werden. | ||
Zeile 73: | Zeile 73: | ||
<source lang="text"># Secrets for authentication using CHAP | <source lang="text"># Secrets for authentication using CHAP | ||
# client server secret IP addresses | # client server secret IP addresses | ||
- | + | tunnelXXXXX PPTP PASSWORT * | |
#end</source> | #end</source> | ||
- | Anstelle "''' | + | 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!) |
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, das nur "root" Leserechte auf die Datei hat, damit niemand Ihr Passwort auslesen kann. Dies geht mit | ||
Zeile 292: | Zeile 292: | ||
noauth # (from /etc/ppp/peers/portunity) | noauth # (from /etc/ppp/peers/portunity) | ||
refuse-eap # (from /etc/ppp/peers/portunity) | refuse-eap # (from /etc/ppp/peers/portunity) | ||
- | name | + | name tunnelXXXXX # (from /etc/ppp/peers/portunity) |
remotename PPTP # (from /etc/ppp/peers/portunity) | remotename PPTP # (from /etc/ppp/peers/portunity) | ||
# (from /etc/ppp/peers/portunity) | # (from /etc/ppp/peers/portunity) | ||
Zeile 321: | Zeile 321: | ||
sent [LCP EchoRep id=0x0 magic=0xcad60176] | sent [LCP EchoRep id=0x0 magic=0xcad60176] | ||
rcvd [CHAP Challenge id=0x22 <fda0cddf723f723fd144ebad8fcf6d6a249dd9f99737f1>, name = "pptpd"] | rcvd [CHAP Challenge id=0x22 <fda0cddf723f723fd144ebad8fcf6d6a249dd9f99737f1>, name = "pptpd"] | ||
- | sent [CHAP Response id=0x22 <e5d7907295f40bb49f272291dbdccde3>, name = " | + | sent [CHAP Response id=0x22 <e5d7907295f40bb49f272291dbdccde3>, name = "tunnelXXXXX"] |
rcvd [LCP EchoRep id=0x0 magic=0x92d64869] | rcvd [LCP EchoRep id=0x0 magic=0x92d64869] | ||
rcvd [CHAP Success id=0x22 ""] | rcvd [CHAP Success id=0x22 ""] |
Version vom 15:24, 25. Mär. 2013
Diese Anleitung zeigt Ihnen in wenigen Schritten, wie Sie unter Linux (hier: Debian etch) einen PPTP - Tunnel mit einer statischen IP-Adresse (IPv4) einrichten.
Inhaltsverzeichnis |
Schritt 1: Paket installieren
Loggen Sie sich als "root" an Ihrem Server / Gateway ein und installieren Sie folgendes Debian Paket: "pptp-linux"
apt-get install pptp-linux
Nun gibt es das Verzeichnis "/etc/ppp". Hier sind die wichtigsten Config-Files für den PPTP-Tunnel. Ein kleines Was ist was:
- Verzeichnis: "peers" => Die wichtigsten Zugangsdaten und Einstellungen je Tunnel
- Verzeichnis: "ip-up.d" => Wird beim Tunnelaufbau ausgeführt (IPv4)
- Verzeichnis: "ip-down.d" => Wird beim Tunnelabbau (zusammenbruch) ausgeführt (IPv4)
- Datei: "chap-secrets" => Tunnelpasswörter
Schritt 2: Grundkonfiguration - peers
Legen Sie mit Ihrem Lieblingseditor im Verzeichnnis "/etc/ppp/peers" die Datei "portunity" an.
vi /etc/ppp/peers/portunity
Nun einmal "i" (kleines I für insert) drücken, um in den Einfügemodus zu wechseln.
Inhalt:
### Verbindungsziel - Portunity Server pty "pptp pptp.ffm.portunity.de --nolaunchpppd --nobuffer --timeout 10" ### PPTP - Loginname name tunnelXXXXX ### Nach einer Trennung automatisch neu aufbauen persist ### MTU muss kleiner 1500 sein, da das PPTP-Protokoll ein TCP Paket vergrössert 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 #### Diese Option kann auf älteren Linux Systemen dazu führen das der Tunnel nicht aufgebaut wird. # Dann bitte einfach auskommentieren oder das + durch ein - ersetzen um IPv6 zu Deaktivieren. => #+ipv6 +ipv6 #end
Mit "ESC ESC :wq ENTER" speichern und beenden Sie den vi-Editor.
Anstelle "tunnelXXXXX" geben Sie bitte Ihren PPTP-Loginnamen ein.
Nun muss das Passwort für den Tunnel noch in der Datei "chap-secrets" im Verzeichnis "/etc/ppp" hinterlegt werden.
vi /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. Nicht Ihr ISP-Suite Passwort!)
Sie sollten nun noch festlegen, das nur "root" Leserechte auf die Datei hat, damit niemand Ihr Passwort auslesen kann. Dies geht mit
chmod 600 /etc/ppp/chap-secrets
Besonderheit: Wir kennen natürlich nicht Ihren Rechner / Server, aber wir gehen davon aus, das Sie eine Firewall laufen haben. Die Firewall muss das Protokoll "GRE" und die Kommunikation zu unseren PPTP-Servern [TCP, UDP und Port 1723] durch-/zulassen!
Schritt 3: Erster Test des Tunnels
Tunnel aktivieren:
pon portunity
ifconfig eth0 .... 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)
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!
Route manuell setzen
Die Default-Route kann wie folgt manuell gesetzt werden:
route add -net 0.0.0.0/0 ppp0
Prüfen Sie bitte mit ifconfig, ob der portunity-Tunnel aktuell "ppp0" ist. Die Nummer kann sich schon mal ändern! z.B. ppp1. Wird der Tunnel abgebaut, wird die route automatisch gelöscht!
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.
vi /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 ttyS1 # $3 The link speed 38400 # $4 Local IP number 12.34.56.78 # $5 Peer IP number 12.34.56.99 # $6 Optional ``ipparam'' value foo # --------------------------------------------------------------- # don't bother to restart postfix when lo is configured. 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 goeas up ($1). "\ "Now adding routing..." >> /var/log/messages route add -net 0.0.0.0/0 $1 fi exit 0 # ende der Datei
Die Datei muss natürlich ausführbar sein:
chmod 750 /etc/ppp/ip-up.d/portunity
Erster Datentest: Bauen Sie nun den Tunnel einmal neu auf, damit die Route gesetzt wird:
poff portunity pon portunity
Nun können wir testen:
w3m http://www.portunity.de/ip
Wenn so etwas erscheint, läuft der Traffic nicht durch den Tunnel:
Ihre IP-Adresse lautet: 88.77.51.xx Hostname: dslb-088-051-023.pool.xxxx.net
Es muss Ihre Tunnel-IP ausgegeben werden dann läuft der Traffic durch den Tunnel:
Ihre IP-Adresse lautet: 188.246.4.x Hostname: meinptr.meinedomain.de
Tunnel abschalten:
poff portunity
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:
vi /etc/ppp/portunity-pptp-up.sh
Inhalt:
#!/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
Die Datei muss natürlich ausführbar sein:
chmod 750 /etc/ppp/portunity-pptp-up.sh
STOP - Script
Und für das Stop-Script legen wir eine "down"-Datei an:
vi /etc/ppp/portunity-pptp-down.sh
Inhalt:
#!/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
chmod 750 /etc/ppp/portunity-pptp-down.sh
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", da nur eine eingebaut ist, sonst wissen Sie bestimmt wie Sie das prüfen.
vi /etc/network/interfaces
Inhalt:
# ... 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 ...
Wichtige Hinweise:
- Seien Sie bitte sehr umsichtig beim Bearbeiten dieser Datei
- erstellen Sie sich zuvor besser eine Sicherungskopie "cp /etc/network/interfaces /etc/network/interfaces_sich"
- Die IP-Adressen sind Beispiele. Sie werden 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:
pon portunity
pon portunity debug dump logfd 2 nodetach
Musterausgabe:
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
- ZUM ABBRUCH DES TUNNELS: STRG + C *
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
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. Bitte haben Sie auch Verständnis dafür, das Portunity Ihnen nur bis zu einem gewissen Maß kostenlos helfen können.
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:
not replacing existing default route via 217.144.132.x
Dann müssen Sie ein ip-up Script bemühen oder sich mit Policy-Based-Routing (PBR) unter Linux auseinander setzen.
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 auch Dinge ein wie:
- IP-Netz routen
- Dienste an die neue statische IP binden
- autoamtisches starten des PPTP-Tunnels beim Rechnerstart
- PBR (Policy Based Routing)
Schauen Sie bitte in die entsprechenden FAQ Artikel, oder falls noch nicht vorhanden sprechen Sie uns bitte an: Supportmöglichkeiten