VPN pe aplicație sau split tunneling? Ce poate decide o rută Mac
O rută selectează destinații, nu procese. Comparați split tunneling pe destinație cu un profil VPN pe aplicație administrat și cu un proxy local ca a treia cale.
Două aplicații deschid conexiuni către același server de birou, și doar una dintre ele ar trebui să folosească tunelul. O rută nu poate exprima această dorință, pentru că tabelele de rutare se bazează pe destinații și nu au noțiunea procesului care a deschis socketul. Ce cer oamenii și de ce au nevoie sunt adesea lucruri diferite. Separați cele două înainte de a schimba orice configurație.
Selectorul este o destinație, niciodată un proces
Fiecare decizie de rutare începe cu o adresă de destinație și se termină cu o interfață. Nucleul nu întreabă niciodată ce binar a trimis pachetul, iar pe macOS nici pf nu rutează după proces, așa că o regulă de firewall nu poate pune o aplicație pe altă cale. De aceea același server, accesat dintr-un browser și dintr-un instrument de raportare, ia o singură cale pentru ambele. Separarea la nivel de aplicație trebuie să vină deci din altceva decât o rută: un plugin VPN care deține socketul, un proxy care preia conexiunea în numele aplicației sau o stivă de rețea separată. Niciuna dintre acestea nu este o modificare de rutare.
Două aplicații care vorbesc cu o singură adresă sunt cel mai curat test al unui proiect. Dacă răspunsul nu poate diferi între ele, proiectul este bazat pe destinație, oricum ar fi numit.
Ce oferă de fapt un split tunneling obișnuit
Un split tunnel instalează rute pentru prefixele private și lasă tot restul pe calea fizică. De obicei asta înseamnă cererea: ajunge la serverul de birou prin tunel, păstrează navigarea publică directă. Este simplu, toți clienții obișnuiți îl acceptă și este impus de același mecanism ca orice altă rută. Verificați destinația concretă cu route -n get în loc să citiți ruta implicită, pentru că un split tunnel lasă adesea ruta implicită neatinsă.
Editarea manuală a rutei implicite nu este o conversie către nimic. Se luptă cu restaurarea propriilor rute a clientului și, în clienții care instalează o politică de protecție, poate lăsa mașina într-o stare pe care nici dumneavoastră, nici clientul nu o așteaptă. Configurați split tunnel-ul în setările acceptate ale clientului.
Ce presupune un VPN pe aplicație în macOS
Un VPN real pe aplicație în macOS este o funcție Network Extension condusă de un profil de configurare. O încărcătură de administrare asociază aplicațiile alese unei configurații VPN, iar sistemul rutează apoi traficul acelor aplicații în consecință. Este o implementare administrată, ceea ce implică un MDM, un profil semnat și un administrator care le deține pe amândouă.
Instalarea manuală a clientului nu creează acea asociere, iar panoul obișnuit de setări nu face aplicațiile selectabile individual. Un furnizor poate expune propriile reguli de aplicație, iar acestea urmează documentația lui în locul unei reguli generale.
Trei căi de separare pe aplicație fără MDM
Acolo unde administrarea nu este disponibilă, un proxy este răspunsul practic. Setați configurația de proxy a aplicației sau folosiți un fișier PAC care selectează după destinație și protocol doar pentru acea aplicație.
Un proxy local termină conexiunea și o reemite prin tunel, astfel încât aplicația nu are niciodată nevoie de o rută. A doua opțiune este o stivă de rețea separată: o mașină virtuală sau un container cu propria rută implicită, pe care aplicația îl atinge printr-o adresă locală. A treia este să acceptați rutarea pe destinație și să renunțați la cerință, ceea ce este onest când ambele aplicații pot folosi tunelul. Toate trei sunt testabile și niciuna nu pretinde că o rută cunoaște procesele.
Formulați cererea astfel încât răspunsul să fie neechivoc
Descrieți fluxul de lucru în locul mecanismului: ce aplicație are nevoie de ce serviciu, dacă o altă aplicație trebuie ținută departe de același serviciu și ce ar trebui să se întâmple cât timp tunelul este căzut. Aceste trei răspunsuri aleg proiectul. Ele îi spun administratorului și dacă cererea este o modificare de rutare sau un proiect de implementare.
Includeți explicit cazul aplicației excluse. Un client care oprește o aplicație când calea ei protejată nu este disponibilă se comportă diferit de unul care o lasă să revină pe interfața fizică, iar utilizatorii observă imediat diferența. Numiți așteptarea în tichet. Apoi verificați pe mașina reală, pentru că același produs se comportă adesea diferit pe macOS față de Windows, iar documentația lui pentru macOS este singura sursă de încredere despre ce fac setările sale.