Debian Linux ile L2tpd Ipsec Vpn server kurulumu

Kuruluma geçmeden önce belirtmek isterim ki bu sistemi kurabilmek  için tam 1 hafta çalıştım.Pek çok kez başarısızlıkla sonuçlandı.Ipsec vpn kurulumunda hatalar veya problemler sunucudan kaynaklanmayabiliyor.Bu da boşuna debelenmenize sebep oluyor.

Örneğin ben bu kurulumu Debian Linux 6 ‘da yapabildim.Bundan önce Ubuntu Server 11 (i386,x64) ve Ubuntu 10.04.1 (i386,x64) LTS’de denedim.Yani kurulumu tamamlamak için toplam 5 kez linux kurmak zorunda kaldım.Bunun sebebi tahminimce l2tpd servisi ile OS kernel uyumsuzluğu veya openswan ‘ın kullandığı kernel modullerinin yine OS kernel ile tam uyumlu çalışmaması.

Eğer böyle bir sistem kullanmak istiyorsanız muhtemelen windows istemcilerle vpn yapmak isteyeceksiniz.Bu durumda ipsec/l2tpd vpn bağlantısı bakımından Windows Xp,Vista veya Windows 7 ‘nin de farklılıklar gösterdiğini görebilirsiniz.

Tecrübe ettiğim diğer bir husus da ADSL modem.Ben evimde zxyel 660 prestige modem kullanıyorum.Piyasadaki modemlere göre eski fakat iyi cihazlardan biri.Fakat l2tp/ipsec vpn bağlantımı sunucuya ulaştıramıyor.Yani istek modemden dışarı çıkmıyor.Belki bir firmware ile çözülebilir.

Son olarak söyleyeceğim şey,kurulumu aynen benim gibi yapsanız bile sistemin çalışmama olasılığının her zaman mevcut olması.

Bu kadar gereksiz sözden sonra kurulum ortamına geçeyim.

 

Sunucu ve istemci altyapısı

Sunucu ve istemci Vmware üzerinde çalışmaktadır.

Debian Linux 6 Kernel 2.6.32-5-686 üzerinde Openswan (2.6.28+dfsg-5) + Xl2tpd (1.2.7+dfsg-1)

Sunucunun iki etherneti var.Biri real ip diğer lokal ip ye sahip.

İstemci Windows 2008 R2 x64

 

Kurulum

İşletim sisteminin kurulumunu en basit haliyle tamamladıktan sonra ethernetlerinize ip adreslerinizi atadıktan sonra paketleri kuralım.

(Burda önemli bir nokta,eğer sunucunuz direk real ip ile internete bağlanmıyorsa,bir modem veya firewall arkasında bulunuyorsa ipsec ayarlarını değiştirmek zorunda kalabilirsiniz.)

 

Paketleri apt ile kuruyoruz.

Konsolda;

apt-get install openswan xl2tpd

Bu komutu verdikten sonra ipsec x.509 ile ilgili bir soru ile karşılaşacaksınız.Buna hayır cevabını verin.

Apt paketleri kuracak fakat bunlar standart konfigurasyonlarıyla çalışmaya başlayacaktır.

Openswan sistemde hali hazırda netkey modulunu tanıyacağı için bu modul ile çalışmaya başlayacaktır.

Xl2tpd için de durum farklı değil.Henüz ayarlar yapılmadığı için sadece çalışıyor vaziyette olacaktır.

Konsolda;

ipsec verify

ps aux | grep ipsec

ps aux | grep xl2tpd

komutlarıyla servislerin başlayıp başlamadığını görebilirsiniz.

ipsec verify çıktısı aşağıdaki gibi görülecektir

 

> ipsec verify
> Checking your system to see if IPsec got installed and started
> correctly:
> Version check and ipsec on-path [OK] > Linux Openswan kernel_version (netkey)
> Checking for IPsec support in kernel [OK] > NETKEY detected, testing for disabled ICMP send_redirects
> [FAILED] >
> Please disable /proc/sys/net/ipv4/conf/*/send_redirects
> or NETKEY will cause the sending of bogus ICMP redirects!
>
> NETKEY detected, testing for disabled ICMP accept_redirects
> [FAILED] >
> Please disable /proc/sys/net/ipv4/conf/*/accept_redirects
> or NETKEY will accept bogus ICMP redirects!
>
> Checking for RSA private key (/etc/ipsec.secrets) [OK] > Checking that pluto is running [OK] > Checking for ‘ip’ command [OK] > Checking for ‘iptables’ command [OK] > Opportunistic Encryption Support
> [DISABLED]

FAILED olan kısımlardaki problemleri gidermek için /etc/sysctl.conf dosyasının bir yedeğini alıp,bir editor ile açın ve aşağıdaki satırları uygun biçimde yerleştirin

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096

sysctl.conf dosyanızı kaydettikten sonra

Konsolda;

sysctl -p komutunu verin veya sunucunuzu baştan başlatın.

Önemli bir nokta,sunucunuzu baştan başlattığınızda ipsec pid askıda kalmış olduğu için açılışta start edilemiyor.Debian ve Ubuntuya özgü bir durumdan da kaynaklanıyor olabilir.Henüz gerçek ortama geçirmediğim için üzerinde durmadım.