UFW ажырату қосқышы VPN-ді бөгеп тұр ма? Серіктеске рұқсат етіңіз
Сыртқа шығуды тыйып отырған ережеңіз туннельдің қол алысуын құлатады. ufw enable алдында қосылатын бір серіктес ерекшелігі саясатты ажырату қосқышына айналдырады.
Сіз бақылау тізімін орындадыңыз: сыртқа шығуды тыйыңыз, туннельге рұқсат беріңіз, ufw қосыңыз. Содан кейін клиент қол алысуда күтіп қалады және ешқашан қосылмайды, немесе қосылады да, ешбір бет жүктелмейді. Екі сәтсіздік те бір олқылықтан шығады. Туннельдің болуына мүмкіндік беретін ереже жоқ, өйткені туннель пакеттеріңіз шығатын интерфейс емес.
Неге tun0-ге рұқсат алғашында ештеңеге сәйкес келмейді
tun0-ні клиент сессия пайда болғаннан кейін жасайды. Осы сессияны құратын датаграммалар — провайдерге 1194 портына адрестелген қарапайым UDP пакеттер, олар физикалық бастапқы адреспен wlan0 немесе eth0 арқылы шығады. allow out on tun0 тек шығыс интерфейсі tun0 болатын трафикке сәйкес келеді, сондықтан қол алысу кезінде ол ештеңеге сәйкес келмейді.
Оның үстіне default deny outgoing қойсаңыз, сыртқы пакеттер интерфейс әлі пайда болмай тұрып тасталады. Клиент қайталап әрекет етеді, уақыт бітеді және TLS немесе қол алысу қатесін хабарлайды, бұл адамдарды сертификаттар мен MTU ішінен іздеуге жібереді, ал файрвол байланысты үнсіз жейді. Трафигіңізді ұстап қалуға тиіс ереже сол трафиктің ұсталуына кедергі жасайды.
Рефлекстік түзету ағып кетуді тұрақты етеді. sudo ufw allow out on wlan0, немесе әдепкіні қайтадан рұқсатқа бұру туннельді көтеріп, машинаны өшіргішсіз қалдырады: келесі жолы туннель құлағанда, бәрі физикалық адаптер арқылы жалғасады. Мен дәл осы екі өзгеріске жарты күнімді жоғалттым, қай пакетті шын мәнінде сүзетінімді түсінбейінше.
Екі пакет жиынтығына не қажет
Трафигіңіз файрволдан екі рет, екі пішінде өтеді. Ішкі пакет туннель адресінен tun0 арқылы сыртқа шығады. Сыртқы пакет физикалық адрестен серіктеске барады және сымда көрінетін жалғыз нәрсе — сол. Әр пішінге бір ереже:
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow out to 203.0.113.10 port 443 proto tcp comment 'tcp fallback'
Адрес мен портты өз профиліңіздегілермен ауыстырыңыз. WireGuard серіктестері әдетте 51820/udp арқылы жауап береді; TCP 443 арқылы жүретін OpenVPN профильдеріне оның орнына сол порт керек. Бөлшектер әртүрлі, пішін бірдей: екі ереже де тар, және бірге туннель өшіп тұрғанда машина жете алатын жалғыз межелерді анықтайды.
Реттілік — екінші аңыз. Шикі iptables-пен сіз тізбекті жоғарыдан төмен оқып, қай ереже жеңетінін ойлайсыз. ufw — терген тізіміңіздің жұқа қабығы емес; ол ережелеріңізді өз тізбектеріне компиляциялап, кірістіру нүктелерін таңдайды. ufw status оларды ufw ретімен басып шығарады, сіздің ретіңізбен емес. Ереже еленбегендей көрінсе, салыстырыңыз ufw show added компиляцияланған жиынтықпен iptables -S | grep ufw бірдеңені қайта жазбас бұрын.
Ерекшелік бір адрестің енінде қалуы керек
Серіктес ережесі клиент қоңырау шалатын адресті атап тұрғанда ғана дұрыс. Провайдерлер шеткі нүктелерді айналдырады, ал хост атын шешетін профиль DNS өзгерісін жаңа адреске ілестіреді, ал ереже ескісін көрсетіп қалады. Айлап жұмыс істеген туннель көтерілуден қалғанда, бірдеңені кеңейтпес бұрын ережедегі адресті клиент іздеп жүрген адреспен салыстырыңыз.
Бүкіл ішкі желіге немесе 1194 портындағы әрбір межеге кеңейту саясатты қайтадан тесігі бар файрволға айналдырады. Ерекшелік — өшіргіш; ол кең болған соң, өшіретін ештеңе қалмайды. Оны бір адресте ұстап, қай профиль мен провайдерге жататынын атайтын түсініктеме қалдырыңыз, өйткені алты айдан кейін адрес кездейсоқ болып көрінеді.
Атауларды шешу жеке жолға лайық. Іздеу туннель пайда болмай тұрып, физикалық интерфейс арқылы жүреді, сондықтан қатаң сыртқа шығуды тыйю саясаты клиентті өз серверін таба алмайтындай етіп қалдыруы мүмкін. Шешушіңіздің адресіне 53 портына рұқсат беріңіз, немесе бір рет шешіп, адресті профильде бекітіңіз. Әр интерфейсте DNS-ке рұқсат беру — шешім, әдепкі емес.
Саясатты туннель қажет болмай тұрып құрыңыз
ufw enable бүкіл саясатты бірден қолданып, тізбектерін қайта жүктейді, ал жұмыс істеп тұрған файрволда әдепкі саясатты өзгерту оларды да қайта жүктейді. ufw нұсқаулығы бұл SSH сияқты бар байланыстарды үзуі мүмкін екенін ескертеді. Сондықтан командалар осы ретпен жүреді, SSH ережесі қосудан бұрын және консоль сессиясы ашық күйде:
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose
ufw reset бұл блоктан әдейі шығарылған. Ол әр ережені жояды және файрволды өшіреді, ал қашықтағы хостта келесі қосу сессияңызды үзетін нәрсе. Егер бәрібір қалпына келтірсеңіз, SSH ережесін қосып, әрі қарай жүрмес бұрын консоль арқылы қайтудың екінші жолын растаңыз.
Реттілік сәндік емес. ufw жұмыс істеп тұрғанда қосылған ережелер ештеңені шайып кетпейді, бірақ әдепкі саясатты бұрған сәтте тізбектер қайта жүктеледі, ал ескі саясат рұқсат еткен сессия олармен бірге кетеді. Әдепкілерді, рұқсаттарды және қосуды бір өтуде жасаңыз, машинаға тәуелді емес кіру жолыңыз бар кезде.
Бұғатталған күйді сынап көріңіз және болдырмауды сақтаңыз
Сыналмаған өшіргіш — болжам. Клиентті әдейі ажыратып, бетті жүктеуге тырысыңыз: ол сәтсіз болуы керек. Қайта қосылыңыз, ол ешбір ережеге тиіспей қалпына келуі керек. sudo ufw status verbose әдепкілер мен журнал күйін растайды, ал ufw status numbered сынақ ережесі мақсатынан асып түскенде қайсысын жою керектігін көрсетеді.
Кері скриптті тура скрипттің жанында ұстаңыз. Сыртқа шығуды тыйю мен өлі туннелі бар машина өз жөндеуін жүктей алмайды, сондықтан болдырмау дискіде жатып, консольден оқылуы керек:
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
Оны туннель әлдеқашан өшіп, ережелерді алу қажет болғанда іске қосыңыз, кәдімгі қадам ретінде емес. Терминалды жаппас бұрын төрт нәрсе орындалуы керек: серіктес ережесі дәл бір адресті атайды, DNS-тің аталған ерекшелігі бар, қосу рұқсаттардан кейін келді, ал туннельді тарту қарапайым трафикті өлтіреді, бірақ клиентті мүлдем өлтірмейді.