DigitalOcean 101 – PPTP ile Kendi VPN’inizi Kurmak

VPN Nedir?

VPN (Virtual Private Network) internet üzerinden başka bir ağa bağlanmanızı sağlayan bağlantı çeşididir. Sanal bir ağ uzantısı olduğu için ağa tıpkı fiziksel olarak bağlıymış gibi görünür. Sunucuya bağlandıktan sonraki veri transferi şifrelenerek korumaya alınır. Oluşturulan tünel sayesinde internetteki işlemlerinizde güvenlik ve gizlilik sağlanır. Özellikle ülkemizdeki yasaklar sebebiyle zaman zaman erişime yasaklanan siteler ve şuan için Türkiye’yi kapsamı altına almayan Netflix / Hulu gibi servislere erişim için tercih edilebilir. Kısacası kuracağınız VPN sayesinde internete sunucunuzun bulunduğu konum üzerinden erişmeye başlıyor olacaksınız.

VPN Türleri

PPTP, L2TP ve SSTP gibi farklı VPN protokolleri bulunmaktadır. Yaygın olarak kullanılan PPTP (Point-to-point Tunneling Protocol) hemen hemen tüm işletim sistemleriyle uyumludur. Kolaylıkla oluşturulabildiği gibi aynı anda birden fazla cihazla bağlanmanıza izin verir. 128 bit şifreleme sebebiyle OpenVPN gibi alternatiflere göre hızlı çalışmaktadır. Microsoft’un uyarlaması olan PPTP’nin saldırılara açık olduğu belirtiliyor. 168 bit şifreleme yapılan L2TP (Layer 2 Tunneling Protocol)’de paketlerin kapsüllenmesi iki katmandan oluşur. SSTP (Secure Socket Tunneling Procotol) ise PPP yada L2TP trafiğini SSL (Secure Socket Layers) üzerinden aktarır.

OpenVPN’in ne olduğu ve nasıl kurulabileceğine dair hazırladığım rehbere de göz atabilirsiniz. PPTP’yi yüksek risk taşımayan işlemleriniz için rahatlıkla kullanabilirsiniz. DigitalOcean’daki droplet’imde ben PPTP’yi OpenVPN ile birlikte kullanıyorum. PPTP’yi kurmamın sebebi neredeyse uyumlu olmadığı platformun olmaması. OpenVPN’de Windows, Mac OS, iOS ve Android için uyumlu ancak ülke kısıtlaması bulunan içeriklere ulaşmak için VPN’e ihtiyaç duyabileceğiniz akıllı televizyonlar için hiç düşünmeden PPTP kullanabilirsiniz.

CentOS’ta PPTP ile VPN Kurulumu

Öncelikle aşağıdaki komut ile PPTP sunucusunu indirip kuralım:

yum -y install pptpd

/etc/pptpd.conf konumunda yer alan dosyayı açıp aşağıdaki satırları ekliyoruz:

localip 10.0.0.1
remoteip 10.0.0.100-200

Benzer şekilde /etc/ppp/chap-secrets yi açarak PPTP sunucumuzdan yararlanacak kullanıcıları şifrelerle birlikte ekliyoruz. Öncelikle kullanıcı adını sonra da sunucu adı olarak “pptpd” yazıyoruz. Sonrasında ise bu kullanıcı için istenecek şifreyi giriyoruz. Dilerseniz son olarak kullanıcının IP adresine göre erişim sınırlandırması yapmak için VPN ile bağlanacak kullanıcının  IP adresini yazıyoruz. Tüm IP’lere açık olması için sadece * yazmanız yeterli:

Secrets for authentication using CHAP
# client server secret IP addresses
kullanici pptpd sifre *
kullanici2 pptpd sifre *

Şimdi de /etc/ppp/pptpd-options yi açarak DNS bilgilerini ekliyoruz. Aşağıdaki gibi Google DNS’i kullanabilirsiniz:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Aşağıdaki komut ile PPTP daemon’unu çalıştırıyoruz:

service pptpd restart

PPTPD’yi sunucumuz açılıp kapandıktan sonra da çalışması için ayarlayalım:

chkconfig pptpd on

IP yönlendirmesini aktif hale getirmek için /etc/sysctl.conf dosyasını açıyor ve aşağıdaki gibi güncelleme yapıyoruz. Değişikliklerin aktif hale gelmesi içinde son olarak”sysctl -p” komutunu çalıştırıyoruz:

net.ipv4.ip_forward = 1

Güvenlik amacıyla iptables kullanıyorsanız aşağıdaki kuralları tanımlamayı unutmayın:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
iptables –table nat –append POSTROUTING –out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables –append FORWARD –in-interface eth0 -j ACCEPT

iptables -L -n

Yukarıdaki işlemler sonucunda PPTP sunucumuzu kurduk, şimdi sıra sunucuya bağlanacak hesaplar için istemci kurmakta. Bunun için ilk olarak aşağıdaki komutu sonrada çalıştırıyoruz:

yum -y install pptp

Şimdide gerekli modülü kernel’e eklemek için aşağıdaki işlemi uyguluyoruz:

modprobe ppp_mppe

/etc/ppp/peers/pptpserver yi açarak yukarıda VPN sunucumuza bağlanmasına izin verdiğimiz hesap bilgilerinin aynılarını aşağıdaki formata uyarlayarak ekliyoruz. “127.0.0.1” olan kısmı sunucunuzun IP adresi ile değiştirmeyi unutmayın. Bu bilgileri ekledikten sonra “pppd call pptpserver” komutunu çalıştırıyoruz:

pty “pptp 127.0.0.1 –nolaunchpppd”
name kullanici
password sifre
remotename PPTP
require-mppe-128

pppd call pptpserver

Yarattığımız istemcinin ağdaki yönlendirmeleri için sıradaki komutu kullanıyoruz:

ip route add 10.0.0.0/8 dev ppp0

Birden fazla istemci eklemek için “yum -y install pptp” ile başlayan süreci tekrarlayabilirsiniz. Artık istediğiniz cihazda yaratacağınız bağlantı ile VPN’den yararlanmaya başlayabilirsiniz. Windows için kurduğumuz VPN ile nasıl bağlanabileceğinize dair aşağıdaki örneğe göz atabilirsiniz.

Windows’ta PPTP Üzerinden VPN Bağlantısı Yapmak

İlk olarak “Denetim Masası”ndan “Ağ ve Internet” bölümüne giriyoruz. Buradan “Ağ ve Paylaşım Merkezi”ne geçiş yapıyoruz. “Yeni bağlantı veya ağ kurun” seçeneği üzerinden “Çalışma alanına bağlan” seçeneğine gelerek yeni bağlantı oluşturma talebinde bulunuyoruz. Sonraki adımda ise “Internet bağlantımı (VPN) kullan” üzerinden öncelikle sunucunun IP adresini yazıyor sonrasında bağlantıya istediğimiz adı veriyoruz. Son adımda ise kullanıcı adı ve şifre bilgilerini girerek VPN üzerinden bağlantı sağlamaya başlıyoruz.

digitalocean-101-14

İnternete artık kurduğumuz VPN üzerinden bağlıyız!

VPN Ayarlarında Dikkat Edilecek Noktalar

VPN üzerinden yaptığınız bağlantılarda gizliliğinizi korumaya devam etmek istiyorsanız “DNS leak” oluşmamasına dikkat etmeniz gerekiyor. Ziyaret etmek istediğiniz internet sitelerinin IP adreslerini öğrenebilmek için DNS sunucusu ile iletişimde bulunuyorsunuz. Yukarıdaki şekilde Windows’ta VPN bağlantısı oluşturduğunuz zaman hala servis sağlayıcınızın DNS sunucularını kullanıyor olabilirsiniz. Aşağıdaki ilk ekran görüntüsünde bunu rahatlıkla görebilirsiniz. Google Public DNS‘den yararlanarak bu sorunu aşmak amacıyla Windows’taki Görev Çubuğu’nun sağında yer alan kablosuz ağları seçtiğimiz bölümü açalım. Yarattığınız VPN’e sağ tıklayıp sonrasında “Özellikler”i seçin. “Ağ İletişimi” sekmesi altından “Internet Protokolü sürüm 4 (TCP/IPv4)” gelerek yeniden “Özellikler”i seçelim. Buradan “Aşağıdaki DNS sunucu adreslerini kullan:” opsiyonunu aktif hale getirerek “8.8.8.8” ve “8.8.4.4” ü yazıp kaydedelim. İşlem tamamdır!

digitalocean-101-15

VPN bağlantı ayarlarında kullanılacak DNS sunucusu belirtilmeden önce hala servis sağlayıcınızın DNS sunucusunun kullanıldığını gözlemleyebilirsiniz.

digitalocean-101-16

Google Public DNS ayarlarını yaptıktan sonra artık kendi servis sağlayıcımız yerine DNS çözümlemeleri için Google’ın kapısını çalıyoruz.

DNS leak testi için linkteki sayfayı ziyaret edebilirsiniz. Özellikle extended test’i tavsiye ederim 😉

  • teşekkürler

  • Taylan Soylu

    Çok faydasını gördüğüm bir makale oldu. Teşekkür ederim.

  • Rica ederim, kolay gelsin 🙂