Birisi gizli sekme göründüğünde VPN'i açan bir otomasyon yapmış ve bu güvenilir çalışmıyor. Bunun yapısal bir nedeni var ve otomasyonu ayarlamadan önce anlamaya değer. Android'in uygulama bazlı VPN kuralları uygulama paketlerini seçer ve gizli mod bir paketin içindeki bir durumdur, dolayısıyla kural ikisini ayırt edemez. Bildirim, tarayıcı çalışmaya başladıktan sonra tetiklenir, bu yüzden doğru tetikleyici bile geç gelir. Aşağıdaki kontrolleri sırayla yapın; dördüncü kontroldeki başarısızlık değiştirilmesi gerekenin yaklaşım, yapılandırma olmadığı anlamına gelir.

Birinci kontrol: uygulama bazlı kuralın neyi seçebileceğini doğrulayın

Android VPN uygulaması tünelini izin verilen veya engellenen uygulama listeleriyle kurar ve bu listeler paket adlarını alır. Normal moddaki Chrome ile gizli moddaki Chrome aynı pakettir, aynı kullanıcı kimliğine ve aynı ağ iznine sahiptir, bu yüzden Chrome'u içeren veya dışlayan kural ikisi için aynı şekilde geçerlidir. Platformun eşleştirebileceği sekme düzeyinde bir kimliği yoktur.

Bu, etrafından dolaşılacak bir kusur değil; API'nin sunduğu ayrıntı düzeyidir. Gereksiniminiz Chrome trafiğinin tünelden geçmesi ve geri kalan her şeyin dışarıda kalmasıysa, uygulama bazlı kural bunu tam olarak ifade eder. Gereksiniminiz yalnızca gizli sekmelerin tünelden geçmesi, normal sekmelerin doğrudan gitmesiyse, hiçbir uygulama bazlı kural bunu ifade edemez ve ne kadar bildirim mantığı eklerseniz ekleyin platformun sahip olmadığı bir seçici eklemez.

Kontrol ederken paket kimliği tuzağına dikkat edin. Beta veya üretici derlemesi kararlı tarayıcıdan farklı bir pakettir, bu yüzden birini kapsayan kural diğerini sessizce atlar:

adb shell pm list packages | grep -i chrome

İkinci kontrol: tetikleyicinin hiç yeterince erken olup olamayacağını test edin

Bir bildirim dinleyicisi görmesine izin verilen bildirimleri gözlemler. Gözlem, araya girme değildir: bildirim var olduğunda tarayıcı adı çoktan çözmüş ve bağlantıyı açmıştır ve o yolda hiçbir şey otomasyonunuzun bitmesini beklemez. Ardından VPN istemcisini başlatan görev, istemcinin arayüzünü, olası bir onay istemini ve tünel el sıkışmasını beklemek zorundadır; bunlar saniyelerle ölçülürken ilk istek milisaniyelerle ölçülür.

Algılamanın kendisi ikinci bir nedenle de kırılgandır. Bildirim metni sürümler ve yerelleştirmeler arasında değişir, bu yüzden bir sürüme uyan desen güncellemeden sonra uymayı bırakır ve hata sessizdir. Eksik bir bildirim gizli gezinmenin olmadığının kanıtı değildir; yalnızca dizenin değiştiği veya kanalın susturulduğu anlamına gelebilir.

Bu iş akışının meşru bir sürümü var ve o tepkisel değil sıralıdır: önce onaylanmış VPN'e bağlanın, tünelin trafik taşıdığını gerçekten kanıtlayan bir hazır olma sinyalini doğrulayın, sonra gizli oturumu desteklenen tarayıcı kontrolleriyle açın ve hazır olma kontrolü başarısız olursa durun. Bu, başlamak üzere olduğunuz oturumu, zaten çalışan bir oturumu koruyormuş gibi yapmadan korur.

Üçüncü kontrol: vermek üzere olduğunuz izni denetleyin

Bildirim erişimi, bir hizmetin yalnızca tarayıcının değil her uygulamanın bildirimlerini okumasına izin veren hassas bir yetkidir. Tek bir tarayıcı durumunu izlemek için bunu tanımadığınız bir otomasyon aracına vermek kötü bir değiş tokuştur ve deney bittikten sonra da erişim sürer. Erişilebilirlik tarafından yönlendirilen dokunuşlar daha kötüdür: bunlar arayüzün üzerinde bir betik katmanıdır, desteklenen bir VPN kontrol arayüzü değildir ve her yerleşim değişikliğinde bozulur.

Bir şey vermeden önce, aynı sonuca desteklenen bir mekanizmayla ulaşılıp ulaşılamayacağını sorun. Yanıt bir ilke gereksinimiyse, genellikle öyledir: platform, hiçbir dinleyici hizmet olmadan bir uygulama veya profil için tüneli zorunlu kılabilir.

Dördüncü kontrol: gereksinim uygulama olduğunda her zaman açık ve engellemeyi kullanın

Tarayıcı tünelin dışında asla iletişim kurmamalıysa, uygulama platform ayarlarına aittir, bir makroya değil. Android, tünel kurulmadığında trafiği engelleyen bir engelleme moduyla her zaman açık VPN'i destekler ve yönetilen cihazlar bunu ilke yoluyla alabilir. Varsaymak yerine cihazın şu anda neye sahip olduğunu doğrulayın:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

Sıfır olmayan bir uygulama değeri, bir paketin her zaman açık olarak yapılandırıldığı anlamına gelir ve 1 engelleme değeri, tünel dışındaki bağlantıların engellendiği anlamına gelir. Bu çift, en iyi çaba alışkanlığını bir garantıya dönüştürür ve yarışı tamamen ortadan kaldırır, çünkü tünel uygulama trafiğine izin verilmeden önce kurulur.

Burada iki sınırdan söz etmeye değer. İş profilleri kendi VPN yapılandırmalarını taşır, bu yüzden kişisel profilde doğrulanan bir kural iş profili hakkında hiçbir şey söylemez. Ve ayrı kurulmuş bir tarayıcı, başka bir uygulamanın açtığı özel sekme veya uygulama içi bir web görünümü kendi yönlendirmesine sahip farklı bir paket veya bağlamdır, bu yüzden farklı biçimde bir pencereyi ayrı alan adı saymak yerine gerçek paketi doğrulayın.

Beşinci kontrol: iş akışını yazın ve hata yolunu test edin

Neyi seçerseniz seçin, sırayı ve durdurma koşulunu belgeleyin. Kolaylık iş akışı için bu şu anlama gelir: tünel açık, hazır olma kanıtlanmış, gizli mod açılmış ve hazır olma başarısız olursa sert duruş. Uygulama yolu için şu anlama gelir: her zaman açık uygulama yapılandırılmış, engelleme etkin ve tünel hiç açılamadığında beklenen davranış, yani korumasız trafik yerine trafik yok.

Sonra yalnızca başarıyı değil hatayı da test edin. Oturum sırasında tüneli kesin ve tarayıcının ne yaptığını izleyin; VPN uygulamasının sürecini engelleyin ve hiçbir şeyin sızmadığını doğrulayın. Son olarak, kullanıcı belgelerinde iki gizlilik modelini ayrı tutun: gizli mod geçici tarayıcı durumunu denetler ve trafiği ağdan gizlemez, VPN ise trafiği taşır ama oturum açmaları veya özel oturumda gönderilen hiçbir şeyi silmez.

İlgili makaleler