Gebruikerstip 36 (april 2004)


HOWTO; PPTPD / Poptop server voor Mandrake Linux 9.x

PPTPD / Poptop server voor Mandrake Linux 9.x
Door: Gerard Ameraal,
bewerkt door Hendrik-Jan Heins,

26-02-2004, PPTPD op Mandrake Linux 9.x v0.71
13-08-2004, update: Firewall config.
Dit document is vrijgegeven onder de voorwaarden van de copyleft/GPL: http://www.gnu.org/copyleft/gpl.html

Deze howto legt uit hoe u een VPN beveiligde tunnel aanlegt met 128 bits encryptie, beter bekend als MPPE compressie voor Mandrake 9.x, om een beveiligde tunnel te bieden voor Linux en MS werkstations naar uw server. Deze howto is niet bedoeld om uit te leggen hoe u SMB beheert, of routers instelt of andere, van dergelijke vragen te beantwoorden. In deze opzet, hebben we een PPTPD server die de standaard server is, en die tevens fungeert als internet gateway. We hebben de PPTPD server ingesteld als de default server en al het verkeer zal worden doorgestuurd naar onze PPTPD server.
Op Mandrake 10.0 werkt PPTP out-of-the-box. U hoeft in Mandrake 10.0 dus alle installatiestappen niet te zetten, u kunt gewoon aan de slag. Met dank aan Onno T. voor deze informatie.

Software Installatie

Zorg ervoor dat urpmi goed is ingesteld, en dat u bent aangemeld als root. U moet nu het volgende, met urpmi (de software manager) installeren:


Ga nu naar: http://www.pbone.net en download de laatste stabiele pptpd rpm. Degene die ik hier gebruikt heb, was pptpd-1.1.3-4.rpm, met nieuwere versies werkte het niet!

De modules instellen

In Mandrake zijn de benodigde kernel modules al als modules met de kernel mee gecompileerd, dus u hoeft geen patches meer toe te passen. Let op: Het is van belang dat u exact doet wat hieronder staat. Gebruik geen andere documenten van internet of die bij PPTPD worden geleverd, want daarmee zal het niet lukken. Ik ben lang bezig geweest om dit alles uit te vinden, en het werkt alleen met deze instellingen.

Open het bestand: /etc/modules en voeg deze regels toe aan het bestand:



Bewaar het bestand.
Open vervolgens een console en geef het commando: "depmod -a" Dit is om de modules direct in te laden. Hierna worden ze bij het opstarten van het systeem ingeladen.

De config bestanden

Nu een zeer lastig deel: ga naar "/etc/pptpd.conf" en gooi het hele bestand leeg. U hebt nu dus een leeg bestand. Bewaar dit. Doe hetzelfde met "/etc/ppp/options" Maak nu een nieuw bestand met de naam: "/etc/ppp/options.pptpd"

Webmin configuratie

Open uw net geïnstalleerde Webmin (meestal op https://127.0.0.1:10000) Login als root en ga naar het tabblad netwerken

en kies de "PPTP VPN Server"

In de sectie "PPP opties bestand" vult u het bestand: "/etc/ppp/options.pptpd" in. In de sectie "IP adressen voor server deel van de verbinding" vult u het IP adres van uw server in (lokaale kant: bijvoorbeeld 192.168.0.1) In de sectie " IP adressen om toe te wijzen aan de clienten" vul je de IP adressen in die de client machines in het interne netwerk mogen gebruiken (bijvoorbeeld: 192.168.0.50-60) Je kunt de rest van de instellingen op de standaard waarden laten staan. klik op de "bewaar" knop.

PPP Accounts

Hier maakt u de gebruikersaccounts aan voor uw PPTPD server en vult u de IP adressen in voor de clienten waar u zich mee kunt aanmelden. Vul dit in zodat het klopt met uw eigen instellingen.

PPP Options

Gebruik webmin niet voor het bewerken van dit bestand, want webmin geeft niet alle mogelijkheden van de PPP options module. Wanneer u geen gebruik maakt van deze mogelijkheden kunt u webmin wel gebruiken. Open het bestand "/etc/ppp/options.pptpd" en zet het onderstaande in dat bestand (hier wordt MS CHAP V-2 gebruikt, en dan alleen met de zwaarste encryptie)



Dit zijn de opties waarmee u zelf kunt testen. Misschien verbetert dit de werking voor uw specifieke situatie:


Firewall

We zijn er nu bijna. Aangezien de PPTPD server ook de standaard default gateway server is voor uw router, moeten we hem nog wel beveiligen. Hiervoor hebben we Shorewall gebruikt, we geven hier alleen de toevoegingen welke nodig zijn voor het te laten werken van de PPTPD server in combinatie met Shorewall. We gaan er hier vanuit dat het segment 192.168.0.0/24 het lokale netwerk is en het 10.0.0.0 het externe net.

Open /etc/shorewall/hosts en voeg hier aan toe:
loc ppp+:192.168.0.0/24

Open /etc/shorewall/interfaces en voeg hier aan toe:
- ppp+ 192.168.0.255

Open /etc/shorewall/modules en verwijder hier (als het er in staat):
loadmodule ip_conntrack_proto_gre
loadmodule ip_conntrack_pptp
loadmodule ip_nat_pptp
loadmodule ip_nat_proto_gre

Open /etc/shorewall/rules en voeg hier aan toe:
ACCEPT net fw tcp 1723 -
ACCEPT net fw 47 -
ACCEPT fw net 47 -
Als het goed is zou nu alles moeten werken, echter is mij opgevallen dat er een probleem is met de uitgaande tunnelconnecties in deze configuratie.Dit wordt veroorzaakt doordat in het opstartscript van PPTPD er (ongevraagd) 2 kernelmodules worden geladen uit eindelijk worden het er zelfs 3 omdat er aan 1 module een dependency vastzit, je kunt dit controleren door met het console commando "lsmod" te kijken of deze modules geladen worden:

Module Size Used by Tainted: P
ip_nat_pptp 2476 0 (unused)
ip_conntrack_pptp 3409 1
ip_conntrack_proto_gre 4021 0 [ip_nat_pptp ip_conntrack_pptp]

om dit ongedaan te maken doen we het volgende:
Open het bestand /etc/rc.d/init.d/pptpd en verwijder de volgende regels:
modprobe ip_conntrack_pptp 1> /dev/null 2>&1
modprobe ip_nat_pptp 1> /dev/null 2>&1
Het beste kun je nu je server laten rebooten en controleren of de modules daadwerkelijk verwijderd zijn, tevens zou nu ook alles moeten werken.

Opmerkingen

Uitgaande PPTPD connecties:
Het is gebleken dat met deze opstelling tenminste 1 stabiele tunnelconnectie per extern adres naar buiten kan worden gelegd.Als je meer verbindingen tegelijk naar 1 extern adres wilt hebben zul je in /etc/shorewall/modules de volgende regels moeten toevoegen:
loadmodule ip_conntrack_proto_gre
loadmodule ip_conntrack_pptp
loadmodule ip_nat_pptp
loadmodule ip_nat_proto_gre
Echter brengt deze actie de stabiliteit van de ingaande verbindingen in gevaar en is dus niet aan te raden !!!

Win2K/XP instellen

Maak een nieuwe verbinding met de verbindingswizard. Vul alles in zoals u nodig heeft. Er is hier maar een ding belangrijk, en dat is het veiligheidstabblad. Kies hier de opties knop. Kies het hoogste beveiligingsniveau in de drop-down box en controleer of ALLEEN MSCHAP V2 is geselecteerd.
Opmerking:
De beide netwerken mogen zich nooit in hetzelfde netwerksegment bevinden, dus het "bellende" station dient ALTIJD in een ander netwerk segment te zijn dan de server, dit is de meest gemaakte fout!
Dit geld uiteraard alleen maar als je zelf "in een netwerk zit".

De Linux PPTP client instellen.

Daar wordt nog aan gewerkt. (Binnenkort hier te vinden ;) ).

Veel plezier met tunnels graven!

Wanneer u aanvullingen, verbeteringen of anderszins heeft op deze howto, kunt u contact opnemen met de schrijvers, of met Passys.

Heeft u vragen of opmerkingen over dit onderwerp? Stuur ons dan een e-mail.



home