Unde trebuie să stea o regulă de firewall Android când VPN-ul este pornit
Doar un singur VpnService poate fi activ, așa că o aplicație de firewall și una de VPN nu se suprapun. Urmați o cerere de lucru și puneți fiecare regulă acolo unde trece traficul.
Aveți o propoziție de politică: această aplicație poate ajunge la serviciul de lucru și la nimic altceva. Întrebarea următoare pare o alegere de produs, dar este o întrebare de locație, pentru că fiecare punct de aplicare posibil vede o altă submulțime a traficului telefonului. Un gateway vede doar ce intră în tunel. Un filtru de pe telefon vede doar ce i se permite să observe. Trecerea unei singure cereri prin ambele face răspunsul evident.
Începeți cu propoziția, nu cu produsul
Extindeți cerința înainte de a alege ceva. Asta înseamnă pachetul și profilul în care rulează, pentru că o aplicație din profilul de lucru este un utilizator diferit față de aceeași aplicație din profilul personal. Înseamnă destinația: gazdă, port și protocol, nu numele unui serviciu. Înseamnă calea DNS care rezolvă acel nume și înseamnă ce ar trebui să se întâmple când tunelul nu este disponibil.
Scrisă, politica pentru exemplu are patru linii: aplicația de lucru poate ajunge la serviciul de lucru; aplicația de lucru nu poate ajunge la nimic altceva; celelalte aplicații rămân neschimbate; fără tunel, aplicația de lucru este blocată în loc să treacă pe o cale directă. Fiecare linie are un proprietar, iar proprietarii nu sunt toți același.
Pasul 1: ce poate aplica telefonul însuși
Un firewall Android fără root este un VpnService care captează traficul local, chiar și atunci când nu există niciun tunel la distanță în spatele lui. Android permite un singur serviciu VPN activ per profil de utilizator, așa că o a doua aplicație de firewall nu se înlănțuie în spatele primeia. O înlocuiește, iar interfața pe care prima aplicație o filtra dispare.
De aceea instalarea unui firewall lângă un client VPN produce rar combinația pe care oamenii o așteaptă. Dacă firewall-ul pornește și VPN-ul se deconectează, nu s-a combinat nimic; cele două și-au schimbat locurile. O înlocuire de interfață nu este cooperare, iar simptomul este un tunel care cade mereu când este deschisă cealaltă aplicație.
Există totuși aranjamente acceptate: filtrare integrată în clientul VPN pe care îl folosiți deja, controale administrate ale platformei printr-un controler de politici de dispozitiv sau un profil de lucru, sau o arhitectură documentată de furnizor. Orice altceva este un experiment care trebuie reverificat după fiecare actualizare de aplicație.
Pasul 2: ce poate aplica gateway-ul
După ce traficul este decriptat la celălalt capăt, gateway-ul poate restricționa pachetele redirecționate la adrese, servicii sau identități VPN autentificate aprobate. Aceasta este aplicare reală pentru tot ce iese prin el și este locul potrivit pentru a limita accesul la subrețele private.
Ce nu primește este identitatea aplicației telefonului atașată fiecărui pachet IP obișnuit. Mai multe aplicații care împart o adresă de tunel sunt un singur subiect pentru gateway, dacă proiectarea nu le dă adrese separate sau identități autentificate separate. O regulă per utilizator la gateway nu este deci o regulă per aplicație pe telefon, oricum ar numi-o consola de administrare.
Pasul 3: listați ce nu ajunge niciodată
O aplicație exclusă din VPN care contactează un dispozitiv din apropiere nu ajunge niciodată la gateway, așa că un firewall de ieșire nu poate refuza un pachet pe care nu îl primește. Același lucru este valabil pentru o rută directă neintenționată în timpul unei defecțiuni și pentru expunerea de intrare în rețeaua locală de acces. Acelea sunt limite locale prin definiție.
Este valabil și invers: o regulă locală care permite o conexiune nu acordă acces prin ACL-ul de rețea privată al gateway-ului. O cerere poate fi supusă ambelor limite, iar satisfacerea uneia nu spune nimic despre cealaltă.
Pasul 4: atribuiți fiecărei reguli o cale
Puneți decizia într-un tabel înainte de a configura ceva, pentru că celulele goale sunt locul unde eșuează proiectele.
| Path | Who can enforce it | Blind spot |
|---|---|---|
| Work app to the work service, tunnel up | Gateway ACL on address and service, plus a local block on other paths | The gateway cannot see which app sent the packet |
| Work app to other destinations, tunnel up | Local app-aware filter, or the gateway if those destinations are addressed there | The local filter must be the active VpnService |
| Work app with no tunnel | Local deny, so the app cannot take a direct path | Requires the filter to survive the tunnel going away |
| Nearby LAN device | Local policy only | The gateway never sees it |
Forma care funcționează este două limite cu două sarcini. O limită locală conștientă de aplicații guvernează comportamentul telefonului, inclusiv revenirea directă, iar o limită de gateway guvernează resursele la distanță. Partea de gateway poate permite serviciul de lucru și poate refuza orice altă subrețea privată, în timp ce politica de pe telefon decide singură asupra unei căi directe pe care aplicația ar putea altfel să o ia.
Pasul 5: țineți transportul viu, apoi verificați
Orice politică locală ați alege, ea trebuie să permită transportul care stabilește și întreține VPN-ul. Blocarea acelui transport lasă telefonul fără tunel și fără politică, ceea ce nu aplică nimic coerent și este greu de diagnosticat, pentru că aplicația pur și simplu nu are rețea.
Apoi verificați fiecare linie a propoziției originale, nu impresia generală: aplicația de lucru ajunge la serviciul de lucru, aceeași aplicație este refuzată la altă destinație, o aplicație care nu este de lucru se comportă ca înainte, iar cu tunelul oprit aplicația de lucru nu revine la o conexiune directă. Verificați separat calea DNS, pentru că DNS-ul privat sau un resolver criptat pot ocoli un filtru care inspectează doar adrese.
Dacă unul dintre acești pași nu poate fi îndeplinit pe telefon, cerința este o întrebare de arhitectură, nu o setare de firewall. Împărțirea politicii între un dispozitiv pe care îl controlați și un gateway pe care îl controlați este de obicei răspunsul onest, iar documentația de conectivitate VPN pentru Android este locul unde puteți confirma ce va permite și ce nu va permite platforma unui singur serviciu.