OpenVPN Sunucusu Kurulumu | Ücretsiz VPN Sunucu [Digitalocean, Vultr ve Diğerleri]
OpenVPN sunucu kurulumu ile ücretsiz bir şekilde edinebileceğiniz VPN, yani Sanal Özel Ağ, sizin fiziksel olarak olmadığınız bir yerdeki ağa gizli ve güvenli bağlanmanızı sağlar. Bunu şirket ağınıza bağlanmak veya yasakları atlatmak için kullanabilirsiniz. Üstelik bu yazımızda kendi VPN sunucunuzu nasıl kurabileceğinizi anlatacağız.
VPN, Proxy’nin aksine IP adresinizi saklayarak sunucunuza şifreli ve gizli bir kanal üzerinden bağlanmanızı sağlar. Böylece hem kendi kimliğinizi saklayarak internette gezebilir, hemde tüm verileriniz şifreli bir bağlantı üzerinden iletileceği için güvenliği sağlamış olursunuz. Üstelik ziyaret ettiğiniz siteler sizin PC ve ISS ip adresiniz yerine sadece VPN sunucunuzun ip adresini görebilirler.
1.VPN Nasıl Çalışır?
Bu başlığı teknik açıklamalarla boğmak yerine özetle VPN, bulunduğunuz ağdan başka bir ağa şifreli bir bağlantı kurar. Bu tünel bağlantısı içinden akan veriler şifrelenerek gönderildiği için private keyinize sahip olmayan kimse bu verileri okuyamaz. Şifrelemenin nasıl çalıştığını öğrenmek için şu yazımızı okuyabilirsiniz: Modern Şifreleme Yöntemleri
Yukarıdaki resimde VPN ile kullandığım bir oturumun Wireshark ile yakalanmış paketlerinden bir kısmını görüyorsunuz. Her paketin OpenVPN protokolü kullanılarak şifrelenmiş data verilerini görebilirsiniz.
2.Neden VPN Sunucusu Kullanmalısınız
VPN’in kullanıcılar için birçok faydası vardır. Bunlardan bazıları şu şekildedir;
- Güvenlik – VPN, bütün veriler şifrelendiğinden daha iyi ve güçlü korunma sağlar. Güvenlik duvarlarına kıyasla daha güvenlidir.
- Uzaktan Erişim – yüksek güvenlik sağlandığından emin olmak için birçok kurum, devlet ve savunma ofisleri uzaktan erişime sadece VPN üzerinden izin verir.
- ISP şifreleme – ISP’nin açılımı Internet Service Provider – İnternet Hizmet Sağlayıcısı’dır. Eğer herkese açık bir Wi-Fi Bağlantısı kullanırsanız ISP şifrelenmemiş bütün verilerinizi okuyabilir. VPN kullanarak ISP’nizin bile verilerinizi okumasına izin vermeyerek verilerinizi güvenli tutabilirsiniz.
- Anonimlik – VPN’ler kullanıcıların İnternet’te gezinirken anonimliğini sürdürmelerine izin verir. IP adresleri saptanamaz.
- IP Değişikliği – VPN kullanıcıların IP adreslerini değiştirmelerine ve güvenle gezinmelerine izin verir. Bu bazı durumlarda konum bazlı sınırlamaya sahip olan bölgelerde kullanılır
- Yasaklı sitelere erişim – belirli web siteler birkaç coğrafik bölgede yasaklıdır. Bir VPN anonimlik sağladığından dolayı Internet sansürünü aşmak ve yasaklı web siteleri ziyaret etmek için kullanılır
- Daraltma – bazı ISP’ler içeriklere göre kullanıcı trafiğini daraltır. Bu türden daraltmalar VPN kullanılarak aşılabilir.
VPN ayrıca şifreleme kullanarak alışverişlerinizi daha güvenli hale getirir.
3.VPN Sunucusu Kurmak Yerine Hazır Satın Almalı mıyım?
Bu yazıyı yazmamdaki en büyük sebep bu sorunun cevabı oldu. Çünkü piyasada onlarca ücretli ve ücretsiz VPN sunucu hizmeti bulunmakta. Birçok zahmete girip VPN sunucu kurmak yerine bunlardan birini tercih etmek nasıl olurdu acaba? Bunu üç başlık altında cevaplayacağım;
1- Ücretsiz VPN Sunucular: Ücretsiz bir VPN sunucunun bedeli pahalıdır. Hiç kimse siz ücretsiz VPN kullanın diye kaynaklarını boşa harcamaz. Özellikle de internetiniz üstünden kredi kartlarınız ile alışveriş yaptığınızı, hergün onlarca kez sosyal medya hesaplarınıza girdiğinizi ve kişisel bilgilerinizi, resimlerinizi, belgelerinizi aktif olarak kullandığınızı düşündüğümüzde..Hem unutmayın ki VPN sadece bilgisayarınız ile VPN sunucusu arasındaki trafiği şifreler. İşlemlerinizin anlamlandırılabilmesi için VPN sunucu bu şifrelenmiş verilerin şifresini açarak komutlarınızı anlamak zorunda. Yani trafiğinizi açık metin halinde görebilmekte. Bu verileri neden başka birinin sunucusuna emanet edesiniz ki? Bu belkide hayatınızda yapabileceğiniz en büyük yanlışlardan biri olabilir. Özetle eğer ücretsiz bir VPN sunucu kullanıyorsanız derhal buna son vermeli ve tüm şifrelerinizi, kartlarınızı değiştirmelisiniz!
2- Ücretli VPN Sunucular: Bir hizmetin ücretli olduğu onun güvenilir olduğu anlamına gelmez. Belki hizmetlerini ve ticari hayatlarını riske atmamak için dikkatli davranabilirler ama en yakın olan Facebook davası herkese ibret olmalıdır. Yine de eğer bir ücretli VPN kullanacaksanız seçeceğiniz firma adli olayda log kayıtlarınızı yetkili birimlere teslim etmemeli ve sizi açık etmemelidir. Tabi kişisel verilerinizi de korumalıdır. Böyle birkaç firmayı araştırarak bulabilirsiniz ama detaylı bir araştırma yapmanızı tavsiye ederim.
Tavsiye olarak ExpressVPN kullanabilirsiniz. 5 kullanıcıya kadar izin veren paket fiyatları ise aşağıdaki gibi.
3- Kendi VPN Sunucunuz: Kontrolün tamamen sizde olduğu, verilerinizi sizden başkasının göremediği hatta hiçbir log tutmadığınız, sınırsız kullanıcı oluşturabileceğiniz ve açık kaynak kodu sayesinde binlerce uzman tarafından kontrolünün yapıldığı bir VPN sunucusu kurmak istemez misiniz? Tabiki de istersiniz.
OpenVPN, açık kaynak kodlu bir VPN yazılımıdır ve her türlü platformda rahatça ve hızlıca kullanabilirsiniz. Üstelik yukarıdaki paragrafta yer alan tüm özelliklerle birlikte çok uygun bir fiyata mal edeceksiniz. Öyleyse hemen başlayalım.
4. OpenVPN ile Kendi VPN Sunucunuzu Kurmak
Bu yazıyı yazarkende kullandığım OpenVPN’i kurmak için nelere ihtiyacımız var hemen bakalım;
1. Öncelikle bir sunucuya ihtiyacımız var. Tavsiye olarak DigitalOcean, Vultr gibi sunucu sağlayan firmalardan aylık 5$ ile alabileceğiniz paketleri kullanabilirsiniz. Eğer Türk firmalarında daha ucuza VPS/VDS bulabiliyorsanız bunlar bile olabilir ama sunucu merkezini yurtdışı olarak seçiniz. Aksi halde Türkiye’de yasaklı olan sitelere yine erişemezsiniz 🙂
2. İşletim sistemi olarak konuyu anlatırken Ubuntu 18.04 kullanacağız. Sizde aynı işletim sistemini seçiniz ki hata almayasınız.
Eğer herşey hazırsa hızlıca başlayalım:
4.1 Sunucu Oluşturma
DigitalOcean ve Vultr gibi siteleri kullanacaksanız öncelikle bir server (droplet veya o frma adını ne koyduysa) oluşturmanız gerekiyor. OpenVPN için Ubuntu 18.04 işletim sistemli ve aylık ücreti 5$ olan bir yurtdışı lokasyonlu (yakın bir ülke ping açısından iyi olacaktır, örneğin Hollanda, Almanya) paket oluşturunuz. Bu server için SSH key kullanarak güvenliğinizi artırabilirsiniz.
DigitalOcean üzerinde sunucu oluşturmak için Tıklayınız
SSH keyi nasıl oluşturacağınızı öğrenebilmek için şu iki konuyu inceleyebilirsiniz;
- DigitalOcean SSH Key Ekleme: https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/
- Vultr SSH Key Ekleme: https://www.vultr.com/docs/how-do-i-generate-ssh-keys
4.2 Sunucuya OpenVPN Paketinin Kurulması
Putty aracılığıyla sunucunuza bağlanın ve ilk olarak Ubuntu güncellemelerini yapınız. Eğer sunucunuza nasıl bağlanacağınızı bilmiyorsanız ilk olarak şu videoyu izlemeniz faydalı olacaktır: Youtube Link
apt update
apt ugrade
Şimdi OpenVPN’in Github sayfasında da tarif edildiği üzere aşağıdaki komut ile OpenVPN paketini indirip kurunuz. Karşınıza çıkan tüm soruları enter ile direkt geçebilirsiniz:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
DNS sızıntılarını önleyerek ip adresinizin ele geçmesini önlemek için yapmamız gereken bir ekleme işlemi var. Öncesinde DNS Sızıntısı Nedir? öğrenmek için Tıklayınız. Ardından aşağıdaki komut ile dosyayı düzenlemek için açınız:
nano /etc/openvpn/server/server.conf
Açılan dosyaya şu satırı ekleyiniz:
push "dhcp-option DOMAIN-ROUTE ."
Artık OpenVPN temel kurulumumuz burada son buluyor. Fakat direkt kullanıma geçmek yerine aşağıdaki güvenlik önlemlerini alarak daha rahat ve güvenli bir kullanım elde edebiliriz.
4.3 OpenVPN Güvenlik Ayarlarının Yapılması
Temel kurulumun ardından güvenlik ayarlarını yapmamız gerekiyor. Bu sayede daha güvenli bir VPN deneyimi yaşayabilirsiniz. Öyleyse ilk olarak güvenlik duvarını aktif edelim ve sadece OpenVPN paketlerinin geçmesine izin verelim:
ufw allow ssh
ufw allow 1194/udp
Şimdi ise nano /etc/default/ufw
komutu ile dosyayı açın DEFAULT_FORWARD_POLICY="DROP"
satırını bularak burada yazan DROP kısmını ACCEPT ile değiştiriniz.
Ardından birkaç firewall kuralı eklemeliyiz. Bunun için nano /etc/ufw/before.rules
komutu ile dosyayı açın ve aşağıdaki komutları başa ekleyiniz.
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
Dosyamızın görüntüsü şöyle olacaktır.
Dosyamızı kaydedip çıktıktan sonra ufw enable
komutu ile ufw yi yeniden başlatıyoruz. Artık son aşama olan fail2ban ile Brute-force saldırılarına karşı sunucumuzu biraz daha güvenli hale getirmek kalıyor. Bunun için ilk olarak gerekli paketleri yükleyelim:
apt install fail2ban
nano /etc/fail2ban/filter.d/openvpn.local
Açılan dosyaya aşağıdaki komutları ekleyerek kaydediniz. Bu filtre ile birlikte OpenVPN loglarında alttakine benzer bir kayıt bulursa, bunların VPN’e yönelik atak olduğunu anlıyor ve bir sonraki adımda da direktifini ekleyeceğimiz üzere, bu IP’leri banlıyor.
[Definition]
failregex = ^ TLS Error: incoming packet authentication failed from \[AF_INET\]:\d+$
^ :\d+ Connection reset, restarting
^ :\d+ TLS Auth Error
^ :\d+ TLS Error: TLS handshake failed$
^ :\d+ VERIFY ERROR
ignoreregex =
Son olarak da bu direktifi fail2ban’a tanıtacağız.
nano /etc/fail2ban/jail.d/openvpn
Açılan dosyaya aşağıdaki komutları ekleyip kaydediniz:
[openvpn]
enabled = true
port = 1194
protocol = udp
filter = openvpn
logpath = /var/log/openvpn.log
maxretry = 3
Artık son olarak service fail2ban restart
komutu ile fail2ban servisini yeniden başlatıyoruz. En fazla 5-10 dakikanızı alacak bu güvenlik aşamalarını tamamladıktan sonra VPN sunucumuza bağlanarak kullanmaya başlayalım.
4.4 VPN Sunucunuza Bağlanıp Kullanmaya Başlamak
Tüm aşamaları başarıyla tamamladıktan sonra artık meyvesini yemeye başlayabilirsiniz. Bunun için önce bağlantı dosyamızı sunucudan almak ve kullandığımız platforma göre Client yazılımını kurmamız gerekiyor.
- Eğer Windows kullanıyorsanız: İlk olarak VPn sunucunuzda
cat ~/client.ovpn
komutunu çalıştırın ve karşınıza gelen tüm çıktıları kopyalayarak bir metin belgesine yapıştırın. Ardından bu metin belgesiniclient.ovpn
ismiyle kaydediniz. (Uzantısına dikkat ediniz, txt kalmasın).
Yukarıdaki gibi uzun bir dosyayı elde ettikten sonra artık Windows için OpenVPN Client programını indirmelisiniz. Linkten programı indirip kurduktan sonra açılan penceredeki Import alanından File sekmesine geçin ve dosyanızı yükleyiniz. Connect after import
kutucuğunu işaretleyin ve Add butonunu kullanarak ekleme işlemini tamamlayıp VPN bağlantınızı başlatabilirsiniz.
Bağlantınızın başladığını ve trafiğiniz aktığını burada görebilirsiniz.
- Eğer Linux kullanıyorsanız: Eğer Linux tabanlı bir işletim sistemi kullanıyorsanız, VPN’e bağlanırken gerekli olan bu client dosyasını bilgisayarınıza kaydetmek için alttaki komutu çalıştırın (~/Downloads klasörüne kayıt edecektir).
scp root@SUNUCU_IP_ADRESI:~/client.ovpn ~/Downloads/
Eğer Ubuntu’da VPN’i kullanacaksanız, VPN’i kullanabilmek için öncelikle kendi bilgisayarınızda OpenVPN client’ını yüklemeniz gerekiyor.
sudo apt install openvpn openvpn-systemd-resolved
Ve bu bilgisayardaki client dosyasına alttaki ayarları eklemeniz lazım.
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
Eğer Ubuntu 18.04 ve üzeri bir işletim sistemi kullanıyorsanız bir ekstra ayar daha yapmanız lazım. OpenVPN Ubuntu DNS resolution diye aratırsanız birçok farklı sonuç ile karşılacaksınız. Açıkçası benim de bu hatanın çözümünü bulmam çok kolay olmadı. Sorunu anlatan ve çözümü sunan şu yazıyı okuyabilirsiniz; çözüm için alttaki komut yeterli olacak. DNS’i kontrol etmek içinse systemd-resolve --status
komutundan faydalanabilirsiniz.
cd /etc/ && sudo rm resolv.conf && sudo ln -s /run/systemd/resolve/resolv.conf
VPN’i başlatmak için, alttaki komutu çalıştırmanız lazım. Çalıştığından emin olmak için, IP adresinizi ve ISP’nizi herhangi bir servisten kontrol edebilirsiniz.
sudo openvpn --config ~/Downloads/client.ovpn
Sık kullanacağınız için bunu alias olarak kaydedebilirsiniz.
nano ~/.bash_aliases
Karşınıza gelen dosyaya alttaki satırı ekleyip, CTRL + X ve Y ile kaydettikten sonra source ~/.bashrc
komutunu çalıştırırsanız, terminalinizde vpn yazdığınızda VPN bağlantınız başlayacaktır.
alias vpn='sudo openvpn --config ~/Downloads/client.ovpn'
Tüm bu işlemler sunucunda VPN düzgün çalışıyor olmalı ve tüm adımları eksiksiz takip ettiyseniz DNS hatası almamalısınız.
4.5 [BONUS] Yeni VPN Kullanıcıları Oluşturmak
OpenVPN kullanımının avantajlarından biride istediğiniz kadar kullanıcı oluşturabilmenizdir. VPN sunucunuza yeni kullanıcılar eklemek için tekrardan bash ~/openvpn/openvpn-install.sh
veya kurlum dizininiz farklıysa bash ~/openvpn-install.sh
komutunu çalıştırmanız ve karşınıza çıkan soruya 1 numaralı cevabı (Add a cert for a new user) vermeniz yeterli olacak. Ardından son satırda söylediği dizinden ovpn
uzantılı dosya içeriğini aynı şekilde alarak Client ile VPN bağlantınızı yapabilirsiniz.
4.6 [BONUS] Telefon ve Tabletinizden VPN Sunucuza Bağlanmak
Bu işlem düşündüğünüzden de kolay. Tek yapmanız gerekn marketten OpenVPN Connect uygulamasını indirmek ve dosyanızı aynı şekilde File sekmesinden eklemek. Ardından VPN bağlantınızı kullanmaya başlayabilirsiniz.
5. SONUÇ
Kişisel veri güvenliğinin aşırı derecede önem arz ettiği bu dönemlerde kendinizi ve ailenizi VPN kullanarak koruyabilirsiniz. Fakat bu koruma içgüdüsüyle yanlış bir VPN e bulaşıp daha çok zarar görmek yerine en düşük maaliyetle kendi VPN sunucunuzu nasıl kurabileceğinizi bu yazımızda detaylıca anlattık. Sizde aşağıdaki yorum alanından varsa soracağınız ve takıldığınız yerleri yazabilirsiniz. Hepinize güvenli internet kullanımı dileriz.