Linuxseite - RAS und mehr  
Home »  PPTP VPN

www.ing-wendler.de  


Inhalt

 

Home

 

Dialin

ISDN

ISDN SuSE

Modem

Proxyarp

Faxmails

PPTP VPN

PPTP MsClient

Virusscanner

SuSE Rescue

Download

 

Links

Impressum

 


 

VPN mit pptpd

 

Wenn zwei Partner über einen Anschluss an das Internet verfügen, ist die wesentliche Voraussetzung für ein VPN via pptp über das Internet schon gegeben Gerade bei gelegentlicher Nutzung, und wenn der externe Client ein Microsoft Betriebssystemen nutzt, ist das das einfachste Verfahren. Man kann sich im lokalen Netz bewegen als sei man vor Ort. Zu bedenken ist aber, dass das pptp Protokoll was die Sicherheit angeht, anderen Protokollen wie z.B. ipsec unterlegen ist

 

Einwahl in ein entferntes Netz mit pptp und MS Client sowie Linux Server

Verfahren

Der Client2 will auf das lokale Netz zugreifen um z.B. auf den Sever1 Daten abzuholen, oder auf dem Client1 eine VNC Session aufzumachen. Dazu muss der Router1 mit dem Internet verbunden sein und der Client2 muss sich ins Internet einwählen. Dank der Volumentarif und T-DSL ist das kein Problem. Nun muss sich der Client2 eine pptp Verbindung zum Server1 aufmachen, da dort sein pptp Partner der pptpd läuft. Dazu verbindet er sich mit dem Router1, der auf Port 1723 eine TCP Weiterleitung auf den Server1 durchführt. Normalerweise kennt der Client die Dialin IP Adresse des Routers1 nicht, da sie nach jeder Einwahl neu vergeben wird. Zu diesem Zweck ist ein DynDns Dienst eingerichtet, oder der Server hinterlegt die Routerip auf der Homepage im Internet. Jetzt kann der Client2 mit Hilfe der Homepage1 die IP Adresse des Router1 ermitteln, sich dorthin verbinden. Am Ende wird er zum Server weitergeleitet. Damit kommt der rot eingezeichneten Tunnel zuStande. Der Client2 bekommt nun eine zusätzliche IP aus dem Zielnetz, mit der er alle Rechner erreicht.

Zu installieren ist das Paket pptpd. und pppd Zu konfigurieren ist:

/etc/pptpd.conf

Der Inhalt der Datei /etc/pptpd.conf ist fast selbsterklärend

Parameter

Beschreibung

speed 115200

 

option /etc/ppp/options.pptp

siehe unten

debug

immer nett

localip 192.168.200.59

Die IP-Aadresse des Servers

remoteip 192.168.200.50-58

Die IP-Adressen der Clients

pidfile /var/run/pptpd.pid

Das File mit der Prozessid

option /etc/ppp/options.pptp

hier sind die weiteren Optionen abgelegt. Der Name findet sich in /etc/pptpd.conf  Hier die Variante für Suse 8.2 mit dem 2.4 er Kernel.

    lock 
    debug 
    noauth 
    nobsdcomp 
    nodeflate 
    +pap 
    +chap 
    +chapms 
    +chapms-v2 
    mppe-40 
    mppe-128 
    mppe-stateless 
    mtu 1492 
    mru 1492 
    lcp-echo-failure 10 
    lcp-echo-interval 10 
    proxyarp 
    

 

Die Optionen +chapms bis mppe-stateless sind zu Verschlüsselung notwendig. Bei Problemen einfach mal rausnehmen und ohne Verschlüsselung probieren. Damit Verschlüsselung funktioniert muss in diesem Fall Module nachgeladen werden könne.

Nun die Variante für SuSE 9.2 mit dem 2.6er Kernel. Das dis Variante kürzer ist, liegt nicht an der Software. Ich habe nur optimiert. Optionen, die in /etc/ppp/options vorhanden sind, brauchen man in /etc/ppp/options.pptp nicht noch mal angeben. Der ganze Zauber ist, das aus +chapms-v2 nun ein require-mschap-v2 wird, und die Verschlüsselung mit mpp mit require-mschap-v2 einzuschalten ist.

    nobsdcomp
    nodeflate
    mtu 1492
    mru 1492
    require-mppe
    require-mschap-v2
    proxyarp
    login
    
 

Bei Verschlüsselung braucht der Kernel noch einige Module. SuSE Nutzer brachen sich nicht darum zu kümmern, da alles vorbereitet ist. Andere User müssen je nach Kernel in die /etc/modules.con  (Kernel 2.4) oder in die /etc/modprobe.conf (Kernel 2.6) schauen.

/etc/modul.conf  (2..4)

    alias ppp-compress-18 ppp_mppe
    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate
    

/etc/modprobe.conf (2.6)

    alias ppp0                ppp_generic
    alias ppp1                ppp_generic
    alias ppp-compress-18     ppp_mppe
    alias ppp-compress-21     bsd_comp
    alias ppp-compress-24     ppp_deflate
    alias ppp-compress-26     ppp_deflate
    

Alles was mppe ist, ist Verschlüsselung. Verwendet man PAP Authentifizierung, bleiben diese Module ungenutzt. Eventuell ist der Kernel neu zu bauen, wenn die notwendigen Module nicht existieren. Suse User haben es da gut, Sie brauchen sich darum nicht zu kümmern. Das ist schon alles. Um die Verbindung aufzubauen, ist als Telefonnummer die WAN IP des Routers1 beim Client2 einzutragen.

Automatisierung, wenn die IP Adresse auf der Homepage liegt.

Die Sache ist nicht sehr komfortabel. IP Adresse aus dem Netz holen, VPN Verbindung Modifizieren, dann Einwählen sind zusammen weit mehr als ein Klick. Besser ist die Verwendung eines Perlscripts auf der Windowsdose. Das Script setzt voraus, dass es ein VPN Eintrag gibt, der Kunde heisst. Dort sind die pptp Einstellungen unter gebracht. Das Script holt sich die fehlende IP Adresse von der Homepage und startet die VPN-Verbindung

    #!/bin/perl -w
    use LWP::Simple;
    $VPN="KUNDE";
    $USER="wiwen";
    $PWD="das_passwort";
    $urlweb="http://www.kunde.privat.t-online.de/wanadr.txt";
     
    sub getwebip
    {
        $webtxt = get($urlweb) . "&0";
        $webtxt =~ /([\d.]+)/;
        $webip = $1;
    }
    # 
    #   Main
    if ( getwebip eq "0")
    {
        print " cant get WEB IP\n";
        exit 1;
    }    
    system ( "rasdial", $VPN, $USER, $PWD, "/PHONE:" . $webip );

In dem File wanadr.txt steht nur die IP Adresse. Mit echo 217.217.217.27 >wanip.txt erhält man ein Beispielfile. Auf der Linuskiste läuft regelmässig ein Scrip. Es testet ob die WAN IP noch mit der Tatsächlichen IP übereinstimmt und macht im Bedarfsfall ein Update. Diese Scripte sind Routerabhängig. Ich habe für einige Rouetr Scripte geschrieben. Darunter ist eins für den SMCVBR, der eine Anmeldung braucht. Ein anderes Script ist für den SMCBR, der ohne Anmeldung die IP-Aadresse anzeigt. Zu finden sind die Scripte im Downloadbereich. Die Scripte für die Router IP sind natürlich über die Crontab regelmässig aufzurufen. Alternativ hört das ISDN Device auf eine bestimmte Telefonnummer. Wen diese Nummer angerufen wird, nimmt niemand ab, aber das Updatescript wird gestartet. Der Eintrag in /etc/isdn/callerid ist:

    [MSN]
    NUMBER = 41
    SI     = 7
    ALIAS  = RASMainPc
    ZONE   = 0
    START  = {
            [FLAG]
            FLAGS   = IR
            PROGRAM = /usr/bin/smcbr.pl
    }

So hinterlegt man die IP Adrese auf der Homepage nur wenn man sie brauchtDiese Anleitung beschreibt die Einrichtung eines Dial-In Servers mit SuSE Linux. Ich habe es mit SuSE Version 8.2 und Version 9.3 durchgeführt. Es sollte sich aber, vom Yast abgesehen, aber leicht auf anderer Distribution übertragen lassen. Hat man das Prinzip verStanden, klappt es auch bei anderen Distributionen oder beim Versionswechsel. Die Adressenvergabe ist ein bisschen tricky durch proxyarp, und hat deshalb ein eigenen Kapitel. Das eigentliche Zusammenclicken geht ziemlich fix. Trotzdem sollen die Konfigurationsdateien im Vordergrund stehen.

 

 

© 2010 by Winfried Wendler   mail: web01 at ing-wendler dot de