IPSEC/L2TP VPN (Debian/Ubuntu)
Bu dökümanda Debian üzerinde IPSEC ve L2TP ‘yi nasıl yapılandıracağınızı anlatmaya çalışacağım. Bu “nasıl dökümanı” sonunda IOS(iphone,ipad,ipod), Android, Windows üstünde 15-20 saniye gibi bir sürede vpn bağlantısı yapabileceksiniz.
Eger bir vps satin alip yukleme islemini direk vps ‘e yapmak isterseniz, burayi kullanabilirsiniz. Linke tiklayip uye olursaniz $10 krediye sahip olabilirsiniz ve 2 ay ucret odemeden kullanabilirsiniz.
Bu döküman içinde bulacaklarınız aşağıdaki gibidir.
1.Ipsec kurulumu ve yapılandırılması
2.L2tp kurulumu ve yapılandırılması
3.IOS,Android,Windows bağlantıları nasıl yapılır (Resimli)
İlk olarak gerekli olan tüm paketleri yüklereyerek başlayalım.
apt-get install openswan xl2tpd ppp
1. IPSEC yapılandırılması
İlk önce konfigürasyon dosyasının orjinal yedeğini alalım.
cp /etc/ipsec.conf{,.orig}
echo “” > /etc/ipsec.conf
#Not: Editör olarak vim kullanıyorum, nano veya diğerlerini de tercih edebilirsiniz.
vim /etc/ipsec.conf ile dosyayi acip asagidaki parametleri girip kaydedelim.
version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.1.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkeyinclude /etc/ipsec.d/l2tp-psk.conf
virtual_private = Uzak istemciler için izin verilen ip aralıkları
vim /etc/ipsec.secret dosyası da aşağıdaki gibi düzenlenir. Sunucu gerçek ip adresi ve tüm bağlantılarda kullanılacak ortak şifre verilir.
sunucu_ip_adresi %any: PSK “Sifre_biraz_guclu_olmali”
Örnek : 192.168.1.1 %any: PSK “Vpn123!=?”
vim /etc/ipsec.d/l2tp-psk.conf dosyası açılır ve aşağıdaki parametreler eklenir.
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNATconn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
type=transport
left=Sunucu_Ip_Adresi
leftnexthop=%defaultroute
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=15
dpdtimeout=30
dpdaction=clear
ipsec verify komutunu çalıştırıp, neyin doğru/yanlış gittiği kontrol edilir.
root@vpn:~# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.37/K3.2.0-4-486 (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [FAILED]Please disable /proc/sys/net/ipv4/conf/*/send_redirects
or NETKEY will cause the sending of bogus ICMP redirects![FAILED]
Please disable /proc/sys/net/ipv4/conf/*/accept_redirects
or NETKEY will accept bogus ICMP redirects![OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for ‘ip’ command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for ‘iptables’ command [OK]
Opportunistic Encryption Support [DISABLED]
Çıktıdan da görüldüğü gibi ICMP accept_redirects ve send_redirects deaktif etmemiz gerekiyor.
Tüm ağ aygıtları için aşağıdaki iki komutu çalıştıralım
echo 0 | tee /proc/sys/net/ipv4/conf/*/accept_redirects
echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
ipsec verify komutunu tekrar calıştıralım ve çıktı aşağıdaki gibi olacaktır.
root@vpn:/etc# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.37/K3.2.0-4-486 (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [OK]
[OK]
[OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for ‘ip’ command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for ‘iptables’ command [OK]
Opportunistic Encryption Support [DISABLED]
Ayarların geçerli olması için /etc/init.d/ipsec restart
Ipsec ile ilgili tüm ayarlar yapılmış olup herhangi bir hata bulunmamaktadır. Şimdi ikinci kısıma geçebiliriz.
2. L2TP yapılandırılması
vim /etc/xl2tpd/xl2tpd.conf dosyasının içeriği;
[global]
ipsec saref = yes
[lns default]
ip range = 10.0.0.10-10.0.0.100
local ip = 10.0.0.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
ip range = Vpn kullanıcılarının alacakları ip aralıkları
local ip = L2TP sunucusunun alacağı ip adresi
vim /etc/ppp/options.xl2tpd dosyasının içeriği;
require-mschap-v2
ms-dns 10.0.0.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ms-dns = Vpn kullanıcılarının alacağı DNS adresleri. Dns sunucum olduğu için L2TP sunucu ip adresini kullandım. Eğer DNS sunucunuz yoksa Google Dns kullanabilirsiniz.
ms-dns 8.8.8.8
ms-dns 8.8.4.4
/etc/ppp/chap-secrets dosyasının içeriği;
Bu ayar dosyasında kullanıcı adlarını ve şifrelerini tanımlanıyor.
# user server password ip
kullanici_adi l2tpd sifresi *
L2TP ayarlarını da bitirmiş olduk, ayarların geçerli olması için /etc/init.d/xl2tpd restart komutu ile servisi yeniden başlatın.
Yönlendirme
Uzak istemcileri (VPN kullanıcılarını) internet erişimi için;
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
Ek olarak /etc/rc.local dosyası içine eklenir ve sunucu reboot işlemlerinde otomatik olarak uygulanır.
Açılışta otomatik olarak servislerin başlatılması sağlanır.
update-rc.d -f ipsec defaults
update-rc.d -f xl2tpd defaults
Debug islemi;
tail -f /var/log/daemon.log
tail -f /var/log/auth.log
tcpdump -i ppp0
3.IOS,Android,Windows,Linux bağlantıları nasıl yapılır ?
a. Iphone, Ipad
Ayarlar > Genel > VPN > VPN Konfigürasyonu Ekle
Server : Sunucu ip adresi
Account : Kullanıcı Adı (/etc/ppp/chap-secrets dosyasındaki bilgiler)
Password : Şifre (/etc/ppp/chap-secrets dosyasındaki bilgiler)
Secret : PSK şifresi (/etc/ipsec.secret dosyasındaki şifre)
b. Android
c. Windows
Başlat > Denetim Masası > Ağ ve Paylaşım Merkezi
1. Yeni bağlantı ve ağ kurum
2. Çalışma alanına bağlan
3. İnternet blantımı (VPN) kullan
4. İnternet adresi kısmına vpn sunucusunun ip adresini yazıyorsunuz.
5. Kullanıcı adı ve şifresi yazılır
6. Kapat tıklanır
7. Tekrar Ağ bağlantılarıma tıklanıp Vpn Bağlantısının özelliklerine girilir.
8. Güvenlik > Vpn Türü : L2TP/IPSec seçilir ve Kimlik doğrulama da sadece Microsoft ChAP sürüm 2 (MSCHAP v2) seçilir.
9. 8. adımdaki pencereden Gelişmiş Ayalar tıklanır ve secret key yazılır ve Tamam diyerek tekrar Ağ ve Paylaşım merkezine dönelim.
10. Vpn bağlantısı açılarak Bağlan ‘a tıklanır
11. Bağlantı durumu
12. İp adresinizi sorguladığında vpn sunucusunun bulunduğu lokasyona göre çıkacak bilgiler.
Kaynak belirtildiği sürece kopyalanabilinir.
Comments
2 Comments
[…] http://www.murat.ws/ipsecl2tp-vpn-debianubuntu/ […]
[…] http://www.murat.ws/ipsecl2tp-VPN-debianubuntu/ […]
Leave a Comment