Shell'ге киргизгенде иштеген NAT эрежеси before.rules файлына коюлганда иштебей калат, анткени бул файл скрипт эмес. Ал таблица бөлүмдөрү, чынжыр декларациялары жана ар бир таблица үчүн COMMIT белгиси бар калыбына келтирүү форматындагы документ. Туура эмес жердеги сап бүт калыбына келтирүүнү токтотот же сиз бар деп эсептеген эрежелерди үнсүз таштайт. Төмөнкү нускама үзүндүнү фреймворк күткөн жерге коёт жана кийинки кайра жүктөөдөн мурун натыйжаны далилдейт.

Shell буйругу калыбына келтирүү файлы эмес

iptables -t nat менен башталган сап iptables бинардык файлына көрсөтмө, ал эми UFW окуган файл толук эрежелер жыйындысынын сүрөттөмөсү. Айырма косметикалык эмес: калыбына келтирүү форматы кайсы таблицада экенин, кайсы чынжырлар бар экенин жана таблица кайда бүтөөрүн билиши керек. Ошол документке коюлган буйрук же синтаксистик ката, же андан жаманы, туура эмес таблицага тиркелген эреже. Фреймворк бул файлдарды калыбына келтирүү куралдары аркылуу жүктөйт, анткени алар ырааттуу эмес, декларативдүү.

Документ бүтүндөй жүктөлөт, ошондуктан бир бузук бөлүм файлдын калган бөлүгүнүн колдонулушун токтотушу мүмкүн. Ошондуктан NAT үзүндүсүндөгү кичине ката чыпка эрежелерин да өзү менен кошо кулатат, ошентүп файрвол өзгөрүүсү үзгүлтүккө айланат.

Үзүндүнү бар таблица бөлүмүнүн ичине коюңуз

NAT үзүндүсүнүн формасы бар, жана форма ичиндеги эреже текстинен маанилүүрөөк. Таблица аталышы бөлүмдү ачат, чынжыр декларациялары эсептегичтерди орнотот, эрежелер уланат, ал эми COMMIT бөлүмдү жабат.

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.55.0.0/24 -o ens3 -j MASQUERADE
COMMIT

Жогорку пул жана интерфейс сиздин маанилериңиз үчүн орун толтургучтар; көчүрүүгө татыктуу бөлүк — түзүлүш. Эгер файлда *nat бөлүмү бар болсо, экинчисин ачуунун ордуна эрежени ошол бөлүмдүн ичине кошуңуз, анткени формат ар бир таблица үчүн бир COMMIT күтөт, ал эми бир таблица үчүн эки бөлүм — болушун күтүп турган оңдоо. Бөлүштүрүү чынжырларынын аныктамаларын бузулбаган абалда сактаңыз, жеткирүүчү өз интеграциясы үчүн кошкондорун кошуп. UFW фреймворкунун колдонмосу before, user жана after файлдарын жана тиешелүү COMMIT талабын документтештирет.

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

Талапкерди колдонбостон текшериңиз

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

sudo cp /etc/ufw/before.rules /root/before.rules.bak
sudo iptables-restore --test < /root/before.rules.bak
echo "exit: 0"

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

Орнотулган backend менен даректер үй-бүлөсүнө туура келген куралды тандаңыз. nft backend'ин шайкештик катмары аркылуу иштеткен хостко тиешелүү буйрук керек, ал эми IPv6 эрежелери таптакыр башка файлда жашайт.

Өткөрүүнү, NAT жана жетүү саясатын бөлүк кармаңыз

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

sysctl net.ipv4.ip_forward
sudo iptables -t nat -S POSTROUTING
sudo iptables -S FORWARD

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

Кайра жүктөөнү, баш тартууну жана VPN жоготууну текшериңиз

Үч байкоо толук кабыл алуу тестин түзөт: кайра жүктөө ийгиликтүү, уруксат берилген кардар операциясы иштейт, жана баш тартылышы керек болгон суроо чынында баш тартылат. Үчүнчүсү — өткөрүп жиберилүүчү, жана саясат жалпы бир нерсе кылып жатканынын жалгыз далили.

sudo ufw reload
sudo ufw status verbose
sudo iptables -t nat -L POSTROUTING -n -v

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

IPv4 NAT IPv6 жөнүндө эч нерсе айтпайт, ошондуктан эреже менен бирге ошол эскертүүдө эки үй-бүлө үчүн көздөлгөн камтууну көрсөтүңүз. Максат — ырааттуу башкарылуучу саясат, ал эми кокустан талданган үзүндү анын далили эмес.

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