Studenten Net Twente
making the net work

PPTP VPN voor Linux

Auteur: SNT DocuCom

VPN (Virtual Private Networking) wordt gebruikt voor het opzetten van een netwerkverbinding over een andere netwerkverbinding. In dit geval gaat het om het instellen van een VPN verbinding naar de Universiteit Twente, zodat je een IP-adres beginnend met 130.89 verkrijgt, ook als je Internet Service Provider een andere is dan de Universiteit Twente. Je hebt hiervoor twee dingen nodig:

  • Een reeds werkende internetverbinding; let erop dat VPN vanaf Campusnet niet werkt
  • Een Radius account: dit is dezelfde account als je gebruikt voor het ophalen van je gebruiker@groep.utwente.nl mail.


NB: Voor je VPN voor het eerst gebruikt is het noodzakelijk je wachtwoord hier te synchroniseren. Als je wachtwoord niet tenminste 8 karakters lang is, moet je je wachtwoord hier wijzigen.

NB2: Deze handleidingen kunnen wat gedateerd zijn, mocht je er niet uitkomen, probeer dan ook eens de zoekopdracht 'pptp vpn je_linux_distro' in google.

Stappen

Stap 1: Debian

Met een standaard Debian 4.0 (Etch) kernel is dit standaard al aanwezig, maar mocht je een eigen kernel hebben of een oudere distro, dan zijn de volgende opties vereist:

CONFIG_EXPERIMENTAL=y
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m


Vervolgens moeten de modules worden geladen:

# modprobe slhc
# modprobe ppp_generic
# modprobe ppp_async



Installeer de volgende pakketten:

# apt-get install ppp pptp-linux iproute



Tenslotte passen we nog wat configfiles aan:

/etc/ppp/options.pptp
lock
persist
noauth
nobsdcomp
nodeflate

/etc/ppp/peers/utwente-vpn
pty "pptp pptp.utwente.nl --nolaunchpppd"
#vul hier je studentennummer in
name s1234567
remotename PPTP
file /etc/ppp/options.pptp
ipparam utwente-vpn

/etc/ppp/ip-up.d/route
#!/bin/sh

if [ "${PPP_IPPARAM}" = "utwente-vpn" ] ; then
/sbin/ip route add 130.89.0.0/16 via ${PPP_LOCAL}
fi

/etc/ppp/ip-down.d/route
#!/bin/sh

# vul hier je eigen default gateway in
if [ "${PPP_IPPARAM}" = "utwente-vpn" ] ; then
/sbin/ip route del 130.89.0.0/16 via ${PPP_LOCAL}
fi


Maak vervolgens deze twee files executable:

# chmod 755 /etc/ppp/ip-up.d/route
# chmod 755 /etc/ppp/ip-down.d/route



Voeg tenslotte nog je username en wachtwoord toe aan de volgende file:

/etc/ppp/chap-secrets
s1234567 PPTP mamaislief


(Waarbij je s1234567 en mamaislief door je eigen studentennummer en emailwachtwoord moet vervangen).
Als het goed is, kun je je VPN verbinding nu opstarten met het volgende commando:

pon utwente-vpn



Na enige tijd (ongeveer een halve minuut) zal je in ifconfig zien dat er een ppp adapter bij is gekomen:

ppp0      Link encap:Point-to-Point Protocol
net addr:130.89.6.68 P-t-P:130.89.1.223 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1



De scripts zullen er voor zorgen dat je routering dusdanig wordt gewijzigd, dat alle pakketjes die naar 130.89.0.0/16 moeten, door de VPN verbinding gaan.
Wil je de verbinding verbreken, tik dan het volgende commado in:

poff utwente-vpn


De route tabel wordt dan weer hersteld.
Om de logging van je link te bekijken, probeer dan het commando:

plog -f

Voor verdere informatie kun je terecht bij man ppp, man pptp en google linux.

 

Stap 2: SuSE

Let op: deze handleiding is van toepassing op SuSE Linux 8.0. Heb je een andere linux distributie, dan is het aannemelijk dat de installatieprocedure anders $
Deze handleiding gaat uit van de SuSE kernel 2.4.18 (rpm k_deflt-2.4.18-xx)

Vervolgens passen we enkele configfiles aan:

/etc/ppp/options.pptp
persist
noauth
nobsdcomp
nodeflate

/etc/ppp/peers/utwente-vpn
pty "pptp pptp.utwente.nl --nolaunchpppd"
#vul hier je studentennummer in
name s1234567
remotename utwente-vpn.utwente.nl
require-chap

etc/ppp/options.pptp
pparam utwente-vpn

/etc/ppp/ip-up.local
#!/bin/sh

# vul hier je eigen default gateway in
GATEWAY="1.2.3.4"
if [ "${IPPARAM}" = "utwente-vpn" ] ; then
/sbin/route del ${REMOTEIP} gw $GATEWAY
/sbin/route del -net 130.89.0.0/16 gw ${LOCALIP}
fi



Voeg tenslotte nog je username en wachtwoord toe aan de volgende file:

/etc/ppp/chap-secrets
s1234567 PPTP mamaislief


(Waarbij je s1234567 en mamaislief door je eigen studentennummer en emailwachtwoord moet vervangen). Als het goed is, kun je je VPN verbinding nu opstarten met het volgende commando:

pppd call utwente-vpn



Na enige tijd (ongeveer een halve minuut) zal je in ifconfig zien dat er een ppp adapter bij is gekomen:

ppp0      Link encap:Point-to-Point Protocol
inet addr:130.89.6.68 P-t-P:130.89.1.223 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1



De scripts zullen er voor zorgen dat je routering dusdanig wordt gewijzigd, dat alle pakketjes die naar 130.89.0.0/16 moeten, door de VPN verbinding gaan.
Om de logging van je link te bekijken, probeer dan het commando:

tail -f /var/log/messages



Voor verdere informatie kun je terecht bij man ppp, man pptp en google linux.

 

Stap 3: Gentoo

Let op: deze handleiding is van toepassing op Gentoo Linux (getest op 2004.0). Heb je een andere linux distributie, dan is het aannemelijk dat de installatieprocedure anders is (omdat deze handleiding gebruik maakt van scripts die bij Gentoo Linux).

Om utwente-vpn onder Gentoo Linux te laten werken, zijn er een aantal kernelopties vereist:

CONFIG_EXPERIMENTAL=y
CONFIG_PPP=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y



Naar keuze en waar mogelijk mag het ook al module, m in plaats van y Vervolgens moeten de modules worden geladen:

# modprobe slhc
# modprobe ppp_generic
# modprobe ppp_async



Ook moeten er wat packages geinstalleerd worden:

# emerge ppp pptpclient



Tenslotte passen we nog wat configfiles aan:

/etc/ppp/options.pptp
persist
noauth
nobsdcomp
nodeflate

/etc/ppp/peers/utwente-vpn
pty "pptp pptp.utwente.nl --nolaunchpppd"
#vul hier je studentennummer in
name s1234567
remotename utwente-vpn.utwente.nl
require-chap
file /etc/ppp/options.pptp
ipparam utwente-vpn

/etc/ppp/ip-up
#!/bin/sh

# vul hier je eigen default gateway in
GATEWAY="1.2.3.4"
if [ "$6" = "utwente-vpn" ] ; then
/sbin/route add $5 gw $GATEWAY
/sbin/route del $5 dev $1
/sbin/route add -net 130.89.0.0/16 gw $4
fi

/etc/ppp/ip-down
#!/bin/sh

# vul hier je eigen default gateway in
GATEWAY="1.2.3.4"
if [ "$6" = "utwente-vpn" ] ; then
/sbin/route del $5 gw $GATEWAY
/sbin/route del -net 130.89.0.0/16 gw $4
fi



Maak vervolgens deze twee files executable:

# chmod 755 /etc/ppp/ip-up
# chmod 755 /etc/ppp/ip-down



Voeg tenslotte nog je username en wachtwoord toe aan de volgende file:

/etc/ppp/chap-secrets
s1234567 pptp.utwente.nl mamaislief



(Waarbij je s1234567 en mamaislief door je eigen studentennummer en emailwachtwoord moet vervangen).
Als het goed is, kun je je VPN verbinding nu opstarten met het volgende commando:

pon utwente-vpn



Na enige tijd (ongeveer een halve minuut) zal je in ifconfig zien dat er een ppp adapter bij is gekomen:

ppp0      Link encap:Point-to-Point Protocol
inet addr:130.89.6.68 P-t-P:130.89.1.223 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1



De scripts zullen er voor zorgen dat je routering dusdanig wordt gewijzigd, dat alle pakketjes die naar 130.89.0.0/16 moeten, door de VPN verbinding gaan.
Wil je de verbinding verbreken, tik dan het volgende commado in:

poff utwente-vpn



De route tabel wordt dan weer hersteld.
Voor verdere informatie kun je terecht bij man ppp, man pptp en google linux.

Stap 4: FreeBSD

Voor de VPN is het "netgraph" gedeelte in de kernel of als modules vereist. Draai je een "originele" (GENERIC) kernel, hoef je niets aan te passen.

Verder is voor de VPN is een softwarepakket vereist, genaamd "mpd". Installeer deze:

cd /usr/ports/net/mpd && make install clean



Ook zijn er een aantal configfiles nodig (waarbij "s123456789" je loginnaam is en "mamaislief" je wachtwoord):

/usr/local/etc/mpd/mpd.conf
default:
        load vpn

vpn:
        new -i ng0 vpn vpn
        set iface disable on-demand
        set iface idle 0
# disconnect the client after 8 hours
        set iface session 28800
        set bundle disable multilink
        set bundle authname "s123456789"
        set bundle password "mamaislief"
        set link no acfcomp protocomp
        set link no pap
        set link yes chap
        set link mtu 1460
        set link enable no-orig-auth
        set link keep-alive 10 75
        set ipcp no vjcomp

        set iface up-script /usr/local/etc/mpd/up.sh
        set iface down-script /usr/local/etc/mpd/down.sh

        set ccp yes mpp-e40
        set ccp yes mpp-e128
        set bundle enable crypt-reqd
        set ccp yes mpp-stateless
        open

/usr/local/etc/mpd/mpd.links
vpn:
        set link type pptp
        set pptp peer pptp.utwente.nl
 set pptp enable originate incoming outcall /usr/local/etc/mpd/up.sh #!/bin/sh GATEWAY=1.2.3.4 route delete $4 route add $4 $GATEWAY route add -net 130.89 -iface $1 /usr/local/etc/mpd/down.sh #!/bin/sh route delete 130.89.1.223



Stel de juiste permissies in voor de bestanden:

# chmod 600 /usr/local/etc/mpd/mpd.conf
# chmod 755 /usr/local/etc/up.sh
# chmod 755 /usr/local/etc/down.sh



Je start de VPN met het commando "mpd". Na enige tijd zal in je ifconfig zien dat er een adapter bij is gekomen: "ng0".

Alle scripts zorgen ervoor dat de juiste routes worden gekozen waar nodig. Mocht je achter een firewall zitten moet je wel de inkomende pakket met protocol 47 doorlaten.

De VPN is af te sluiten door "mpd" af te sluiten, dmv CTRL-C of een kill.

Stap 5: Kvpnc

Kvpnc is een grafische client die bij KDE geleverd wordt. Het makkelijkst is om even de settings te downloaden en deze te importeren (KVpnc -> Import settings file).

Hierna moeten we nog even de routes aanpassen: Ga naar Settings -> KVpnc settings -> Profile -> Network - > Routes.

Voor gebruik van de universiteitsbibliotheek: Verander "Keep default route" in "Replace network route"

Voor overig gebruik: Zet een vinkje bij "Use additional network routes". Klik vervolgens op "Add route". Hier vul je als remote network in: 130.89.0.0/16, met als interface ppp0 (het use gateway laat je leeg).

Partners

  • ICTS
  • Universiteit Twente

Contact

SNT Helpdesk
Citadel H128
Openingstijden:

  • 10:00 - 17:00
(053) - 489 3266
helpdesk@snt.utwente.nl
SNT Helpdesk
@SNTHelpdesk

SNT Kantoor
Bastille 317
bestuur@snt.utwente.nl

Postadres
Universiteit Twente tav SNT
Bastille 317
Postbus 217
7500 AE Enschede