VPN Howto door Piethein Strengholt

versie 0.81

Met deze korte Howto leg ik uit hoe je een VPN verbinding kan opbouwen met bv Windows 2000 machines over het internet. Ik maak gebruik van MSchapv2 (het protocol wat ook standaard in windows zit). Ik ga er van uit dat je voldoende kennis van Netwerken, VPN en de linux-kernel hebt.

Installatie PPPD met MSCHAPv2 & MPPE support:

wget http://wlan.informatik.uni-bremen.de/doku/debian/download/sonstiges/ppp-2.4/ppp-2.4.1-mppe.tar.gz

tar zxvf ppp-2.4.1-mppe.tar.gz

wget ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-0.9.0b.tar.gz
tar zxvf SSLeay-0.9.0b.tar.gz

cp SSLeay-0.9.0b/crypto/rc4/rc4.h ppp-2.4.1-openssl0.9.6mppe-MSCHAPv2fix/linux/
cp SSLeay-0.9.0b/crypto/rc4/rc4_enc.c ppp-2.4.1-openssl0.9.6mppe-MSCHAPv2fix/linux/

cd ppp-2.4.1-openssl0.9.6mppe-MSCHAPv2fix

./configure
make
make install
cp pppd/pppd /usr/sbin/

Nieuwe kernel compilen met mppe-ppp support:

cd /usr/src

Maak symbolische link aan als deze er nog niet was (anders misschien een idee om de een nieuwe kernel te installen)

ln -s /usr/src/linux-2.4.20 /usr/src/linux

wget http://www.ing-steen.se/share/unix/net/vpn/linux-2.4.16-openssl-0.9.6b-mppe.patch.gz
gunzip linux-2.4.16-openssl-0.9.6b-mppe.patch.gz

mv linux-2.4.16-openssl-0.9.6b-mppe.patch linux
cd linux
patch -p1 < linux-2.4.16-openssl-0.9.6b-mppe.patch
make menuconfig

Zorg ervoor dat bij network-device-support alle ppp onderdelen zijn aangefinkt!

make dep && make clean && make bzImage && make install && make modules && make modules_install
cd arch/i386/boot/
mv bzImage /boot/vmlinuz-2.4.20
pico /etc/lilo.conf
lilo
reboot

Installatie poptop:

cd /usr/src

wget http://switch.dl.sourceforge.net/sourceforge/poptop/pptpd-1.1.3-20021009.tar.gz
tar -zxvf
pptpd-1.1.3-20021009.tar.gz
cd
pptpd-1.1.3-20021009.tar.gz
./configure
make
make install
cp samples/pptpd.conf /etc/

Nu moeten er een aantal files worden geedit. Dit om er voor te zorgen dat poptop juist werkt. Instellingen zoals wachtwoorden users en ip-adressen worden hier doorgevoerd. Meer informatie op de toppop site.

pico /etc/ppp/chap-secrets:

erhnam * wachtwoord *

pico /etc/pptpd.conf:

speed 115200 #Speed of the Interface.
option /etc/ppp/options.pptpd #Options files to be used by pppd
debug #put all the debugging mesages in /var/log/messages.
localip 192.168.254.201 #This is the localip. Also a range can be specified.
remoteip 192.168.254.200 #This is the remoteip. Also a range can be specified.
listen 131.193.50.184 #This is the interface you should listen to honor requests.

pico /etc/ppp/options.pptpd:

name *
lock
mtu 1450
mru 1450
proxyarp
auth
+chap
# +chapms #This one is optional and my be omitted.
+chapms-v2
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 3
lcp-echo-interval 5
deflate 0
mppe-128
mppe-40
mppe-stateless


pico /etc/modules.conf:

alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-18 ppp_mppe
alias ppp-comress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

reboot

Laatste stappen:

Na de reboot moet de volgende modules worden geladen:

/sbin/modprobe ppp_async
/sbin/modprobe ppp_generic
/sbin/modprobe ppp_mppe
/sbin/modprobe slhc


Start daarna de poptop demon met het volgende commando:

pptpd -d

Vergeet niet TCP poort 1723 and protocol GRE (47) open te zetten in de firewall:
Mijn netwerkkaart aan het internet hangt aan eth1,

iptables -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth1 -p 47 -j ACCEPT
iptables -A OUTPUT -o eth1 -p 47 -j ACCEPT

Nu kan je Windows configureren met Windows VPN client with MSCHAPv2 encryption over PPTP
verbinden met gebruiker 'erhnam' en wachtwoord 'wachtwoord'

Als het goed is moet VPN dan werken. Maak een nieuwe verbinding aan in windows en verbind naar je server. (let er wel op dat je eventuele internet / bestaande verbinding dan tijdelijk wegvalt)

Todo:

# op de interface van lokale netwerk proxy_arp activeren
echo 1 /proc/sys/net/ipv4/conf/eth1/proxy_arp

ifconfig eth0:0 10.20.0.1

iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

Windows 2000 Client Configuration

Links:

http://allserv.rug.ac.be/helpdesk/aansluiten/vpn/vpn-Linux-installatie.html