Kill switch жана кабатташууга тыюу салган эрежелер карама-каршы багыттарды көрсөтөт, ошондуктан кадимки VPN жөндөөлөрү экинчисин эч качан билдирбейт. Kill switch кулаган туннелге жооп берет, ал эми бул талап көтөрүлгөн туннелге жооп берип, колдонмону сүрөттөн тышкары кармайт. Бир дизайн чечими көбүн чечет: колдонмо токтотулабы, иштетилишине тыюу салынабы, же жөн гана тармакка кирүүсүнөн ажыратылабы. Тармак тосмосунун эрежесине же процесстерди өлтүргөн циклге өтүүдөн мурун ошол катмарды тандаңыз, анткени байкоо аркылуу аткарылган эреже ар бир иштетүүдө терезе агызат.

Уламыш: kill switch программалардын иштетилишин токтотот

Kill switch трафикти башкаруу болуп саналат жана буга чынчыл: туннелдин абалына жараша пакеттерди уруксат кылат же четке кагат. Алардын эч бири программаны иштетүүдөн баш тартпайт жана эч бири кайсы аткарылуучу файл сокет ачканын текшербейт. Иш тактасындагы жарлык, пландалган тапшырма жана фондук жардамчы — баары колдонмонун атын билген эч нерседен өтпөй эле тармакка жетет. Бул эки механизмдин ортосундагы аралык — башаламандыктын көбү жашаган жер.

Программанын иштетилишин чындап чечүүчү түзүлүш — колдонмолорду башкаруу. Windows'то бул AppLocker же WDAC дегенди билдирет, ал эми башкарылуучу macOS'то түзмөк профили аткарган уруксат берилгендердин тизмесин билдирет. Экөө тең туннелден көз каранды эмес, ошондуктан эки талап бир билетке бириктирилип, кийин экөө тең аткарылбайт.

Куралдын атын атар алдында режимдин атын атаңыз

Эрежени үч абалдуу абал машинасы катары жазыңыз: кадимки колдонуу, VPN жумуш сессиясы жана чыгуу. Тыюу салынган кабатташуу ортоңку абалга таандык, кардар программасына эмес.

Абалды өзгөрткөн адам ырааттуу үч аракетке ээ: колдонмонун ишин бүтүрүү, анын кадимки өчүшүн суроо жана туннель көтөрүлө электе нуска кеткенин ырастоо. Ырааттуулук экинчи учта да маанилүү, анткени адегенде туташып, кийин программаны токтоткон VPN кабатташууга мурунтан жол берген. Эгер талап байланыш түзүүнү камтыса, туташкан индикаторду күтүү өтө кеч.

Эки тараптуу жаңжал чындыгында эмне кылат

Чындап systemd башкарган эки кызмат үчүн Conflicts= симметриялуу: бирин иштетүү экинчисин токтотот. Бирдиктердин маалымдамасы бул жүрүм-турумду документтеп, бири токтоону бүтүрүшү керек болгондо экинчиси башталаардан мурун ачык ырааттуулукту өзүнчө талап кылат. Ошол ырааттуулук жазуулары жок болсо, токтотуу менен баштоо жарышат, ал эми натыйжа убакытка көз каранды.

Бул тыюу салуу тизмеси эмес. Көз карандылыкты тескери туташтырыңыз, ошондо колдонмону иштетүү ордуна VPN токтойт, бул туннель болжолдуу учурда өзүнөн өзү ажыраганда шектенүүгө татыктуу бузулуу. Иш тактасындагы колдонмо systemd бирдиги эмес, NetworkManager байланышы да бирдик эмес, ошондуктан бул үлгү өзүңүз ороп берген кызматтар үчүн гана иштейт.

Биринчи иштетүүнү эмес, өтүүлөрдү текшериңиз

Төрт өтүү талаптын сакталышын чечет: колдонмо иштеп турганда сессияга кирүү, сессиянын ортосунда аны кайра иштетүү, VPN'дин ийгиликсиз башталышы жана атайын ажыратуу. Ар бирин текшерип, натыйжаны бирдик файлдарынын жанында сактаңыз. Төмөнкү буйруктар учурдагы мамилени окуп, андан кийин эң маанилүү өтүүнү машыктырат.

systemctl show work-vpn.service -p Conflicts -p After
systemctl start work-vpn.service
systemctl is-active office-sync.service
nmcli connection show --active

Үчүнчү буйрук колдонмону активдүү эмес калтырышы керек, ал эми төртүнчүсү сессия жүрүп жатканда туннель байланышын гана тизмеши керек. Башка натыйжа өтүүнүн такыр аткарылбаганын билдирет.

Сессия учурунда кайра иштетүү — ороп берүүгө негизделген дизайнды ашкерелеген учур, анткени иш тактасынан башталган жарлык иштетүү скрипти менен эч качан кеңешпейт. Эгер бул айланып өтүү маанилүү болсо, аткаруу колдонмолорду башкарууга таандык, VPN кардарына эмес. Сессиянын аякташын да документтештириңиз жана кирүүдө токтотулган ар бир процессти кайра ачуунун ордуна атайын улантууну артык көрүңүз. Ар бир өтүүнүн натыйжасын бирдик файлдары сакталган ошол эле жазууга жазыңыз.

Тектеш макалалар