Бир сыноо LANга өзүнүн WireGuard чыгуусун кантип берүү керек
Бир LANды атайын маршруттоо таблицасы жана жетүүгө мүмкүн эмес сакчы менен WireGuard чыгуусуна чектеңиз, ал эми шлюз өзүнүн кадимки WAN демейки маршрутун сактайт.
Үч долбоор бир эле лабораториялык маселени чечет: кичинекей LAN WireGuard өнөктөшү аркылуу чыгышы керек, ал эми шлюз өзү кадимки жогорку байланышын сактайт. Кызыктырган кыска жол — маршрутизатордун демейки маршрутун туннелдин ичине жылдыруу, бирок бул кутунун өз башкаруу жолун жана ал кайра жиберген бардык нерсени бузат. Кызыктуу вариант — бир интерфейс жана бир префикс менен чектелген саясат боюнча маршруттоо. Чынында бар машина жөнүндө үч суроого жооп берип, алардын арасынан тандаңыз.
Чыгуу кайда жашаарын чечиңиз
Биринчи суроо: бул хост дагы башка нерсе үчүн кайра жибереби? Атайын лабораториялык шлюз демейки боюнча баарын таштаган кайра жиберүү саясаты менен жашай алат. Өндүрүштүк милдеттери бар маршрутизатор андай кыла албайт, ал эми башкарылуучу брандмауэрдин үстүнө атаандаш эрежелер топтомун коюу — тыныгууларды пландаштыруунун дал ушул ыкмасы. Экинчи: кайра жүктөөлөр арасында эки саясат объектисин жана алардын тартибин кармай аласызбы? Үчүнчү: сиздин өнөктөш туннелдин булак дарегине уруксат береби жана интернетке чыгууну сунуштайбы? Бир гана жеке тармакты ачып берген өнөктөш башка продукт, жана эч кандай жергиликтүү маршруттоо өзгөртүүсү аны түзөтпөйт. Кайсы бир жооп жок болсо, чыгууну анын ордуна аттар мейкиндигине же бир жолу колдонулуучу виртуалдык машинага коюңуз.
Аттар мейкиндиги же VM эстутумду сарптайт жана таза жарылуу радиусун берет. Саясат боюнча маршруттоо эки эрежени сарптайт жана сизге оңдоого бир куту калтырат.
Булагыңызга уруксат берген чыгууну тандаңыз
Бул лабораториядагы ийгиликсиздиктердин көбү бир брандмауэр эрежеси пайда боло электе эле болот. Чыгуу оператору сиздин пакеттериңиз котормодон кийин алып жүргөн булак дарегин кабыл алышы керек, жана бул долбоордо ал LAN префикси эмес, туннелдин дареги. Ошондуктан маскараддоо долбоорго башынан эле кирет, кеч кошумча катары эмес.
Оператор менен үч нерсени ырастаңыз: өнөктөш туннелдин дарегиңизге уруксат берет, ал өзүнө карай аяктабай IPv4тү кайра жиберет, жана чыгуу NATын колдонот. Биринчисиз пакеттериңиз жетип, жоголот. Үчүнчүсүз алар жеке булак менен чыгып, кийинки секирикте өлөт. Андан кийин wg-quick өзүнүн демейки маршрутун орнотпогонун текшериңиз, муну Table = off тосот; бул жөндөө маршрут жасоону басат, өнөктөштүн AllowedIPs текшерүүлөрүн же анын DNS иштетүүсүн эмес.
Эки саясат объектиси багыттоону аткарат
Багыттоо үчүн таблица жана эреже керек. Таблица эки маршрутту кармайт: LAN интерфейсинен чыккан LAN префикси жана туннелден чыккан демейки маршрут. Эреже LAN интерфейсине келген жана ошол префиксти алып жүргөн трафикти таблицага жиберет. Булак дал келүүсү менен катар iif селекторун колдонуңуз, анткени шлюздун өз WireGuard пакеттери жергиликтүү жерде пайда болот жана кирүүчү интерфейске эч качан дал келбейт.
Сакчы издөөдөн мурун келет, кийин эмес. Ушул тартип — долбоордун бүткүл коопсуздук касиети.
Сакчы ошол эле селектордогу экинчи эреже, анын өкүмү unreachable. Ага бийикрээк сандык артыкчылык бериңиз, ошондо туннел көтөрүлүп турганда издөө жеңет. Туннелдин маршруту жоголгондо издөө эч нерсе кайтарбайт жана сакчы издей баштоону токтотот, аны негизги таблицадагы WAN демейкисине түшүүгө жол бербейт.
ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0
Чегинүү тешигин ачпас мурун жабыңыз
Алгач сакчыны, анан издөөнү орнотуңуз. Тескерисинче кылсаңыз, секунддарга созулган терезе калат, анын ичинде сыноо кардарынын трафиги жогорку байланышка жетиши мүмкүн.
Фильтр сүрөттү толуктайт. forward илгичинде сыноо префикси үчүн LANдан туннелге багытты жана орногон кайтуу багытын кабыл алыңыз, анан калганын баарын таштаңыз; ошол префикстин туннелдин интерфейсине NATы postroutingке түшөт. Дал policy dropни кайра жиберүү чынжырында калтыруу жок маршрутту агымга эмес, тынчтыкка айландырат. Кайтарып жолду фильтрлөө туннелдин интерфейсинде бош режимди талап кылат, анткени декапсуляциядан кийин келген коомдук булактын эң жакшы кайтарып маршруту WAN тарапта болот. Linux all жана ар интерфейс маанилеринин бийигин алат, ошондуктан туннелдин интерфейсин орнотуу бардык жерде текшерүүнү алсыз кылууга барабар эмес.
Муну ийгиликсиздик учуру менен далилдеңиз
Ядродон так суроо сураңыз: кардардын булак дарегин жана ал келген интерфейсти атаңыз. Экөө тең жок издөө башка суроого жооп берет жана эки учурда тең туура көрүнөт. Анан брандмауэр эсептегичтерине, өнөктөштүн өткөрүү абалына жана кардардын өз кызматына караңыз.
Алып салууну туура сынаңыз. Эреже менен фильтрди ордунда калтырып туннелди токтотуңуз: кардар токтоп калышы керек, ал эми шлюздун өз трафиги иштеп турушу керек. Анан жергиликтүү интерфейске тийбей өнөктөштү токтотуңуз, дал ушул учур гана маршруттын бар экенине таянган долбоорлорду кармайт. Акырында кайра жүктөп, эрежелердин тартибин кайра текшериңиз, анткени сакчыны алып салган ажыратуу илгичи бүт долбоорду негизги таблицага кайтарат. Таблицанын номерин, артыкчылыктарды жана интерфейс аттарын өзгөртүү билетине жазыңыз, анткени эреже кошкон кийинки адам — ушуну буза турган адам.