VPN сыртына порт боюнча бир гана жергиликтүү веб-кызматты багыттоо
Баштапкы порт эрежеси бир хосттун кызматын WAN аркылуу чыгара алабы, калган хост VPNди колдонуп турабы жана бул канчага турганын чечиңиз.
Бир хосттун кызматы интернетке физикалык өйдө агым аркылуу жооп бериши керек, ал эми машинедеги калган нерселердин баары туннелди колдонууну улантат. Саясатка негизделген маршруттоо бул жүктү көтөрө алабы, аны үч шарт чечет жана ар бирин эреже жазганга чейин текшерүү арзан. Кызмат ушул хостто бүтүшү керек, DNAT же багытталган порттун артында эмес, VPNдин өз эрежелери өзгөчөлүккө жол бериши керек, жана сиз сурамды эмес, жоопту дал келтиришиңиз керек. Үчөөнүн бири ишке ашпаса, төмөнкү командалар катасыз жүктөлөт, бирок пайдалуу эч нерсе кылбайт.
Эреже жазганга чейин үч шартты текшериңиз
Портту DNAT аркылуу жарыялаган контейнер же портту кайра багыттоонун артындагы сервер ушул хостто пайда болбой турган пакеттерди түзөт. Ошол пакеттер кайра багытталат, ошондуктан хосттун жергиликтүү киришине негизделген эреже аларды эч качан көрбөйт жана трафик демейки маршрутту ала берет. Улантуудан мурун кызмат чындыгында кайда иштеэрин тастыктаңыз, анткени адамдар көбүнчө ушул шартта жаңылышат.
Экинчи шарт — механика эмес, саясат. Туннелди айланып өткөн ар кандай маршрут туннелдин максатынан өзгөчөлүк болуп саналат, ал эми башкарылуучу хостто бул чечим саясаттын ээсине таандык, тайм-аутту оңдоп жаткан адамга эмес.
Жоопту дал келтириңиз, кардардын бара турган портун эмес
TCP 443тө угуп жаткан сервердин жообу хосттон баштапкы порт 443 менен чыгат. Ошол эле хосттогу браузер алыскы HTTPS сайтка туташканда убактылуу баштапкы порт жана бара турган порт 443 жиберет. Экөө тең 443 портунун трафиги жана алардын бирөө гана WAN таблицасын алышы керек, ошондуктан бара турган портту дал келтирүү туура эмес жарымын кармамак.
Жооптун багыты — ажырата алган нерсе. Баштапкы портту дал келтириңиз, эрежени жергиликтүү түзүлгөн пакеттер менен чектеңиз, ошондо эреже браузердин сурамдарына тийбестен кызматтын өз жоопторун камтыйт.
Эреже ага шилтеме кылганга чейин толук кайтаруу таблицасын куруңуз
Бош таблица маршрут жок дегенди билдирет, бул бузулган саясаттан көрө бузулган кызматка окшош. Аны адегенде толтуруңуз, хостто башка эч нерсе талап кылбаган таблица номери жана артыкчылыгы менен:
ip -4 route add table 100 192.0.2.0/24 dev eth0
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 iif lo ipproto tcp sport 443 lookup 100
Сандарды көчүрбөй, тирүү хосттон окуңуз. ip -4 rule show кайсы артыкчылыктар алынганын айтат, ал эми мурунтан бар артыкчылыкка эреже кошуу өз-өзүнчө туура көрүнгөн эки эреженин тартибин байкалбастан өзгөртөт.
Бул жерде чыныгы ишти эки селектор аткарат. iif lo — ядро хост өзү түзгөн пакеттерди кантип билдиргени, ошондуктан эреже сырттан келген кайра багытталган трафикти байкабастан кармай албайт. ipproto tcp sport 443 аны бир транспорт жана бир порт менен чектейт, бул талап жол бергендей тар. Протокол селекторун алып салсаңыз, эреже UDP 443тү да кармайт, ал башка жүрүм-турумдагы башка кызмат.
Жеке жоопторду туннелдин ичинде кармаңыз
Эгер ошол эле угуучу жеке тараптагы кардарларга да жооп берсе, 100-таблицадагы баарын кармаган WAN демейкиси ошол жоопторду өйдө агым аркылуу кайтарууга аракет кылат. WAN демейкисине баш ийбеши керек болгон жеке префикстерди кошуңуз же аларды кийинки саясат эрежесине түшүрүңүз:
ip -4 route add table 100 throw 10.90.0.0/24
throw маршруту бул таблицадагы издөөнү бүтүрөт жана пакетти эрежелер тизмесине кайтарат, ошондуктан кийинки VPN саясаты өз мүмкүнчүлүгүн алат. Ал өзү туннелге эч нерсе багыттабайт, ал эми кийинки эч бир эреженин дал келген маршруту болбосо, пакет баары бир ишке ашпайт; throwду оңдоо деп эсептөөнүн ордуна кийинки саясатты текшериңиз.
Кайтарма жолду фильтрлөө жана хосттун брандмауэр эрежелери келген сурамга дагы эле колдонулат. Валидацияны алсыздатканга чейин алардын чыныгы өкүмдөрүн караңыз, анткени маршруттоо өзгөчөлүгү rp_filter мүмкүн эмес деп эсептеген кайтаруу жолун кабыл алууга мажбурлабайт.
TCP, андан кийин QUIC, андан кийин кайра жүктөөнү текшериңиз
Ыйгарылган тышкы кардардан бир жана жеке тараптан бир туташуу ачыңыз, андан кийин жооп издөөнү чыныгы даректер жана порттор менен текшериңиз. Тышкы жооп 100-таблицаны алса, жеке жооп албаса, саясат сиз сураганды аткарып жатат.
HTTP/3 UDP аркылуу берилет жана TCP эрежеси менен дал келбейт, ошондуктан QUIC угуучусуна өзүнүн селектору керек, болбосо HTTPS иштеп турганда да ал туннелди колдонууну улантат. Кандай эрежелерге токтолсоңуз, аларды интерфейске ээ компонентте сактаңыз жана кайра туташуу же DHCP жаңыртуусунан кийин тастыктаңыз. Кайра жүктөөдөн кийин атаандаш менеджер иштөө убагындагы маршрутту алып салса, бул булакта оңдолушу керек болгон ээлик маселеси, үстүнө кененирээк NAT эрежелерин кошуунун себеби эмес.