Bu yazı güncelliğini yitirmiştir. Yazıda anlatılan pptp protokolü macOS ve iOS cihazlarda desteklenmemektedir. Yazı, arşiv amaçlı silinmemiştir. Yazıdaki yönergeleri kullanmanız önerilmez.
Digital Ocean‘da bir sanal sunucunuz var, hem de Ubuntu yüklü ve VPN sunucusu kurmak istiyorsunuz ya da henüz sunucunuz yok ama bir sunucu oluşturup VPN sunucusu kurmak istiyorsunuz (Nasıl bir sunucu sahibi olacağınızı bilmiyorsanız sizi böyle alalım). Bu makale ile bu sorularınıza cevap vermeye çalışacağım.
Digital Ocean’a verdiğim bağlantılarda kendi referans kodum yer alıyor. Bu referans ile bir hesap açtığınızda hesabınıza 60 günlük deneme süresi için 100$ otomatik olarak yükleniyor. Eğer bu 100$’ın haricinde 25$’lık harcama yaparsanız, bana da 25$ yükleniyor. Yani hem siz, hem ben kazanıyorum. :) Kullananlara şimdiden teşekkürler!
Bu makale ile temel olarak iki şey yapacağız;
- pptp kurulumu ve ayarları (Point-to-Point Tunneling Protocol – Noktadan noktaya tünel protokolü)
- ufw kurulumu ve ayarları (The Uncomplicated Firewall, iptables da kullanılabilir fakat basit olması için ufw kullanacağız)
İlk olarak sunucunuzun yönetim ekranına girin. Aşağıdaki ekran görüntüsündeki gibi, sunucu isminizin hemen yanında yer alan “Console Access” tuşuna tıklayın.
Açılacak ekranda bir süre bekleyin. Orta kısımda siyah bir dikdörtgen belirecektir. Eğer bir süre beklediniz ve siyah dikdörtgen içinde hiç bir yazı karşınıza çıkmazsa, dikdörtgenin içine tıklayıp herhangi bir tuşa basın. Giriş bilgilerinizi soran bir ekran karşınıza çıkacaktır. Hesabınızla giriş yapın.
Giriş yaptıktan sonra ilk iş eğer yüklü değilse pptp
ve ufw
yüklemek olacak. Bunun için komut satırına aşağıdaki komutu yazın ve enter tuşuna basın.
sudo apt-get -y install pptpd ufw
Firewall kurduğumuz için ihtiyacımız olan portlara izin vermemiz gerekecek. Eğer sunucusunu başka işler için de kullanıyorsanız (örneğin web sunucusu, genelde port 80
. MySQL sunucusu, genelde port 3306
gibi) bu portları da açmanız gerekcektir. Port açmak için kullanacağımız komut ufw allow
komutudur. Biz 22
ve 1723
numaralı portları açacağız. 22
SSH portudur, bu portu açmazsak sunucumuza tekrar konsol erişimi sağlayamayabilriiz. 1723
ise ppt protokolünün kullandığı porttur. Portlara izin verdikten sonra ufw enable
komutu ile Firewall’u etkin hale getiriyoruz.
sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable
Sırada pptpd ayarları var. VPN sunucunuza erişecek işletim sistemleri ile ilgili ufak bir ayar yapmamız gerekiyor. Bunun için /etc/ppp/pptpd-options
dosyasını düzenleyeceğiz. Favori metin editörünüz ile dosyayı açın. (Benimki nano
, dosyayı açmak için sudo nano /etc/ppp/pptpd-options
yazıp enter’a basıyorum.) İşletim sistemi gözetmeksizin bağlantı sağlayabilmek için bir kaç satırı geçersiz kılmamız gerekiyor. Bunun için satırları silebilirsiniz ama daha iyisi, satırların başında #
işareti koyarak o satırın işlenmemesini sağlayabilirsiniz. Aşağıdaki satırları bulup başlarına #
işareti koyun.
refuse-pap
refuse-chap
refuse-mschap
Hazır pptpd ayarlarıyla oynuyorken VPN’e bağlıyken kullanabileceğimiz DNS sunucularını da tanımlayalım. ms-dns
ile başlayan satırları bulun, varsa başlarındaki #
işaretlerini kaldırın ve DNS adreslerini girin. Google DNS’leri için örnek aşağıdaki gibi olmalıdır;
ms-dns 8.8.8.8
ms-dns 8.8.4.4
Dosyayı kaydedin ve metin editöründen çıkın. (Nano kullanıyorsanız dosyayı kaydetmek için CTRL-O (windows) ya da kntrl-O (mac) yapıp, üzerine yazayım mı sorusuna Evet/Yes cevabı verin. Çıkmak için de CTRL-X / kntrl-X tuş kombinasyonunu kullanabilirsiniz.)
Sırada /etc/pptpd.conf
dosyasında yapacağımız ufak bir değişiklik var. Dosyayı metin editörünüz ile açın (Örn: sudo nano /etc/pptpd.conf) ve localip
, remoteip
değerlerinin yanındaki IP adreslerini silip, sunucunuzun IP adresini yazın. remoteip
değerinde direkt sunucuzun IP adresi yerine IP adresinizin son hanesi için bir aralık verebilirsiniz. Sunucunuz her zaman kendi IP adresi ile internete çıkmıyor olabilir. Bu aralığı tanımlamanız zayesinde daha güvenli sularda yüzüyor olursunuz. Dosyayı kaydedin ve editörden çıkın.
localip 36.23.123.149
remoteip 36.23.123.99-199
Sıra geldi VPN sunucumuzda kullanmak üzere hesap tanımlamaya. /etc/ppp/chap-secrets
dosyasını editörünüzde açın. (sudo nano /etc/ppp/chap-secrets
) Hesap tanımlama biçimi aşağıdaki gibidir;
[Kullanıcı adı] [Servis] [Parola] [İzin verilen IP adresi]
Her bir satıra bir hesap denk gelecek şekilde birden çok hesap açabilirsiniz. Bir hesap ile aynı anda bir bağlantı kurulabileceğinden evinizdeki çeşitli cihazlar için birden çok hesap oluşturabilirsiniz. Örneğin;
telefon pptpd parola *
tablet pptpd parola *
Dosyayı kaydedip çıkın ve pptpd servisini yeniden başlatın (sudo service pptpd restart
)
IPv4 için IP yönlendirmesini etkinleştirmemiz gerekiyor. Bunun için /etc/sysctl.conf
dosyasını düzenlemeliyiz. Dosyayı metin editöründe açıp (sudo nano /etc/sysctl.conf
) aşağıdaki satırın başındaki #
işaretini kaldırın.
net.ipv4.ip_forward=1
Dosyayı kaydedip çıktıktan sonra sudo sysctl -p
komutu ile ayar dosyasını yeniden yükleyin.
ufw
için de bir kaç ayar yapmamız gerekiyor. /etc/default/ufw
dosyasında yer alan DEFAULT_FORWARD_POLICY
ayarını DROP
yerine ACCEPT
olarak değiştirin.
/etc/ufw/before.rules
dosyasını açın, *filter
satırınden hemen öncesine aşağıdaki satırları kopyalayıp yapıştırın (elbette kendi ip adresiniz ile. IP adresinizin son bölümünü 0 olarak değiştirin)
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s 36.23.123.0/24 -o eth0 -j MASQUERADE
# Process the NAT table rules
COMMIT
Dosyayı kaydedip çıktıktan sonra sudo ufw disable && sudo ufw enable
yaparak firewall’ı baştan başlatın.
Tebrikler! VPN sunucunuz kullanıma hazır. Cihazınızda VPN ayarlarını yapmak için;
Herşeyi yaptım ancak bir türlü çalıştıramıyorum ateş edecem sisteme şimdi :)