Gentoo L2TP/IPSec PSK VPN Client

VPN çözümü olarak L2TP/IPSec kullanan Gentoo Linux kullanıcıları için kısaca client yapılandırma adımları:

  1. İlk olarak 'portage' ağacımızı güncelleyelim.

# emerge --sync veya # emerge-webrsync

  1. Gerekli olan paketleri kuralım."openswan ve xl2tpd"

# emerge openswan xl2tpd

NOT: VPN bağlantısı(örnek:authentication,encryption,compression gibi) için kernel'de gerekli destekleri vermek gerekmektedir.Aşağıdaki seçenekleri kernel konfigürasyonunuzda aktif edip etmediğinizi kontrol edin.

CONFIG_INET_AH=y CONFIG_INET_ESP=y CONFIG_INET_IPCOMP=y CONFIG_NET_KEY=y CONFIG_XFRM_IPCOMP=y CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y

  1. Paket kurulumları bittikten sonra VPN bilgilerimize göre konfigürasyonları yapmaya başlayalım.Aşağıda örnek VPN sunucu ve istemci bilgileri verilmiş ve bu bilgilere göre ayarlamalar yapılmıştır.Sizde kendi VPN sunucu ve istemci bilgilerinize göre o kısımları değiştiriniz.

VPN Sunucu Public IP: 195.202.46.45 VPN Sunucu Local IP: 10.1.40.40 ##### Firewall arkasındaki iç IP'si.Tabiki eğer NAT yapılıp,iç IP'si varsa. Client Local IP: 192.168.2.80
Interface: wlan0 ##### Kablosuz Arabirimi

"/etc/ipsec.conf" dosyasını aşağıdaki gibi düzenleyin.(Kendi IP ve arayüz bilgilerinize göre değiştirmeyi unutmayın!)

config setup virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12 nat_traversal=yes protostack=netkey oe=no plutoopts="--interface=wlan0" conn L2TP-PSK authby=secret pfs=no auto=add keyingtries=3 dpddelay=30 dpdtimeout=120 dpdaction=clear rekey=yes ikelifetime=8h keylife=1h type=transport left=192.168.2.80 leftnexthop=%defaultroute leftprotoport=17/1701 right=195.202.46.45 rightid=10.1.40.40 rightprotoport=17/1701

Burada "rightid=10.1.40.40" şeklinde VPN sunucumuzun Firewall arkasındaki IP bilgilerini "INVALID_ID" hatası almamaniz için girmeniz gerekmektedir.Tekrar not düşeyim eğer Firewall arkasında ve NAT'lanmışsa gerek vardır."/etc/ipsec.conf" dosyasını düzenledikten sonra daha önce size verilen IPSEC Pre-Shared keyi "/etc/ipsec.secrets" dosyasını oluşturarak aşağıdaki gibi girelim:

"/etc/ipsec.secrets"

192.168.2.80 10.1.40.40 : PSK "vpn_sunucunuzun_secret_keyi"
  1. Bu aşamada 'portage' ile kurulumunu yaptığımız "xl2tpd" paketinin init scripti küçük bir eksikle gelmektedir.Bu eksikliği manuel kendimiz tamamlayalım.

"/etc/init.d/xl2tpd" dosyasini açın ve

start() { checkconfig || return 1

satırından sonra aynı girintide aşağıdaki satırları ekleyin.

    <code>if !([ -f /var/run/xl2tpd/l2tp-control ]); then
            mkdir -p /var/run/xl2tpd
            touch /var/run/xl2tpd/l2tp-control
    fi</code>

Şu şekilde görünmeli;

start() { checkconfig || return 1

############l2tp-control dosyasi olusturmak icin eklendi.
    if !([ -f /var/run/xl2tpd/l2tp-control ]); then
            mkdir -p /var/run/xl2tpd
            touch /var/run/xl2tpd/l2tp-control
    fi
    ebegin "Starting xl2tpd"
    start-stop-daemon --start --quiet --exec /usr/sbin/xl2tpd
    eend $?

}

ve dosyamızı kaydedip kapatalım.

  1. "/etc/xl2tpd/xl2tpd.conf" dosyasını aşağıdaki gibi satırları ekleyip kaydedelim.
[lac vpn-connection] lns = 195.202.46.45 ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd.client length bit = yes
  1. "/etc/ppp/options.l2tpd.client" dosyasını aşağıdaki gibi satırları ekleyip kaydedelim.Dosyanin son iki satırında bulunan 'name' ve 'password' satırlarına VPN erişimi için kullanacağınız kullanıcı adı ve parolanızı giriniz.
ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth idle 1800 mtu 1410 mru 1410 defaultroute usepeerdns debug lock connect-delay 5000 name vpnkullaniciadi password vpnerisimparolasi
  1. Servisleri başlatalım.

# /etc/init.d/ipsec start

/etc/init.d/xl2tpd start

  1. Gerekli ayarlamalar bitti.VPN bağlantısını aşağıdaki komutları vererek başlatalım;

# ipsec auto --up L2TP-PSK

echo "c vpn-connection" > /var/run/xl2tpd/l2tp-control

  1. "ifconfig,ip link" gibi komutlarla 'ppp' arayüzünün aktif olup olmadığını ve IP alıp almadığını kontrol edin.

  2. Buraya kadar sorunsuz ise routing işlemlerine geçelim.Routing işlemlerini birkaç farklı şekilde yapabiliriz.

Sadece belli IP'leri ya da tek IP'yi VPN ağınıza yönlendirmek isteyebilirsiniz.Örnek olarak sadece 10.1.0.0/16 şeklindeki IP bloğunu VPN ağına yönlendirmek isteyebilirsiniz.Bunun için aşağıdaki gibi routing yapabiliriz.

route add -net 10.1.0.0/16 gw 10.1.40.40

Eğer tüm trafiği VPN üzerinden geçirmek istersek(bu aşama biraz karmaşık gelebilir ama değil!) aşağıdaki gibi routing yapabiliriz;

# route add 195.202.46.45 gw 192.168.2.1 wlan0

Burada "195.202.46.45" VPN sunucumuzun Public IP'si."192.168.2.1" ise internete bağlı olduğumuz öntanımlı ağ geçidimiz(Kendi ağ geçidinizi öğrenmek için # route -n |grep "^0.0.0.0" |awk '{print $2}' komutunu kullanabilirsiniz.)"wlan0" ise internete bağlı olduğumuz arabirimimiz.Yukardaki komutu verdikten sonra mevcut öntanımlı ağ geçidimizi routing tablosundan silelim.

route del default gw 192.168.2.1

ve "ppp" arayüzünde gördüğümüz VPN sunucunun IP adresini öntanımlı ağ geçidi olarak ayarlayalım.

route add default gw 10.1.40.40

Bu adımdan sonra tüm trafiği VPN üzerinden geçirebilirsin.

11.VPN bağlantısını kesmek için;

# ipsec auto --down L2TP-PSK

echo "d vpn-connection" > /var/run/xl2tpd/l2tp-control

/etc/init.d/ipsec stop

/etc/init.d/xl2tpd stop

route del 195.202.46.45 gw 192.168.2.1 wlan0

route add default gw 192.168.2.1

Comments