Aplikacioni nuk duhet të ekzekutohet sa kohë VPN është ndezur: çfarë e zbaton atë
Ndërprerja e një aplikacioni sa kohë tuneli është lart nuk është kill switch. Vendosni kush e zotëron ndryshimin e modalitetit, çfarë bllokon një rinisje dhe çfarë mund të bëjë systemd dhe çfarë jo.
Kill switch-et dhe rregullat e ndalimit të mbivendosjes tregojnë në drejtime të kundërta, gjë që shpjegon pse cilësimet e zakonshme të VPN-së nuk e shprehin kurrë të dytën. Kill switch-i reagon ndaj një tuneli që ka rënë, ndërsa kjo kërkesë reagon ndaj një tuneli që është lart dhe e mban një aplikacion jashtë pamjes. Një vendim dizajni zgjidh pjesën më të madhe: nëse aplikacioni ndalet, pengohet të nisë, ose thjesht i hiqet aksesi në rrjet. Zgjidhni atë shtresë përpara se të arrini te një rregull firewall-i ose një lak që vret proceset, sepse një rregull i zbatuar me vëzhgim rrjedh një dritare në çdo nisje.
Miti: një kill switch pengon programet të nisin
Kill switch-et janë kontrolle trafiku dhe janë të sinqertë për këtë: lejojnë ose refuzojnë paketat sipas gjendjes së tunelit. Asnjëri prej tyre nuk refuzon të nisë një program dhe asnjëri nuk shqyrton cili ekzekutues hapi një socket. Një shkurtore desktopi, një detyrë e planifikuar dhe një ndihmës në sfond arrijnë të gjitha në rrjet pa kaluar nëpër diçka që e njeh emrin e aplikacionit. Distanca midis këtyre dy mekanizmave është vendi ku jeton pjesa më e madhe e konfuzionit.
Rregullimi që vendos vërtet nëse një program mund të nisë është kontrolli i aplikacioneve. Në Windows kjo do të thotë AppLocker ose WDAC, dhe në macOS të menaxhuar do të thotë një listë e lejuar e zbatuar nga profili i pajisjes. Të dyja janë të pavarura nga tuneli, prandaj dy kërkesat bashkohen në të njëjtën biletë dhe më pas asnjëra nuk përmbushet.
Emërtoni modalitetin përpara se të emërtoni mjetin
Shkruajeni rregullin si një makinë gjendjesh me tre gjendje: përdorim i zakonshëm, sesion pune VPN dhe dalje. Mbivendosja e ndaluar i përket gjendjes së mesme, jo softuerit klient.
Kush e ndryshon gjendjen zotëron tre veprime sipas radhës: të përfundojë punën e aplikacionit, të kërkojë fikjen e tij normale dhe të konfirmojë se instanca është larguar përpara se tuneli të ngrihet. Rendi ka rëndësi edhe në skajin tjetër, sepse një VPN që lidhet i pari dhe ndalon programin i dyti e ka lejuar tashmë mbivendosjen. Nëse kërkesa përfshin vendosjen e lidhjes, pritja për një tregues të lidhur vjen shumë vonë.
Çfarë bën në të vërtetë një konflikt dypalësh
Për dy shërbime që menaxhohen vërtet nga systemd, Conflicts= është simetrik: nisja e njërit ndalon tjetrin. Referenca e njësive dokumenton këtë sjellje dhe kërkon veçmas një rend eksplicit kur njëri duhet të përfundojë ndalimin përpara se tjetri të nisë. Pa ato zëra rendi, ndalimi dhe nisja garojnë dhe rezultati varet nga koha.
Kjo nuk është një listë ndalimi. Lidhni varësinë në të kundërt dhe nisja e aplikacionit do të ndalojë VPN-në në vend të saj, që është dështimi për të cilin duhet të dyshoni kur një tunel shkëputet vetë në një moment të parashikueshëm. Një aplikacion desktopi nuk është njësi systemd, dhe një lidhje NetworkManager as nuk është njësi, kështu që ky model funksionon vetëm për shërbime që i mbështillni vetë.
Testoni kalimet, jo vetëm nisjen e parë
Katër kalime vendosin nëse kërkesa qëndron: hyrja në sesion me aplikacionin në punë, rinisja e tij në mes të sesionit, nisja e dështuar e VPN-së dhe shkëputja e qëllimshme. Testoni secilën dhe mbani rezultatin pranë skedarëve të njësive. Komandat më poshtë lexojnë marrëdhënien aktuale dhe më pas ushtrojnë kalimin që ka më shumë rëndësi.
systemctl show work-vpn.service -p Conflicts -p After
systemctl start work-vpn.service
systemctl is-active office-sync.service
nmcli connection show --active
Komanda e tretë duhet ta lërë aplikacionin joaktiv, dhe e katërta duhet të listojë vetëm lidhjen e tunelit sa kohë një sesion është në punë. Një rezultat tjetër do të thotë që kalimi nuk zbatohet fare.
Rinisja gjatë sesionit është rasti që zbulon një dizajn të bazuar në mbështjellje, sepse një shkurtore e nisur nga desktopi nuk konsulton kurrë një skript nisjeje. Nëse ky anashkalim ka rëndësi, zbatimi i takon kontrollit të aplikacioneve dhe jo klientit të VPN-së. Dokumentoni edhe fundin e sesionit, dhe preferoni një vazhdim të qëllimshëm mbi rihapjen e çdo procesi të ndalur në hyrje. Shënoni rezultatin e çdo kalimi në të njëjtin shënim që mban skedarët e njësive.