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

Дарбазага кайсы инсандык жетет

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

iptables -t nat -S POSTROUTING

Ошол тизмени жогорудан окуңуз. Жогору жакка жакын masquerade эрежеси ар бир дал келген агымдын булагын кайра жазат, ал эми андан кийин коюлган кардарга жараша жазуулар мындан ары жок дарекке дал келет. Эки LAN түзмөгү бир туннелди бөлүшүп, бир ички дарек катары келгенде, долбоор брандмауэрден мурун өзгөрүшү керек: алардын булак диапазондорун өзүнчө кармаңыз же ар бирине өз ички дарегин бериңиз.

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

Которуу даректи ойлоп таба албайт

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

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

Жалпы masquerade алдында киргизиңиз

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

ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers

Биринчи буйрук интернетке кетүүчү пакет чындыгында кайсы интерфейстен чыгарын атайт. Экинчиси тизмени сап номерлери менен басып чыгарат. Жалпы masquerade жазуусу — үстүндө калуу керек болгон сап.

iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78

Жогорудагы эки эреже ар бири бир ички дарекке дал келет, дал келүүнү чыгуу интерфейси менен чектейт жана булакты ачык коёт. Кошуунун ордуна киргизиңиз: 1-орунда алар masquerade сабынан мурун бааланат. Экөөнүн ортосундагы тартип маанилүү эмес, анткени булактары ар башка. ens3 ди маршрут буйругу билдирген нерсе менен алмаштырыңыз жана башка брандмауэр менеджерлерин ошол илгичтерден алыс кармаңыз, анткени эки куралдын бир таблица жазышы туура эреженин таасири болбошунун кадимки себеби.

Булакты жаңы агым менен далилдеңиз

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

conntrack -L -s 10.88.4.20 -p tcp --dport 443

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

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

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