Pazartesi, Kasım 4, 2024

Obfsproxy Kullanarak OpenVPN Trafiğinin Gizlenmesi

yüksek çözünürlüklü openvpn logosu

Bu makalede anonimliğe, güvenliğe ve internete erişim özgürlüğüne karşı çıkan hükümetler tarafından uygulanan yaptırımlara karşı OpenVPN hizmetini sürdürmeye çalışacağız. Bunu yapmak için iki yöntemimiz bulunuyor. Her iki yöntem de, VPN bağlantılarının engellenmesini tanımlayan ve yaptırım uygulanması aşamasında sistemi etkinleştiren “derin paket denetimi (DPI)” olarak bilinen gelişmiş gözetim teknolojisinin saptırılması amacı ile kullanılmasından kaynaklanmaktadır. OpenVPN bağlantıları protokolün hızı, güvenliği ve internet kullanıcıları arasında yüksek popülerliği nedeniyle öncelikli hedeftir.

Obfsproxy, şifrelenmiş bir yapı içinde OpenVPN paketlerini gizler ve derin paket incelemesinde kullanılacak olan “find and block” etkinliklerine karşı dirençli bir hale getirilir. Gelecekte herhangi bir noktada, OpenVPN‘in tespit ve engelleme işlemleri için daha fazla bağışıklık sağlanmasında protokol bazında değişiklik yapılması da gerekecektir. O zamana kadar DPI’dan kurtulmak için bu talimatları kullanabilirsiniz.

Unutmayınız ki bu yöntemler mükemmel değildir. Yeterli bir zamana sahip olduklarında, tanımlayamadığı veya şifresini çözemediği her şeyi bulabilir ve engelleyebilirler. Sunucu IP adreslerini ve anahtarlarını düzenli olarak değiştirerek, ulusal güvenlik duvarlarında gizlenmiş bir şekilde OpenVPN‘e karşı etkisiz olacaktır.

Obfsproxy için OpenVPN Sisteminin Yapılandırılması

Obfsproxy sunucu ve internet arasında oturacak. İstemcilerden gelen paketler şifresi çözülür ve openVPN sunucusuna yönlendirilir. Giden paketler, ağdaki herhangi bir gözetleme aracısına rastgele anlamsız gibi görünen, şifrelenecek ve istemcilere gönderilecektir.

Tanıdık host sağlayıcılarını kullanarak bir proxy sunucu oluşturmamız gerekiyor. DigitalOcean’ı ziyaret ederek ve bir hesap açarak işe başlayın. Bu işlem sırasında bağlantımı kullandığınız taktirde. Yaptığınız ilk ödemede extra 10-25 dolar arası bakiye kazanacaksınız.

Açtığınız hesapta en düşük özelliklerde bir makina açacağız. İşletim sistemi olarak Debian 9 kullanacağız.

apt-get install obfsproxy iptables-persistent

Ardından güvenlik duvarı kardeşimiz için kuralları gireceğiz. Hangi portu kullanacağınızı belirlediyseniz başlayalım. Ben tamamen keyfi bir şekilde 43256 portundan trafiği döndüreceğim için seçimimi bu yönde yapıyorum.

iptables -A INPUT -p tcp --dport 43256 -j ACCEPT
dpkg-reconfigure iptables-persistent

Tabi bu noktadan sonra makina açık hedef haline geleceği için mümkünse firewall kurallarını kendi ip aralığınıza göre tahsis edin. Sabit Ip adresine sahipseniz mümkünse tek ip adresinin bağlantılarını kabul edecek şekilde ayarlayın. Böylece aktif port tarama ataklarına ve tekrarlama saldırılarına karşı koruma sağlayın.

Ardından proxy hizmetinin devamlı açık kalmasını sağlamak amacı ile yeni bir session oluşturalım.

screen -S obfsproxy

Ardından geçerli vpn sunucusundan gelecek olan istekleri kabul etmek ve bağlantıları açmak için aşağıdaki gibi süreci başlatın.

obfsproxy  obfs2 --dest=127.0.0.1:443 --shared-secret=b2e3b923d190c8de99b2716019fc9cd7 server 0.0.0.0:43256

Obfsproxy için başlattığınız session işleminden çıkarmak için Ctrl + a tuş kombinasyonunu kullanın ve ardından klavyenizdeki d tuşuna basın. Süreci sonlandırmak için Ctrl + C tuş kombinasyonlarını kullanabilirsiniz. Ardından exit komutu ile de geçerli terminali sonlandırabilirsiniz.

Burada tanımladığımız ilk port VPN trafiğinin üzerinden akacağı port 43256 ise proxy bağlantımızın akacağı port. Ayarları kendi sağlayıcınıza göre düzenlemeyi unutmayın. Ayrıca bu işlemlerde sadece TCP bağlantıları geçerli olacağını hatırlatırım. UDP üzerinden çalışan herhangi bir VPN servisine obfsproxy tanımlaması yapamazsınız.

Kullanıcı tarafında yapılacaklar

Server tarafında yapacağımız işlemler sonlandı. Sıra geldi bağlantıyı kuracak Client tarafının ayarlamalarına.

Elinizdeki mevcut VPN yapılandırma dosyasında aşağıdaki satırları remote den hemen sonra ekliyorsunuz. Mevcut bağlantı noktasını ise yukarıda bizim tanımladığımız obfsproxy portunu veriyorsunuz.

socks-proxy-retry
socks-proxy  443

Konfigürasyon dosyamız sonunda aşağıdaki gibi oluyor. Her iki servise de kolaylıkla bağlanabiliyoruz.

remote 1.2.3.4 43256
socks-proxy-retry
socks-proxy  443

Her şey tamamsa bağlantınızı sağlayın.

obfsproxy obfs2  --shared-secret=b2e3b923d190c8de99b2716019fc9cd7 socks :443

Bu yaptığımız işlemde hız sorunu meydana gelebilir. Hal böyle alınca internet yavaşlamaları görebilirsiniz. Benim size tavsiyem OpenVPN servisini de aynı VPS üzerinde tutmaktır. Makinaya OpenVPN servisini bu makale ile kurabilirsiniz. Böyle bir durumda yukarıdaki ayarlamalar aynen geçerli olup kısmına 127.0.0.1 girmeniz gerekmektedir.

Ayrıca windows sistem üzerinde obfsproxy ile bağlantı sağlayabilmek için ilk önce sisteminize python kurmalı ve daha sonra paket yöneticisi aracılığı ile obfsproxy kurulumu gerçekleştirmek zorunda kalacağınızı unutmayın.

pip install obfsproxy

Daha sonra direk olarak bağlantı işlemini OpenVPN aracılığı ile gerçekleştirin. Bağlantı gerçekleştiğinde durum mesajları görünür. Bu mesajları daha sonra tekrar kontrol etmeniz gerekiyorsa OpenVPN menüsündeki View Log’e tıklayabilirsiniz. OpenVPN sunucunuzun, trafiği Obfsproxy yoluyla proxy edilmek suretiyle bağlandı.