Маскарад же саясат боюнча маршруттоо: VPN шлюзу аркылуу LAN трафиги
Linux шлюзу LAN булактарын туннелдин дарегинин артына жашыра алат же аларды өзгөртүүсүз маршруттай алат. Тандоо алыскы тарап кимге таандык экенине жана анын кайтуу жолуна байланыштуу.
Бүт LANды VPN туннелинин артына коюу оңой бөлүгү; алыскы тарап бул кардарларды кандай көрөрүн чечүү оңой эмес. Маскарад ар бир LAN булагын шлюздун туннел дарегине кайра жазат, ошондуктан алыскы тарап бир өнөктөшкө жооп берет. Саясат боюнча маршруттоо баштапкы даректерди сактайт жана алыскы тарап аларга кантип жетүүнү билишин талап кылат. Экөө тең демейки эмес; тандоо алыскы тарап кимге таандык экенине жана түзмөк боюнча инсандык маанилүүбү экенине байланыштуу.
Эки долбоор ар башка нерселерди убада кылат
Маскарад LANды бир көрүнүүчү хостко чейин кыскартат: шлюз. Алыскы тармак ошол бир дарекке жооп берет, ал эми шлюз жоопторду агымды баштаган кардарга кайра которот. Алыскы тарапта жеке префикстериңизге маршрут керек эмес, ошондуктан бул долбоор аларды ташуудан баш тарткан провайдер менен да жашайт. Шлюз ар бир байланыштын булагы да болуп калат, ошондуктан алыскы тарап эки кардарды ажырата албайт.
Саясат боюнча маршруттоо ар бир кардардын дарегин бүтүн сактайт. Алыскы тармак чыныгы булакты көрөт жана аны журналга жаза алат, хост боюнча эрежени колдоно алат же жоопту түз ошол дарекке жөнөтө алат. Бул көрүнүү — бүт мааниси, жана ал милдеттенме менен келет: алыскы тарапта LAN префикси үчүн туннел аркылуу кайта турган маршрут болушу керек. Эрежени күйгүзө электе ошол маршрутту пландаңыз, анткени туннел кандай болбосун көтөрүлөт жана жалгыз жооптор гана жетишпейт.
Ийгиликсиздик режимдери убадалар канчалык ар башка болсо, ошончолук ар башка. Жок маскарад эрежеси жеке булактар менен чыгып, эч качан кайтпаган пакеттерди жаратат. Жок кайтуу маршруту саясат боюнча маршруттоодо ошол эле белгини берет, бирок оңдоо шлюзде эмес, алыскы маршрутизатордо.
Маскарад: алыскы тарапта бир өнөктөш
Маскарад жолунун маанилүү тартиби бар. Каалаган NAT эрежеси пайдалуу болушу үчүн алдын ала кайра жөнөтүү күйгүзүлүшү керек, чыпкалоо таблицасы эки багытта тең өтүүгө уруксат бериши керек, жана ошондон кийин гана туннел интерфейсинде котормо колдонулат.
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Кардарларга дагы эле шлюзга жол керек. Же шлюз алардын демейки маршрутизатору, же алар алыскы префикс үчүн белгилүү маршрут алып жүрөт; эгер өзүнчө маршрутизатор демейки бойдон калса, ага туннелдин даректери үчүн статикалык маршрут керек, болбосо шлюз аны көрө электе пакет туура эмес хопко кетет.
DNS — өзүнчө чечим. Алыскы тараптагы чечүүчү жообу кардарга кайта алган учурда гана жооп берет. Маскарад астында суроо шлюзден келгендей көрүнөт, ошондуктан чечүүчүнүн кайтуу жолу мурунтан камсыздалган; саясат боюнча маршруттоодо чечүүчүгө башка ар кандай алыскы кызмат сыяктуу эле ошол кайтуу маршруту керек.
Саясат боюнча маршруттоо: булакты сакта, кайтуу жолун кош
Саясат боюнча маршруттоо таблицадан жана аны тандаган эрежеден башталат. LAN интерфейсинен кирген трафик атайын таблицага жөнөтүлөт, жана ошол таблица туннел аркылуу демейки маршрутту алып жүрөт. Негизги таблица тийилбеген бойдон калат, ошондуктан шлюз өзү жараткан трафик башка жол менен жүрө алат.
ip rule add iif eth1 table vpn
ip route add default dev tun0 table vpn
Андан кийин алыскы тарап LAN префиксин туннел аркылуу кайра маршрутташы керек. Бул ушул шлюзде эмес, алыскы маршрутизатордогу жөндөө. Шлюз ошондой эле негизги таблица күткөндөн башка интерфейске келген жоопторду да кабыл алышы керек; катуу режим ошол пакеттерди таштаганда, бош артка жол чыпкасы (rp_filter 2ге коюлган) адаттагы оңдоо.
Эки туннел активдүү болгондо, ар бир агымды кире берүүдө белгилеңиз жана белги таблицаны тандасын. Тек кирүү интерфейсине караган эреже эки туннелдин тең трафигин бир таблицага жөнөтөт, ошондуктан экинчи туннел биринчиден агымдарды уурдайт. Бул белгини кайра туташуудан аман өткөн байланыш менен сынап көрүңүз, аралаш саясат дал ошондо көрүнөт.
Менчикке жана алыскы тарап эмнени журналга жазарына карап чеч
Эгер туннел провайдерде бүтсө, маскарадды колдонуңуз. Ал оператор жеке LAN диапазондоруңузду маршруттабайт жана шлюзүңүздүн артындагы жеке кардарларды ажыратууга себеби жок. Бир көрүнүүчү өнөктөш — анын саясаты колдогон жалгыз модель, ошондуктан ошону бериңиз жана котормону өз четинде кармаңыз. Провайдер бир өнөктөштү көрөт, бул дал анын саясаты күткөн нерсе, жана кардарларыңыз ошол бир инсандыкты мураска алышат.
Эгер эки четин тең сиздики болсо жана алыскы кызматтар булак даректерине таянса, саясат боюнча маршруттоо өзүнүн кошумча маршрутуна татыктуу. Анда брандмауэр эрежелери, колдонуучу боюнча кирүү жана аудит журналдары кардарларды ажырата алат. Эгер алыскы тарапка жалгыз жеткиликтүүлүк керек болсо, маскарад жөнөкөй жана кайтуу маршруту каталарынын бүт классын жоёт.
Гибриддик долбоорлор кадимки: өз тармагыңызда саясат боюнча маршруттоо, провайдердин четинде маскарад. Маанилүүсү — кайсы хоп которот жана кайсы хоп маршруттайт экенин жазып коюу, анткени бир кардар үчүн кокусунан кошулган NAT эрежеси ошол чынжырдагы ар бир кардардын булагын жашырат.
Бир кардардан текшериңиз, андан кийин экинчи кардардан
Тестти трафик башталган жерде жүргүзүңүз. Хост колдонгон маршрутту текшериңиз, пакеттин туннел интерфейсинде пайда болушун байкаңыз жана котормо үчүн conntrackти караңыз. Бул ырааттуулук пакеттин көздөлгөн жол менен жүргөнүн далилдейт, жөн гана бир жерге жеткенин эмес.
Кайра туташкандан кийин тестти кайталаңыз. Интерфейсти атаган маскарад эрежеси жаңы туннел дарегине туруштук берет; эски даректи атаган эреже бербейт. Андан кийин экинчи LAN хостту сынап көрүңүз, анткени бир машинада иштеген долбоор көбүнчө ошол машинанын өз маршрутуна көз каранды, шлюз саясатына эмес.
Тандалган моделди, которулган же сакталган булакты жана кайтуу маршрутунун ээсин шлюз жазууларына жазыңыз. Болбосо кардар же туннел кошкон кийинки адам божомолдойт, ал эми божомол — иштеп турган LAN-дан-VPNге конфигурациясын жарым-жартылай кылган жол.