WireGuard іске қосқан хаб теңдестік топтарын әр топ үшін жеке интерфейс немесе маршруттау кестесінсіз бөлек ұстай алады. Бұл жұмысты екі механизм атқарады және оларды шатастыру саясат дұрыс көрініп, ештеңе істемейтін әдеттегі себеп. Бір қабат көз мекенжайын кім талап ете алатынын шешеді. Екіншісі бұл пакеттің қайда кетуіне рұқсат екенін шешеді.

Екі жұмыс, бөлек ұсталған

Туннель қабаты тар сұраққа жауап береді: осы теңдестің кілті осы ішкі көз мекенжайына рұқсат берді ме. Жіберу қабаты кеңірек сұраққа жауап береді: бұл пакет сол межеге шыға ала ма. Ешқайсысы екіншісінің сұрағына жауап бермейді және ешқайсысы жалғыз өзі толық қатынау саясаты емес.

Осы бөлінуге байланысты теңдес аутентификациядан өтіп, дұрыс мекенжай алып та, жетпеуі тиіс хостқа жете алмауы мүмкін. Бұл керісінше жағдайды да түсіндіреді: бәріне рұқсат беретін firewall ережесі кім қандай мекенжайды талап ете алатыны туралы ештеңені дәлелдемейді.

Екі қабатты бірге жобалаңыз, содан кейін екеуін де сынаңыз. Бір қабатта дұрыс, екіншісінде сыналмаған конфигурация әдепкі мәнге байланысты ашық немесе жабық түрде сәтсіздікке ұшырайды.

Әр теңдеске тек өз мекенжайын беріңіз

Көпхостты теңдестер сізді сервер жағында бүкіл топ ауқымын беруге азғырады. Бұл рұқсат көз мекенжайын талап ету, сондықтан бұзылған немесе қате конфигурацияланған клиент ауқымдағы кез келген мекенжайды ұсына алады және туннель оны қабылдайды. Әр теңдеске өзінің ішкі мекенжайы үшін /32 тағайындаңыз. Топ ауқымдарын тек клиенттерде орнатыңыз, онда олар сол клиенттің қай межелерге жете алатынын сипаттайды, қандай көздерді пайдалана алатынын емес.

Содан кейін firewall сенуге болатын көзбен салыстырады. Топ ауқымына жазылған ереже пайдалы топтастыру болып қалады және ол тек бірде-бір теңдес басқа мүшеге тиесілі мекенжайды талап ете алмағанда ғана мәнді болады.

Топтарды бөлетін жіберу саясатын жазыңыз

Мұндағы қызықты трафик бір туннель интерфейсінен кіріп, шығады, сондықтан ол хосттың кіру жолын емес, жіберу жолын кесіп өтеді. Ережелер хостқа иелік ететін қандай firewall менеджерінің болсын қолданыстағы жіберу тізбегіне жатады және олар толық ережелер жиынтығы емес, үзінділер.

iifname "wg0" oifname "wg0" ip saddr 10.66.10.0/24 ip daddr 10.66.10.0/24 accept
iifname "wg0" oifname "wg0" ip saddr 10.66.20.0/24 ip daddr 10.66.20.0/24 accept
iifname "wg0" oifname "wg0" drop

Алғашқы екі ереже әр топтың ішінде трафикке рұқсат береді. Соңғысы сол интерфейстен өтетін қалғанның бәрін блоктайды және топтар арасындағы оқшаулауды дәл осы жасайды. Қажет болса, екінші мекенжай тобы үшін айқын ережелер қосыңыз, өйткені IPv4 үшін жазылған drop IPv6 мінез-құлқына рұқсат бермейді және оны сипаттамайды.

Тәртіп саясаттың қолданылуын шешеді

Ережелер тәртібі үзіндінің өзінен маңыздырақ. Орнатылған қосылымдарды қабылдайтын жалпы ереже осы жазбалардан бұрын тұрса, ескі топаралық ағын жалғаса береді, сондықтан оқшаулау тек жаңа қосылымдарға қатысты болады. Қайта жүктеу алдында осы екі нәтиженің қайсысын қалайтыныңызды шешіңіз.

Қабылдау үкімі де бір ілгектегі тізбектер арасында әрдайым түпкілікті бола бермейді. Егер басқа базалық тізбек кейінірек іске қосылса, тиімді саясат қосынды, сондықтан түзеткен файлды емес, есептегіштерді қараңыз. Есептегіштер қолда бар ең арзан дәлел. Пакет саны жоқ ереже сәйкес келмейді, ал кейінгі тізбек қабылдап жатқанда сәйкес келетін ереже drop дұрыс емес жерде екенін айтады.

Файл санын емес, матрицаны сынаңыз

Күтілетін нәтижелердің шағын матрицасын құрып, әр ұяшықты тексеріңіз. A тобынан A тобына жұмыс істеуі керек, B тобынан B тобына жұмыс істеуі керек, ал A-дан B-ға жұмыс істемеуі керек, екі бағытта да және қолдасаңыз екі мекенжай тобы үшін де.

nft list ruleset
wg show wg0 allowed-ips
ping -c 2 10.66.10.5
conntrack -L -s 10.66.20.7 2>/dev/null | head

Алғашқы екеуі ненің конфигурацияланғанын көрсетеді. Қате топ мүшесінен ping нақты не болатынын көрсетеді. conntrack тізімі ескі ағынның әлі қабылданып жатқанын көрсетеді және оқшаулау өзгерісінің тыныш түрде күшіне енбей қалуы дәл осылай болады.

Хабтағы хост қызметтері және оның артындағы LAN-ға қатынау жеке саясаты бар жеке жолдар. Матрица олардың қайсысын қамтитынын жазып қойыңыз, өйткені тек теңдес-теңдес трафигін тексеретін сынақ олардың ешқайсысы туралы ештеңе айтпайды.

Қатысты мақалалар