Halusin toteuttaa VPN-yhteyden Hartwall Areenan Assembly-verkosta kotikoneelleni, jotta salaamaton liikenne ei kaikuisi WLANissa kaikkien nähtävänä. Harkitsin ensin PPTP- tai L2TP-palvelimen pystyttämistä kotiin. Muutaman HOWTO-dokumentin luettuani kuitenkin oivalsin, että koska kannettavani on Macintosh, ssh-ppp-yhteys ajaisi täsmälleen saman asian, eikä vaatisi lainkaan palomuurien availua tai uusien softien asentelua.

Loin ensin erillisen VPN-käyttäjätunnuksen Linux-palvelimelleni, sallin sille pääsyn ssh:lla asiakaspään avainta käyttäen, sekä annoin oikeuden ajaa pppd:tä roottina. Lisäksi määrittelin iptablesiin MASQUERADE-asetuksen naamioimaan VPN:stä tulevat paketit Linux-palvelimen omiksi paketeiksi:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE

Siinä olikin kaikki palvelinpäähän tarvittava. Sen jälkeen VPN oli valmis käynnistettäväksi Mac OS X:n terminaalista seuraavin komennoin ($SERVER on palvelimen osoite ja $USER on VPN-käyttäjätunnus):

route add $SERVER `netstat -rn|grep ^default|awk '{print $2}'`
/usr/sbin/pppd defaultroute usepeerdns updetach noauth passive \
   pty "ssh $SERVER -l $USER -o Batchmode=yes sudo \
   /usr/sbin/pppd nodetach notty noauth ms-dns 192.168.3.2" \
   ipparam vpn 192.168.3.1:192.168.3.2

Yllä ensimmäinen route-komento lisää suoran reitin palvelimelle, jotta default routen muuttaminen ei katkaise ssh-yhteyttä. Alempi pppd-komento avaa yhteyden ja hoitaa kaikki asetukset kuntoon automaattisesti. Lopuksi yhteyden sulkeminen vastaavasti:

killall pppd
route delete $SERVER

Siinäpä se. Tehkää perässä Windowsilla...