VPN шлюзүнүн эки тарабына кармоо коюңуз жана бир агым төрт башка даректи көрсөтүшү мүмкүн. Булак NAT пакет кайдан келет деп ырастаганын кайра жазат; багыттоо NAT анын кайда барарын кайра жазат. Masquerade — үчүнчү багыт эмес, даректи белгиленген маанинин ордуна чыгуучу интерфейстен алган булак NAT эрежеси. Үчөөнүн кайсынысы чындап керек экенин атаңыз, ошондо «VPN бузулду» билеттеринин көбү кайтаруу жолу тууралуу суроого айланат.

Ар бир эреже эмнени кайра жазат

Булак NAT, адатта SNAT деп жазылат, агымдын булак дарегин ал маршрутизатордон же шлюздөн чыкканда өзгөртөт. Кабыл алуучу кызмат которулган дарекке жооп берет, ал эми которуучу куту ошол байланыш үчүн сактаган абал менен өзгөртүүнү кайтарат. Linux'то бул абал conntrack ичинде жашайт, ошондуктан conntrack -L баштапкы жана жооп жуптарын катар басып чыгарат.

Багыттоо NAT, DNAT, анын ордуна багыттоону өзгөртөт. UDP 51820 портундагы жарыя дарекке жөнөтүлгөн пакетти 10.8.0.2:51820 дарегиндеги ички WireGuard серверине кайра жазууга болот. Үй маршрутизатору же булуттук жүктөм теңдештиргичи VPN угуучусун ушундай жарыялайт жана бул туннел кийин эмнени ташый алары тууралуу эч нерсе айтпайт.

Masquerade SNAT үй-бүлөсүнө таандык. Эреже эч кандай даректи атабайт; пакет чыкканда чыгуучу интерфейсте болгон даректи колдонот. Linux ага өз максатын берет жана бул дарегин DHCP же PPPoE аркылуу алган WAN интерфейсинде адаттагы тандоо.

Салыштыруу кайда жашаса, бузулуу ошондо аныкталат

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

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

Дагы бир кеңири тараган ката — туннел маршрутталуулукту жаратат деп күтүү. Пакеттери интернетке чыккан жеке кардарга жарактуу чыгуу жайгаштыруусу керек: демейки маршрут, өткөрүп туруучу шлюз жана адатта жарыя дарекке булак котормосу. Шифрлөө өз алдынча жеке даректи жеткиликтүү кылбайт.

Masquerade же ачык SNAT

Экөөнү убада кылгандары боюнча салыштырыңыз. Masquerade чыгуу дарегин тандайт, ачык SNAT аны бекитет. Туруктуу жарыя дареги бар шлюздө бекемдөө журналдарга жана өнөктөштөрдүн уруксат тизмелерине бир болжолдуу маани берет. Динамикалык WAN каналында бекитилген SNAT дареги ижара өзгөргөн учурда туура эмес болуп калат, ал эми Masquerade дал ушул учур үчүн курулган.

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

Саясатка негизделген IPsec ушунда эң катуу тиштеп алат. strongSwan'дын өткөрүп берүү боюнча нускамасы IP өткөрүп берүүнү күйгүзүүнү жана кардарлар үчүн булак NAT эрежесин кошууну баскычтап көрсөтөт, ошол эле документ өзүнүн баштапкы дарегин сактоого тийиш трафикти чыгарып салууну да камтыйт. Коопсуздук саясаты дал келгенге чейин булакты которуңуз, ошондо туннел көтөрүлүшү мүмкүн, бирок трафик дагы эле түшөт, анткени пакет эми келишилген селекторго окшошпойт.

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

Linux шлюзүндө эрежелерди окуу

Кардарлары 10.8.0.0/24 тармагында жана WAN интерфейси eth0 деп аталган алыскы жетүү шлюзүнө өткөрүп берүү күйгүзүлүп, агымга уруксат берген чыпка саясаты керек, ошондон кийин гана кандайдыр бир NAT эрежеси жардам бере алат. iptables версиясы эки багытты тең nat таблицасында кармайт:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
  -j DNAT --to-destination 10.8.0.2:51820

nftables формасы ошол эки илгичти аталган интерфейс жана ачык чынжыр менен колдонот:

nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820

Эки үзүндү тең чыпка чынжыры өткөрүлгөн агымды мурунтан кабыл алат деп эсептейт. NAT уруксат эрежеси эмес, ал эми туура которулган пакет бир таблицадан кийин да ыргытылышы мүмкүн. Жандуу салыштырууну conntrack -L аркылуу тастыктаңыз, эмне жүктөлгөнүн nft list ruleset же iptables-save -t nat аркылуу тастыктаңыз, андан кийин дарек чындап өзгөрөрүн көрүү үчүн эки интерфейсте тең кармоо жасаңыз.

Жаман эрежеге окшош бузулуу режимдери

Чач төөнөгүч трафиги — классика. Сервердин жарыя дареги аркылуу ички серверге жеткен ички кардарга кирүү жолунда DNAT, ал эми кайра чыгуу жолунда булак котормосу керек, болбосо сервер кардарга түз жооп берет жана жооп четке кагылат. Оңдоо — ошол ичкиден жарыяга учур үчүн экинчи, кууш эреже, баарына арналган кененирээк Masquerade эрежеси эмес.

Кош котормо — үнсүз. Оператор деңгээлиндеги NAT артында турган кардар сиздин шлюзүңүзгө кайра маршруттоо мүмкүн болбогон дарек менен келет, ошондуктан кайра которосуз. Иштейт, бирок журналдар эми жеке даректөөнүн эки секириктерин алып жүрөт жана ар кандай иликтөөгө эки салыштыруу тең керек. Саясатка негизделген IPsec үчүнчү бурулушту кошот: саясат дал келүүдөн мурун которуңуз, ошондо трафик өтпөй туруп көтөрүлгөн SA аласыз, бул NAT эмес, файрвол катасындай окулат.

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

Эрежени сактоодон мурунку текшерүү тизмеси

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

Шлюздөн эмес, кардардан сынаңыз. Шлюздүн өзүндөгү браузер кардарды которуу эрежесин толугу менен айланып өтүшү мүмкүн, ошондуктан ал жерде иштеген бет туннел тууралуу эч нерсе далилдебейт. Кардардан чыккан бир суроону жөнөтүңүз, эсептегичтерди жана conntrack таблицасын көзөмөлдөңүз жана иштеген жериңизде экөөнүн бири мүмкүн болсо, туннел кайра туташкандан жана WAN дареги өзгөргөндөн кийин кайталаңыз.

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