Digital Ocean’da Ubuntu üzerinde VPN sunucusu kurma

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.

Konsol Erişimi

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;

Beş dakikada “özel sanal sunucu” sahibi olun!

Uzun süredir yazmıyorum, vakit bulamamak ve biraz da tembellikten. Fakat ülkenin içinde bulunduğu şu anki durumda planladığım yazı dizisinin sıralamasını biraz değiştirip hemen hazırlamaya karar verdim.

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!

Bir süredir iş yerinde ve kendi kişisel projelerimde Digital Ocean kullanıyorum. Digital Ocean VPS (Virtual Private Server – Sanal Özel Sunucu) hizmeti veriyor. Kısacası, internetler üzerinde bulut üzerinde size ait bir sunucunuz oluyor. Bu sunucu üzerinde bir çok iş yapabilirsiniz. (Web sunucusu olarak kullanmak, veritabanı sunucusu olarak kullanmak, VPN sunucusu olarak kullanmak vb) Kullanım amacını size bırakıyorum, bu yazıda görseller ile adım adım Digital Ocean üzerinde hesap açmayı anlatacağım.

Makaledekileri uygulamak yaklaşık 5 dakika sürecektir. İhtiyacınız olan aktif bir e-posta adresi, kredi kartı ya da paypal hesabı.

Digital Ocean ana sayfa

Yukarda gördüğünüz ekran Digital Ocean‘ın giriş sayfası. Kayıt işlemi bu ekrandaki e-posta ve parola alanlarını doldurup “Create Account” tuşuna basmaktan ibaret. :)

Karşılama ekranı

“Create Account” tuşuna bastığınızda sizi yukarda görebileceğiniz karşılama ekranı karşılayacak ve bu sırada e-posta adresinize bir merhaba e-postası gönderilecek. Bu e-postanın içinde e-posta adresinizi doğrulamak için bir bağlantı olacak. Bu bağlantıya tıklayarak e-posta adresinizi doğrulamalısınız.

Başlamak için ekrandaki yeşil renkteki “Get Started” tuşuna basın.

Kredi kartı tanımlama ekranı

Koyu gri renkteki bu ekran kredi kartı bilgilerinizi kaydedebileceğiniz bir form içeriyor. Formu geçerli bilgiler ile doldurup “ADD CREDIT CARD” tuşuna basın. Bu aşamada kartınızdan para çekilmeyecektir. Kredi kartı yerine paypal kullanmak isterseniz sayfayı biraz aşağı kaydırın.

Paypal ekranı

Paypal tercih ederseniz, aşağı açılır menüden yüklemek istediğiniz kredi tutarını seçip “Pay Now” tuşuna basın. Açacağımız sunucunun aylık maliyeti 5$’dır. Eğer ilk etapta denemek istiyorsanız 5$ kredi yüklemeniz yeterli olacaktır. “Pay Now” tuşuna bastığınızda PayPal sayfalarına yönlendirileceksiniz. Kredi yükleme işleminiz bittiğinde tekrar Digital Ocean’a yönlendirileceksiniz. PayPal kredi yükleme adımlarını burada işlemeyeceğim.

Ödeme bilgileri tanımlandı ekranı

Kredi kartınızı başarıyla tanımladığınızda ya da PayPal üzerinden kredi yüklediğinizde yukarda görmüş olduğunuz ekrana ulaşacaksınız. Bu ekranda yer alan “Create Droplet” tuşuna basarak sunucumuzu oluşturmaya başlayabiliriz.

Bu noktada bazen Digital Ocean hesabınızı doğrulamak için ekstra bir adım çıkartabiliyor. Bu problemle karşılaşma ihtimalinize karşı ilgili adımları da aşağıya ekliyorum.

Hesap doğrulama

“Create Droplet” tuşuna bastığınızda yukardaki ekranla karşılaşırsanız Digital Ocean hesabınızı doğrulamak için ekstra bir işlem yapmanızı istiyor demektir. Ekranda gördüğünüz “Fill out the form” tuşuna basın. Aşağıya doğru bir form açılacaktır.

Hesap doğrulama formu

Bu formda sırasıyla tam adınız, konumunuz (ülke), telefon numaranız, sunucunuzu hangi amaçla kullanacağınız ve web siteniz ya da sosyal medya hesaplarınıza bağlantı soruluyor. Sunucunuzu hani amaçla kullanacağınız sorusuna “I’ll use my droplet for VPN” yazıp, diğer alanları da doldurup formu gönderebilirsiniz. Formun iletildiğine dair bir ekran karşınıza çıkacak ve e-posta adresinize destek masasına konunun iletildiğine dair bir e-posta gönderilecek. Bir süre sonra bir yetkili bu bilgiler ışığında hesabınızı onaylayacaktır.

Hesabınız onaylanmadan kurulum için gerekli sonraki adıma geçemeyeceksiniz.

Temel sunucu ayarları

Bir terslik olmazsa “Create Droplet” tuşu sizi yukardaki ekrana taşıyacaktır. Burada Hostname bölümüne sunucusa vermek istediğiniz ismi yazın. Select Size kısmında ilk seçenek olan 512 MB / 1 CPU … seçeneğini seçin. (Büyük ihtimal bu seçenek zaten seçili olarak gelecektir.)

Sunucu konumu seçme

Bu ekran sunucusunun hangi veri merkezinde kurulmasını istediğinizi soran ekrandır. Burada New York, San Francisco, Amsterdam ve Singapur seçeneklerinden birini seçebilirsiniz. Türkiye’ye daha yakın olmasından dolayı Amsterdam 1 ya da Amsterdam 2 tercih etmenizi önerebilirim.

Kurulum dosyası seçme

Select Image bölümünde seçebileceğiniz bir çok Linux dağıtımı karşınıza çıkacaktır. Benim tavsiyem Ubuntu 14.04 x64‘ü seçmeniz yönünde olacaktır. Özellikle Digital Ocean’da Ubuntu üzerinde VPN sunucusu kurma makalem ile kendi VPN sunucunuzu kurmak isterseniz yine Ubuntu altyapılı bir sunucuya ihtiyacınız olacak.

Sunucuyu oluşturma

Sunucunuzu oluşturmak için yeşil renkteki “Create Droplet” tuşuna basın ve arkanıza yaslanın. Fakat çok da kendinizi bırakmayın çünkü takribi 55 sn sürecek bir işlemi bekleyeceksiniz.

Sunucu oluştururken bekleme ekranı

Çoğu zaman veri merkezinin yoğunluğuna bağlı olarak bu işlem 55 saniyeden de kısa sürüyor.

Gelen e-posta

Sunucunuzun oluşturma işlemi bittiğinde e-posta adresinize sunucunuza erişebilmeniz için IP adresi, kullanıcı adı (root) ve parolası gönderilecektir. (Yukardakileri denemeyin, bu makale için açtığım bir sunucuydu, çok uzun ömürlü olmadı)

Sonuç ekranı

Bu ekrana ulaştıysanız sunucunuzu başarıyla kurdunuz demektir. Sağ üstte yer alan “Console Access” tuşu ile sunucunuzun konsoluna tarayıcınız üzerinden bağlantı sağlayabilirsiniz.

Tebrikler! Artık size özel bir sanal sunucu sahibisiniz. Sunucunuz ile yapabilecekleriniz;