Кайра жүктөө — адамдар өчүргүчтү сынай турган эң кеңири тараган ыкма жана эң көп калп айта турган сынак. Клиенттеги белги кутучасы жөн гана тандоо; маанилүүсү — тармактык стек көтөрүлгөн учур менен туннель чындыгында орнотулган учурдун ортосунда бир нерсе бөгөттөөнү таңуулайбы. Windows'то бул нерсе адатта Windows Filtering Platform'догу чыпка, Linux'то бирдик жүктөгөн эрежелер жыйнагы, macOS'то pf кармагычы, Android'де системанын өзүнүн дайыма-күйүк жана кулпулоо желектери. Бул түзүлүштөр кайра жүктөө учурунда абдан башкача жүрүм-турум көрсөтөт жана платформа деңгээлиндегилери гана бирөө кире алышынан мурун ордунда болот.

Кайра жүктөө үч өзүнчө суроо коёт

Суроону бөлүңүз. Биринчиден, саясат дискте жүктөө учурунда бир нерсе окуй турган формада барбы? Экинчиден, ошол окуучу кандайдыр бир трафик чыга алышынан мурун иштейби? Үчүнчүдөн, саясат сизге маанилүү трафикти камтыйбы, башкача айтканда ар бир процесс, эки дарек үй-бүлөсү жана DNS. Биринчисине «ооба» жана экинчисине «жок» деп жооп берүү адамдар кайра жүктөөдөн кийин сакталбаган өчүргүч деп айткан так ошол бузулушту жаратат: иштетилгенде трафик бир нече секундга сыртка чыгып кетет жана бирөө текшерүүгө бармайынча эч ким байкабайт.

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

Бөгөттөөнү калыбына келтирген объектти табыңыз

Linux'то netfilter эрежелери ядродо жашайт. Өзүңүз уюштурбасаңыз, жүктөө учурунда эч нерсе аларды кайра жазбайт: iptables-save кошуу netfilter-persistent, nftables.service жүктөгөн /etc/nftables.conf, же өз скриптиңизди иштеткен systemd бирдиги. Эмне күйүк экенин текшериңиз, өзүңүз конфигурацияладым деп эстегениңизди эмес.

systemctl is-enabled nftables netfilter-persistent 2>/dev/null
sudo nft list ruleset
sudo iptables -S OUTPUT

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

Get-Service | Where-Object { $_.Name -match 'vpn' } | Select-Object Name, Status, StartType
netsh wfp show state

Экинчи буйрук wfpstate.xml азыркы каталогго жазат. Клиент туташканга чейин эле бар болгон бөгөттөө аракеттүү чыпкаларды издеңиз. Base Filtering Engine жүктөөнүн эрте башталышында иштейт жана туруктуу желек менен кошулган чыпкаларды калыбына келтирет, ошондуктан кээ бир өчүргүчтөр клиент терезеси пайда боло электе эле трафикти тосот, кээ бирлери токтотпойт. macOS'то sudo pfctl -s info pf күйүкпү деп билдирет, sudo pfctl -s rules эмне жүктөлгөнүн көрсөтөт, ал эми VPN клиенттери адатта эрежелерин негизги жыйнакка эмес, кармагычка тиркейт. utun3 деп атаган эреже кийинки жүктөөдөн кийин башка интерфейске көрсөтүшү мүмкүн, анткени бул номер аткаруу учурунда берилет.

Тармак көтөрүлүү менен туннель көтөрүлүүнүн ортосундагы боштукту байкаңыз

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

systemd хостторунда табыштырбай, тартипти окуңуз. systemctl cat буйругун VPN жана өрт дубал бирдиктеринде иштетиңиз жана After= менен Before= карата network-pre.target же network-online.target барбы деп караңыз. network-online.target кийин тартиптелген өрт дубал бирдиги интерфейске утулат; network-pre.target талап кылган жана анын алдында тартиптелген бирдик жеңет. Windows'то барабар суроолор — кызматтын башталыш түрү жана анын көз карандылыктары, анткени Manual'га коюлган кызмат жүктөө учурундагы процессти тосо албайт. Эгер талабыңыз кирүүгө чейинки трафикти камтыса, аны тек түзмөк деңгээлиндеги түзүлүш канааттандырат: Always On VPN түзмөк туннели машина сертификаты менен аутентификацияланат жана колдонуучу кирүүдөн мурун туташат, жана Microsoft түзмөк туннелинин конфигурациясын документтештирет колдонуучу туннелинен өзүнчө. Android башка жолду тандайт, дайыма-күйүк VPN'ди таңуулайт жана ансыз туташууларды колдонмо процессинен эмес, системадан тосот.

Сынакты иштетиңиз, анан эки убакыт сызыгын салыштырыңыз

Эгер агылса эч нерсе турбаган багытка кайра жүктөңүз жана абалды боштуктан кийин эмес, боштук учурунда жазып алыңыз. Эң таза ыкма — жүктөө учурундагы зонд: платформа уруксат берген эң эрте убакытта башталган, демейки маршрутту жана өрт дубал абалын жаза турган, кыска убакыт чеги менен бир суроону сынап көргөн жана жергиликтүү файлга сап кошкон oneshot бирдиги же пландалган тапшырма. Ошол жазууну journalctl -b -u же система журналынан алынган VPN кызматынын башталуу убактысы менен салыштырыңыз.

Анан кадимки сынакты жүргүзүңүз: туннель өйдө, туташууну үзүңүз, түз трафик бөгөттөлөбү деп караңыз, калыбына келтириңиз. Экинчиден өтүп, биринчиден жыгылуу — кадимки натыйжа жана бул аткаруу клиент тарапта экенин, клиент туташканда колдонуларын, жүктөөдө эмес экенин билдирет. Мен текшерген акыркы машинада бөгөттөө NetworkManager'дин жиберүүчү скриптиден келген: бар жана туура жана интерфейс көтөрүлө электеги секунддар үчүн пайдасыз. Эки натыйжаны тең жазып коюңуз, анткени кайра жүктөөдөн аман калуу кайсы катмар аман калганын жана кайсы учурдан баштап экенин айтканда гана мааниге ээ.

Кайтуу жолуңузду бузбай боштукту жабыңыз

Эгер жүктөөдө бөгөттөө жок болсо, экинчи клиент эрежесин кошуунун ордуна аткарууну бир катмар төмөн жылдырыңыз. Эрежелер жыйнагын сактаңыз жана аны тармак колдонууга жарактуу боло электе тартиптелген бирдиктен жүктөңүз, ошондой эле ал бирдик өзү коргошу керек болгон DNS суроосуна же тармактык тиркемеге муктаж эмес экенине көз жеткириңиз. Аймак убакыт сыяктуу эле маанилүү: колдонуучу ID же cgroup боюнча дал келген эрежелер ар бир системадык демонду бөгөттөөнүн сыртында калтырат, ал эми IPv4 гана иштеген жыйнак IPv6 менен DNS'ти жеткиликтүү калтырат.

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

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

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