Malum telefon tarafında Android’e geçtiğim günden itibaren fazlaca kurcalamaya müsait bir cihaz da hayatıma girmiş oldu. Önceki yazıda bu sorunumun ayrıntılarını anlatmıştım uzun uzun. Bu kurcalamalardan sonuncusu telefon üzerinden OpenVPN tüneli kurma konusunda yaşadım ki yazımızın öncelikli amacı da bu deneyimi paylaşmak.
Öncelikle OpenVPN nedir, tünelleme nedir bunlardan kısaca bahsedeyim. VPN (Virtual Private Network) özetle açık (Public) ağlar üzerinden özel (Private) ağlara erişmek / ağ kurmak için kullanılan teknolojilerin ortak adıdır. Mesela evinizdeki internet üzerinden (Açık / Public Ağ) iş yerinizdeki özel ağa (Kapalı / Private) bağlanmak istediğinizde kullanabileceğiniz teknolojilerden birisidir VPN. Örnek üzerinden devam edersem, evinizdeki bilgisayarı iş yerinizdeki ağa dahil edebilmek için iki ağ arasında kapalı bir haberleşme tüneli kurulması gerekli oluyor tahmin edebileceğiniz gibi. Bu vasıtayla evinizdeki bilgisayardan işyerinize ulaşması gereken paketler bu tünel vasıtası ile açık, güvensiz, internet gibi ağlardan geçebiliyorlar. VPN teknolojilerinden oldukça popüler olanlarından bir tanesi de OpenVPN. Adından anlaşılabileceği gibi açık kodlu bir protokol. Bir çok platformda destekleniyor ve (şahsi görüşüm) diğer VPN protokollerine göre en esnek olanı.
OpenVPN için de diğer VPN teknolojilerinde olduğu gibi bir sunucu bir de istemci gerekli. Sunucu tarafından kendi VPN sunucunuzu kurabilirsiniz mutlaka, ancak alttaki örnekte paralı OpenVPN hizmeti veren Tunnelr.com‘a bağlantıdan bahsedeğim. Aslında başta bahsetmem gereken bir şeydi sanırım bu. Telefondan tünel kurmak istememin ana sebebi sadece ABD’de yayın yapan Pandora Radio, Spotify gibi hizmetleri telefonum ile kullanbilmek. Bunun yanında güvenli görmediğim Wifi noktalarında da bu tip bir tünel ile veri transferlerimin güvenliğinden de emin olabileceğim. Bu ikinci madde biraz ucu açık bir konu farkındayım keza veri transferi, telefonum ile Tunnelr.com arasında güvenli fakat Tunnelr.com ve sonrası konusunda güven üzerine kurulu bir güvenlikten bahsedebilirim sadece.
Devam edelim. Bu andan sonra aşama aşama anlatayım; Önce Tunnelr.com dan aldığım OpenVPN hesabının düzenlenmesini yapalım.
- OpenVPN ayarları configurasyon dosyasını Tunnelr.com dan çektikten sonra telefonda internal sdcard içine openvpn isimli bir klasör açıp, dosyaları extract ederek ilgili klasöre atıyoruz.
- Aynı (keyfinize göre farklı da olabilir) klasöre bir dosya yaratıp, ilk satırına Tunnelr.com kullanıcı adımızı, ikinci satırına Tunnelr.com şifremizi yazıp kaydediyoruz. Bu dosyanın adı ve uzantısı çok önemli değil. Bir sonraki aşamada gerekli sadece.
- Ayar dosyalarından (.conf, .opvn) istediğimiz bir tanesini text editörü ile açıp içerisindeki
auth-user-pass
satırının sonuna bir önceki adımda kaydettiğimiz dosyanın adını yazıyoruz, örneğin
auth-user-pass /sdcard/openvpn/pass.txt
- Dosyayı kaydediyoruz. OpenVPN bağlantı ayarlarımız şu an hazır. Ek olarak aynı dosya içerisinde ca, cert ve key ayarları relative olarak ./ şeklinde verilmiş. Bir sorun çıkarmayabilir fakat ben peşinen hepsini /sdcard/openvpn/ şekline getirdim.
Şimdi OpenVPN’in telefona kurulumuna geldi sıra.
Önce burada okuyup uygulayacaklarınızdan sorumluluk kabul etmeyeceğimi peşinen belirtmek isterim. İşleme başlamadan önce CWM ile mutlaka full bir backup almanızı da şiddetle tavsiye ederim.
Burada anlatacaklarım önceki yazıda bahsettiğim XXKKA kurulu N7000 Samsung Note telefonum için geçerli. Her telefon için bazı aşamaları farklı uygulamak gerekebiliyor. Aslında OpenVPN kurulumu çok zor bir konu değil, piyasada bir iki tane Installer’da mevcut fakat benim kullandığım SheepRom ve CF-Root ile installer’ların uyumsuzluğu sonucu maalesef kurulumdan başarılı bir sonuç alamadım. Son çözüm olarak manuel kurulum yaptım ki aşağıda yazacaklarım da manuel kurulumun adımlarıdır aslında.
Aynı hatalara düşmemeniz açısından doğru yöntemden önce neleri hatalı yaptım ondan bahsedeyim. Birinci olarak cihazdaki default busybox kurulumu OpenVPN Installer’larla sorun çıkardı. Normalde /system/xbin ya da /system/bin klasörüne kurulan busybox benim kullandığım rom da /sbin klasörüne kurulmuş. Installerlar bu anda zaten devre dışı kaldılar otomatik olarak. Çünkü busybox kurulumunu bu iki klasörde arıyorlar. Bu sorunu önemsemeyip devam edince openvpn’in bağlandığını fakat cihazın internet bağlantısının tünele yönlenmediğini göreceksiniz. Bunun sebebi openvpn’in ifconfig ve route komutları için busybox’a ihtiyaç duyması. Bu iki komuta bir şekilde erişemediği anda içinden veri geçmeyen, doğru yönlendirilmemiş bir tünel kurmuş oluyorsunuz.
Forumlarda bu sorunun çözümü olarak busybox kurun diye öneriliyor. Bunu yapmadan önce mutlaka kullandığınız rom’un ikinci bir busybox kurulumu ile çalışıp çalışmayacağından emin olun. Benim kullandığım rom’da bu mümkün değil(miş). Bunu araştırma yapmadan deneme yanılma ile görünce CWM dahil bir çok şeyin sorun yaşaması ve benim için kısa bir kabus restore süreci yaşamam gerekti. Busybox kurulumu eğer çok gerekli değil ise yapılmaması gereken bir şey(miş). Bir telefonda iki tane busybox’ın olması symlinklerin farklı kurulumlara bağlanması nedeniyle telefonu bir çorbaya çevirebiliyor kısa zamanda.
Bu kadar yanlıştan sonra doğru kısımlara geçelim. Önceki yazıda bahsettiğim gibi devamdaki komutları uygulamak için ücretsiz dağıtılan android sdk ihtiyacınız var. Android SDK yı çektikten sonra içerisinde gelen download manager ile platform tools’u indirmeniz yeterli.
- İlk olarak manuel kurulum için şu adresten android için derlenmiş OpenVPN’i çekin.
- İndirdiğiniz dosyanın içerisindeki “openvpn-static-2.1.1″ dosyasını bilgisayarınızda bir klasöre çıkartın ve adını “openvpn” haline getirin (örnekte, c:\ altında)
- Bu dosyayı şu şekilde adb push ile /system/xbin altına atın
adb remount adb push c:\openvpn /system/xbin
- Şimdi alttaki şekilde telefonun komut satırına bağlanıp attığınız dosyayı çalıştırılabilir hale getirin.
adb shell su mount -o rw,remount /dev/block/stl6 /system chmod 555 /system/xbin/openvpn
- Son olarak ifconfig ve route komutlarını openvpn’in aradığı /system/xbin/bb yoluyla telefonda kurulu olan komutlar arasında bağlantı kurmaya geldi. Bu noktada komutları telefonda aratmanız en sağlıklı çözümü sağlayacaktır. Benim durumumda busybox /sbin içerisinde kurulu olmasına rağmen komutlar /system/bin altına bağlanmıştı. Symlinkleri şu şekilde kuracaksınız
ln -s /system/bin/ifconfig /system/xbin/bb/ifconfig ln -s /system/bin/route /system/xbin/bb/route
- Android Marketten ücretsiz OpenVPN Settings uygulamasını kurun ve çalıştırın. Uygulama içerisinde en başta düzelttiğimiz Tunnelr.com konfigürasyon dosyasını göreceksiniz. İlgili dosyayı seçtiğinizde tünel bir kaç saniye içerisinde kurulacaktır.
Burada bahsettiğim yöntemde “tun” modülü kurulumu yok. Çünkü kullandığım rom da dahili olarak bu device gelmekte. Eğer sizde bu device mevcut değilse xda-developers ve ya google kullanarak telefonunuz için derlenmiş “tun” modülünü bulup telefona push etmek ve ardından OpenVPN Settings de bu modülü aktive edecek ayarları yapmanız gerekli.
Bitirirken, bu aralar biraz Tasker‘a sardım, oldukça işlevsel olarak kullanılabileceği alanlar var. Lokasyon bazlı, işlevsel bazlı bir sürü farklı alan. Bir sonraki yazım Tasker konulu olacak sanırım.
Son olarak eğer tünel kurulumunda anlayamadığınız hatalar alıyorsanız, tüneli adb shell üzerinden openvpn –config /sdcard/openvpn/configdosyası komutu ile kurmaya çalışın. Duruma göre verbose arttırıp soruna ait açıklamaları shell’den almanız ve sorunu daha kolay anlamanız mümkün olacaktır.

Post a Comment