VPN NAT UFW-тің before.rules файлында қайда тұрады және оны қалай тексеруге болады
before.rules ішіндегі NAT жолы COMMIT бар жарамды кесте бөлімінің ішінде болуы керек. UFW-ті қайта жүктемес бұрын кандидатты iptables-restore --test арқылы талдаңыз.
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 туралы ештеңе айтпайды, сондықтан ережемен бірге сол жазбада екі топ үшін де көзделген қамтуды көрсетіңіз. Мақсат — келісілген басқарылатын саясат, ал кездейсоқ талданған үзінді оның дәлелі емес.