İnternetime Dokunma | VPN Kurulumu ve OpenVPN

Türkiyede “internet düzenlemeleri” adı altında kişisel hak ve özgürlüklerin ihlal edildiğine hepimiz şahit olmaktayız. Örnek olarak; insanların, “Ayda X TL ödediğim internet ile youtube.com’a giremiyorum!” şeklinde ki isyanlarında haklıydılar. Biliyorsunuz ki Türkiye’de youtube’un bile yasaklandığı dönemler oldu. Peki bu engellemeler şimdiye kadar nasıl oluyordu ?

DNS

DNS’ler web sitesi adreslerinin hangi ip adresli sunucuda hizmet verdiğinin kayıtlarını tutan ve bu kayıtlara gelen talepleri cevaplandıran sistemlerdir. Son kullanıcılar ADSL modem’lerini takıp internete eriştiklerinde, İnternet Servis Sağlayıcı (ISP)’ler tarafından belirtilen DNS sunucularını kullanırlar. Eğer DNS sunucusunda www.youtube.com için ilgili kayıt gerçekte youtube’a ait olmayan bir ip adresi ile güncellenmişse, bu DNS’leri kullanan herkes gerçekte youtube’a ait olmayan sunuculara erişmeye başlarlar. Mahkeme kararı ile bir siteye erişimin kapatılırken, kapatılan siteye ait DNS kayıtları İnternet Servis Sağlayıcı’larının DNS’lerinde değişitirilmekte. Bunun neticesinde Google yada Open DNS kullanmayan kullanıcılar siteye erişememektedir.

Ülkemizde yeni internet düzenlemesi gelmeden önce ki dönemde tüm engellemeler bu mantık üzerinden yapılmaktaydı. www.pastebin.com adresine gitmek istediğinizde, karşınıza alıştığımız açık mavi bir sayfa ve “Telekomünikasyon İletişim Başkanlığı” karşılıyor ise; DNS adreslerinizi değiştiriniz. OpenDNS kullanabilirsiniz.

Peki yeni düzenlemelerden sonra ?

DNS değişikliği bir çözüm olmaktan çıkacak. Çünkü erişim esnasında eskiden sadece DNS üzerinden engellemeler yapılırken şimdi mahkeme kararı olmadan direk TIB başkanının yetkisi dahilinde ip bazlı erişim engellenecektir. Bu, erişilmek istenen web sitesinin hizmet verdiği sunucunun ip adresine giden taleplerin durdurulması anlamına gelmektedir. DNS değişikliğinin artık bir çözüm olmaması, “artık dns değiştirmeye gerek yok.” anlamına gelmemektedir. OpenDNS sunucularının kullanılmaya devam edilmesi önemlidir.

VPN

VPN, Virtual Private Network anlamına gelmektedir. Bilgisayarınız fiziksel olarak bağlı olmadığı başka bir ağa uzaktan erişim sağlanması ile gerçekleşir.  VPN’in en güzel özelliği ise şifreli trafik sunmasıdır. Yani sizin bilgisayarınız ile VPN bağlantısı gerçekleştirdiğiniz ağ arasında ki tüm trafik şifrelenir. VPN bağlantısı gerçekleştiren bilgisayarın tüm internet trafiği bağlanılan VPN üzerinden gerçekleştiği için, trafiğinizin dinlemesi veya analiz edilmesi mümkün değildir. Buda yeni internet düzenlemeleri ile gelecek olan ip bazlı engellemeye çözüm üretmektedir. Çünkü erişmek istediğiniz sitenin ip adresi dahil tüm trafiğiniz şifrelendiği için, İnternet Servis Sağlayıcılarının bu noktada yapabilecek bir şey yoktur. Tahmin edebileceğiniz üzere aynı durum HTTPS hizmeti veren siteler içinde geçerlidir.

CentOS OpenVPN Kurulumu

Bu başlıktan sonra anlatılanlar teknik bilgi içerir. Linux sunucuya openVPN kurulumu ve kullanımına dair adımlar anlatılacaktır.

Öncelikle yurt dışından bir adet linux sunucu kiralanması gerekmektedir. Bu noktada maliyeti düşük ve performansı iyi olan DigitalOcean Aylık 5$ paket seçilebilir.

Updateler yapıldıktan sonra,i htiyaç duyulan paketleri içeren epel reposu sisteme eklenmelidir.

OpenVPN hazır bir konfigürasyon dosyası ile kurulmaktadır. Bu konfigürasyon dosyası /etc/openvpn klasörü kopyalanmalıdır.

Ardından bu dosya metin ediötür ile açılarak değişiklikler yapılmaldırı.

Öncelikle aşağıdaki satırın başında diyez ( # ) işareti varsa kaldırılmalıdır. Bu ayar değişikliği ile VPN networkü üzerinden internette erişmek istediğiniz adrese paketlerin gönderilmesi gerçekleşecektir.

Eğer VPN ağına bağlanan kullanıcıya sizin tarafınızdan belirlenmiş bir DNS adresi vermek istiyorsanız aşağıdaki satırlarda bulunan DNS adresleriniz değiştirebilirsiniz. Mevcut adresler OpenDNS’e aittir. Başka bir zorunluluk gelişmediği sürece değiştirilmesine gerek yoktur.

OpenVPN sistemde servis olarak çalışmaktadır. Kullanıcı yetkisi olarak OpenVPN servisinin yetkileri düşürülmek istenirse -ki güvenlik açısından yapılmalıdır- aşağıdaki satırların başında ki diyezler kaldırılmalıdır.

Sertifikaların Oluşturulması

VPN servislerinde, VPN’e bağlantı gerçekleştiren kullanıcının bilgisayarı ile VPN networkü arasındaki trafik şifrelenmektedir. Bunun için aşağıdaki adımları takip ederek gerekli olan sertifikalar oluşturulmalıdır.

Not: Eğer “cp: cannot stat `/usr/share/openvpn/easy-rsa/2.0/*’: No such file or directory” hatası alıyorsanız, bu linkteki ajftek nicname’li kullanıcının ilk yorumundaki adımları uygulayabilirsiniz.

Ardından oluşturulacak sertifikası için tanımlamaların girileceği dosyada düzenlemeli yapılmalıdır. Dosya içeriğinde “KEY_” ile başlayan satırları değiştiriniz.

Değişiklik aşağıdaki örneğe benzer olacaktır.

Son olarak aşağıdaki komutları çalıştırarak sertifikalar oluşturulup OpenVPN’e tanıtılmalıdır.

OpenVPN’in kurulu olan Linux’un gelen paketleri gideceği adrese iletmesi için ip forward özelliği enable edilmelidir -arp poisoning’ci arkadaşlar..- . Ardından openvpn servisi başlatılacaktır.

Kişisel not: Hayatın hemen hemen her noktası Etki-Tepki hiyerarşi’ne göre işlemektedir. Bundan 4 sene önce DNS’i bilmeyen insanlar şimdi 4.2.2.3 ve 8.8.8.8’e teşekkür etmekteler. Bundan 1 sene önce Talcid’i sadece mide bulantısı için kullanan insanlar şimdi “Her yer talcid her yer direniş” demekteler. Şimdi ise VPN’i öğrenmekteyiz… Umarım bu blogda Dns Tunneling’e değinmek zorunda bırakılmayız. Gerekir ise değiniriz. “Bypasslayabiliyorum.. Size kolay gelsin.” yanılgısına düşülmemelidir. Çünkü tecavüz edilen hak ve özgürlükler sizinki değilse bile, bu memlekette ki bir başka vatandaşın yada üniversite okuyan öğrencilerin. 

Kaynakça: https://www.digitalocean.com/community/articles/how-to-setup-and-configure-an-openvpn-server-on-centos-6

  • Ali

    merhaba Mehmet Bey,

    Source ./vars yazdıktan sonra ./clean-all yaptığımda aşağıdaki hatayı alıyorum. digital oceanda serverim. root olarak giriş yapıyorum.

    [root@openvpndeneme easy-rsa]# ./clean-all

    Please source the vars script first (i.e. “source ./vars”)

    Make sure you have edited it to reflect your configuration.

  • Hurslandogan

    Merhaba, makelenizde repoları indirdikten sonraki kısıma ” yum install openvpn -y ” komutunu eklerseniz kusursuz bir döküman olacağına eminim.