Herkes için VPN Rehberi

Merhabalar,

Medium’daki ilk yazımın böyle bir konuyla ilgili olmasını istemezdim ama üstümde bir sorumluluk hissettim, herkesin internete bağlanıp, yaşamına normal bir şekilde devam edebilmesi için böyle bir yazı yazayım dedim.

Bildiğiniz gibi 4 Kasım sabahı sosyal medya tamamı ile (Snapchat bile) engellendi, fakat en büyük şaşkınlığı Whatsapp’e de ulaşamadığımızı gördüğümüzde yaşadık.

Peki bu problemin üstesinden nasıl gelebiliriz?

Normalde böyle durumlarda ilk başvurulan yöntemlerden olan VPN hizmetleri de yavaş yavaş engellenmeye başladı. Dün gece saatlerinde denediğim Zenmate, Hotspot Shield ve Mullvad sağlayıcılarının hizmetleri kesilmişti. Biz de bu yüzden, bulunup engellenmesi diğerlerine oranla daha zor olan, kendi VPN servisimizi kuracağız.

Bunun için öncelikle bir VPS’e (Virtual Private Server) ihtiyacımız var: https://www.digitalocean.com/ adresinden aylık 5 USD karşılığında şu özellikteki bir makineyi edinebiliyoruz:

Siteye üye olup, giriş yaptıktan sonra üst menüden yeni bir droplet yaratıyoruz: (Digital Ocean’da her bir virtual server droplet olarak adlandırılıyor)

Yeni yaratacağımız droplet’in ayrıntıları şöyle olacak:

Digital Ocean’ın dünyanın birçok yerinde veri merkezleri var fakat biz network latency’sini düşük tutmak için Avrupa merkezlerinden birini seçiyoruz.

Tüm bunları yaptıktan sonra sunucumuza daha rahat ve güvenli bağlanabilmek için bir anahtar eklememiz gerekiyor. Kendi bilgisayarımızda şu komutları çalıştırıp, yeni bir anahtar yaratıyoruz:

(Bu arada, Windows kullanıcılarını şuraya alıyoruz: 
https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps)

Buradan sonrası Unix tabanlı işletim sistemi kullananlar için:

Terminal’imizi açıp şu komutu çalıştırıyoruz: (Kullanıcı adı bu yazıda demo olarak geçiyor)

ssh-keygen -t rsa

Bu komuttan sonra şöyle bir soruyla karşılaşıyoruz:

Enter file in which to save the key (/demo/.ssh/id_rsa):

Enter’a basıp geçiyoruz,

Enter passphrase (empty for no passphrase):

Eğer anahtarımıza yeni bir şifre vermek istiyorsak, burada şifreyi giriyoruz ve Enter’lıyoruz.

Ve sonunda public key’imiz /demo/.ssh/id_rsa.pub altında, private key’imiz ise /demo/.ssh/id_rsa altında saklanmış oluyor.

Son olarak Terminal’imizde şu komutu da çalıştırıp, çıkan ekrandaki public anahtarı kopyalıyoruz:

cat ~/.ssh/id_rsa.pub

Digital Ocean penceremize geri dönüyor, aşağıdaki New SSH Key butonuna tıklıyoruz:

Açılan pencereye biraz önce kopyaladığımız anahtarı yapıştırıyoruz ve anahtara bir isim veriyoruz:

Add SSH Key diyerek anahtarımızı sunucumuza ekliyoruz.

Sonrasında Create butonuna tıklayıp dropletimizi oluşturuyoruz.

Bir sonraki pencerede yeni açtığımız droplet’imizin detaylarını görüyoruz:

Burada görünen IP adresini kopyalayıp, terminalimizi açıp şu komutla sunucumuza bağlanıyoruz:

ssh root@95.85.8.115

İlk bağlantımızda yukarıdaki uyarıyla karşılaşıyoruz, yes yazıp Enter’lıyoruz.

Artık sunucumuza uzaktan bağlıyız.

Şimdi OpenVPN kurulumumuza geçiyoruz:

Normalde çok uzun süren ve genelde başarısızlıkla sonuçlanan OpenVPN kurulumunu Github kullanıcısı Nyr yazdığı bir script’le otomatize etmiş, biz de onu kullanarak 1 dakika içinde VPN servisimizi kullanıma hazır hale getiriyoruz:

Sunucumuza bağlandığımız Terminal penceresinde şu komutu çalıştırıyoruz:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Script’i çalıştırdığımızda şu sorularla karşılaşıyoruz:

Burada droplet’imizin IP adresinin yazdığından emin oluyoruz.
Enter’lıyoruz,
Digital Ocean DNS sunucularını kullanıyoruz, bu yüzden cevap olarak 1 yazıp Enter’lıyoruz.
Client sertifikamız için bir isim verip, Enter’lıyoruz.
Bu yazıyı da görüp Enter’ladıktan sonra biraz bekliyoruz.

Yaklaşık olarak 1 dakika sonra client konfigürasyonumuzun hazır olduğunu belirten şöyle bir yazıyla karşılaşıyoruz:

Sunucuda yapacağımız her şey bu kadar! Şimdi Terminal’e

exit

yazıp, sunucuyla bağlantımızı kesiyoruz.

Son adım olarak, VPN servisimizi kullanacağımız cihazlara sunucuda yarattığımız bu konfigürasyon dosyasını vermemiz gerekiyor. Bunun için de sunucudaki konfigürasyon dosyasını kendi bilgisayarımıza Terminal’de şu komutu çalıştırarak kopyalıyoruz:

scp root@95.85.8.115:/root/client-demo.ovpn Desktop/

Konfigürasyon dosyamız artık kendi bilgisayarımıza indi. Terminal ile işimiz kalmadığı için kapatabiliriz.

OpenVPN client’ı olarak çalışan uygulamalar şöyle:

Android: https://play.google.com/store/apps/details?id=net.openvpn.openvpn

iOS: https://itunes.apple.com/us/app/openvpn-connect/id590379981?mt=8

Mac OS: https://tunnelblick.net/downloads.html

Windows: https://openvpn.net/index.php/open-source/downloads.html

Biz şimdi Android ve Mac OS kurulumlarını inceleyip, yazımızı sonlandıracağız:

Yukarıda linkini verdiğim OpenVPN Android client’ını telefonumuza kurup, biraz önce masaüstüne indirdiğimiz client-demo.ovpn konfigürasyon dosyasını telefonumuza atıyoruz. Uygulamayı açıyoruz:

Menü tuşumuzu kullanarak Import’u seçiyoruz:

Telefonumuzda client-demo.ovpn dosyasını bulup, seçiyoruz:

Konfigürasyonun doğru bir şekilde Import edildiğini gördükten sonra Connect butonuna tıklıyoruz:

Evet, Android için yapmamız gerekenler bu kadar, artık internete Amsterdam (sunucunuzu seçtiğiniz bölgeden) çıkıyorsunuz, herhangi bir sansürle karşılaşmayacak, reklamsız ve hızlı bir şekilde VPN hizmetinizi mobil cihazınızda kullanabileceksiniz.

Mac OS içinse yapmamız gerekenler şöyle:

Yukarıda linkini verdiğim Tunnelblick uygulamasını bilgisayarımıza yükleyip çalıştırıyoruz. Şöyle bir ekranla karşılaşıyoruz:

Masaüstüne kaydettiğimiz client-demo.ovpn dosyasını, bu penceredeki beyaz arka planlı Configurations kısmına sürükleyip bırakıyoruz:

Burada çıkan pencerede bilgisayardaki her kullanıcı için mi, yoksa sadece aktif kullanıcı için mi VPN servisini kurup kurmayacağımıza karar veriyoruz.

Yukarıdaki ayarlamaları yapıp, Connect butonuna basıyoruz.

Voila! Artık bilgisayarımızla da reklamsız, hızlı ve “Acaba bu VPN şirketleri benim log’larımı tutuyorlar mıdır?” sorularını düşünmeden internette gezinebileceğiz.

Bu tarz uğraşlara ihtiyaç duymayacağımız günler dileğiyle!