VPN қосылған, бірақ файрвол әлі де бөгейді: қайсысын қалай анықтау керек
Туннель жұмыс істеп тұр, бірақ бір порт әлі сәтсіз. Жолды оқып, содан кейін әр қабаттағы саясатты қарап, екі басқарудың біреуін өшірудің орнына ең тар ережені өзгертіңіз.
Клиент қосылған дейді, ресурс әлі бас тартады, ал келесі әдеттегі қадам — бір нәрсені өшіру. Сол сөйлемдегі екі басқару түрлі жұмыс істейді: VPN қамтылған трафикке жол салады, файрвол әр қосылым бойынша трафиктің өтуін шешеді. Бас тартатын саясатпен жұмыс істеп тұрған туннель пайдаланушы орнынан дәл сынған туннельге ұқсайды, сондықтан міндет — қай қабат жауап беріп тұрғанын табу. Міне, мен ұстанатын тәртіп, тоқтау керектігін айтатын оқылыммен бірге.
Жолды саясаттан бөліңіз
Ақаудың пішінінен бастаңыз, өйткені бұл тегін ақпарат. Пакеттің тасталуы күту уақытын тудырады: клиент қайталап көреді, ештеңе қайтпайды, команда берілгенге дейін ілулі тұрады. Бас тарту бас тарту немесе қайта қою тудырады: бірдеңе жауап беріп, жоқ деді. Тыңдамайтын қызмет хосттың өзінде бас тартады, ешбір файрволсыз.
Бұл үш нәтиже түрлі қабаттарды нұсқайды. Күту уақыты бір жерде саясат үнсіз тастап жатқанын немесе жол машинадан мүлде шықпайтынын білдіреді. Бас тартылды дегені — хостқа жеттіңіз, оның стегі немесе хост файрволы бас тартты. Толық тыныштық, туннель интерфейсі көтеріліп, межеге жол болмаса, жол қате және ешбір файрвол ережесі оны түзетпейді.
Жолды бір өтуде оқыңыз
Бір ережені де қарамас бұрын туннельдің межені қамтитынын растаңыз. Тек кеңсе ішкі желісін тасымалдайтын бөлінген туннель сұранысты басқа ауқымға бағыттамайды, сонда ақау файрвол бөгеті сияқты көрінеді, бірақ олай емес:
ip route get 10.20.4.15
ip -brief address show
wg show
sudo ipsec statusall
Жол шығысы пакет қай интерфейстен шығатынын және қандай бастапқы адресті алып жүретінін көрсетеді. Егер бұл интерфейс туннель емес, сіздің физикалық желілік картаңыз болса, мәселе маршруттауда немесе туннельдің рұқсат етілген ауқымдарында, ол файрволға емес, VPN конфигурациясына жатады.
VPN-ге тән бір тұзақ жеке тексеруге лайық. WireGuard-та серіктестің AllowedIPs бір мезгілде жол және криптографиялық сүзгі: бастапқы адресі серіктестің рұқсат етілген жиынына сәйкес келмейтін пакет кез келген файрвол ережесі қаралмай тұрып тасталады. Сондықтан толық дұрыс хост файрволы саясатқа ұқсайтын үнсіз тастаудың артында тұруы мүмкін, ал түзету — ереже емес, кілт конфигурациясының жолы.
Жауап беретін қабаттағы саясатты оқыңыз
Жол дұрыс болғанда, саясатты хосттан сыртқа қарай жүріп өтіп, есептегіштері қозғалатын сол бір қабатты бақылаңыз:
ss -ltn | grep ':443'
sudo nft list ruleset
sudo iptables -S INPUT
sudo ufw status verbose
Тыңдап тұрған сокет ережелерден басқа сұраққа жауап береді. Портта ештеңе тыңдамаса, ядро қосылымнан бас тартады және ешбір кіріс ережесі қатысы жоқ. Сокет бар болып, қашықтағы клиенттен қосылым уақыты бітсе, жолдың бір жерінде тастау болып жатыр, ал ережелердің есептегіштері бұл осында болып жатқанын айтады.
Сырттан болжаудың орнына күдіктенген профиль немесе тізбек үшін журналдауды қосыңыз. Дереккөзді, межені және портты атайтын бір жазылған тастау қабатты да, ережені де анықтайды, сонымен қатар пакеттің жеткенін дәлелдейді, мұны клиент жағындағы ешбір тексеру анықтай алмайды.
Туннель сонда бітсе, шлюз шешімін оқыңыз
Сайт-аралық немесе қашықтан қатынау шлюзінде VPN пайдаланушыны аутентификациялайды, ал саясат ресурсқа рұқсат береді, бұлар бөлек рұқсаттар. Туннельге кіргізілген пайдаланушыға әрбір ішкі хостқа автоматты түрде рұқсат берілмейді, ал бас тарту көбіне туннельдің өзі сау кезде қайта бағыттау ережесінен келеді. Дәл осындай бөліну IPsec-те де көрінеді: трафикті таңдайтын қауіпсіздік саясаты оны өткізетін сүзгіден өзгеше, сондықтан екеуі RFC 4301.
Қайту жолын шығу жолы сияқты мұқият тексеріңіз. Күйлі сүзгілеу жауапты көруі керек, сондықтан туннель арқылы бір бағытта және оның айналасымен екінші бағытта асимметриялық маршруттау кездейсоқ көрінетін және тек кейбір клиенттерден қайталанатын тастауларды тудырады. Трафик шлюзге жетіп тоқтаса, бірдеңені кеңейтпес бұрын қайта бағыттау ережесі мен қайту жолын бірге оқыңыз.
Шлюз — NAT немесе маскировка ережесі нақты дереккөзді жасыра алатын орын да. Ішкі хосттар клиенттің орнына шлюз адресін көрсе, клиент пулына сәйкес келуі тиіс олардың хост файрвол ережелері ешқашан сәйкес келмейді, ал түзету әр серверде емес, шлюзде.
Ең тар қабатты өзгертіңіз, содан кейін тексеріңіз
Кең жөндеуге қарсы тұрыңыз. Хост файрволын өшіру, бәріне рұқсат беретін ереже қосу немесе әр интерфейсті сенімді профильге итеру — әрқайсысы өз жұмысын істеп тұрған басқаруды алып тастайды, ал өзгеріс оқиғадан кейін де қалады. Дереккөз ауқымымен және қатысты портпен шектелген ережені қарау оңай, жою оңай, қалған саясатты бүлінбей қалдырады.
Сәтсіз болған тестің өзімен, сол клиенттен тексеріңіз, содан кейін қайта қосылғаннан кейін тағы бір рет, өйткені туннель қайта келіссе, бұрын сәйкес келген ереже кейін сәйкес келмеуі мүмкін:
nc -vz 10.20.4.15 443
curl -v --max-time 5 https://10.20.4.15/
Жабпас бұрын:
- Межеге жол туннель интерфейсінен шығады, бастапқы адрес саясат күткенге сәйкес.
- Портта бірдеңе тыңдап тұр, ал бас тарту немесе күту уақыты болжам емес, аталған ережеге жатқызылады.
- Шлюз екі бағытта да қайта бағыттайды, меже ережелеріңіз жазылған дереккөзді көреді.
- Тест өтуі үшін ешбір басқару өшірілген жоқ, ал сіз жасаған өзгеріс бір дереккөз ауқымы мен бір портты атайды.