Press enter to see results or esc to cancel.

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

Screenshot-Terminal

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=netkey

include /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-noNAT

conn 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)

photo 1 photo 2 photo 3

 

b. Android

c. Windows

Başlat > Denetim Masası > Ağ ve Paylaşım Merkezi

1. Yeni bağlantı ve ağ kurum

win1

 

2. Çalışma alanına bağlan

win2

 

3. İnternet blantımı (VPN) kullan

win3

 

4. İnternet adresi kısmına vpn sunucusunun ip adresini yazıyorsunuz.

win4

 

5. Kullanıcı adı ve şifresi yazılır

win5

 

6. Kapat tıklanır

win6

 

7. Tekrar Ağ bağlantılarıma tıklanıp Vpn Bağlantısının özelliklerine girilir.

win7

 

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.

win8

 

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.

win9

 

10. Vpn bağlantısı açılarak Bağlan ‘a tıklanır

 

win10

 

11. Bağlantı durumu

 

win11

 

12. İp adresinizi sorguladığında vpn sunucusunun bulunduğu lokasyona göre çıkacak bilgiler.

win12

 

 

Kaynak belirtildiği sürece kopyalanabilinir.