DNS менен азыктанган nftables топтому WireGuard тарапка: өткөрүп берүү кантип иштейт
DNS жообу nftables топтомун азыктандыра алат, бирок топтом эч нерсени маршруттабайт. Багыттоо иштейби-жокпу аныктаган төрт өткөрүп берүүнү жана үч өмүрдү байкаңыз.
Ысымдар даректерге чечилет, ал эми бул даректер кийин маршруттоого таасир этүүчү брандмауэр топтомуна түшүшү мүмкүн, бул проксисиз ысымга негизделген багыттоону мүмкүн кылат. Куулук мында: төрт компонент туура өткөрүп бериши керек: чечүүчү, топтом, жаңы агымды белгилеген классификатор жана аны ташуучу жуп. Ар бир өткөрүп берүү башкача ийгиликсиз болот жана ар бири өз убактысын сактайт.
Долбоорду конфигурация эмес, чынжыр катары караңыз. Ар бир кадамдагы суроо: кайсы компонент чечимге ээ жана анын кириши жок болгондо эмне болот.
DNS жообу эмне кыла алат жана эмне кыла албайт
dnsmasq жооптордон даректерди nftables топтомуна көчүрө алат, бул азыктандыруу, маршруттоо чечими эмес. Бул опция, dnsmasq колдонмосунда документтелген, үй-бүлөнү, таблицаны жана топтомду атайт, ал эми анын алдындагы 4# гана A жазууларын тандайт, ошондуктан v6 багыттары өз жөнгө салуусун талап кылат. Топтом мурун эле болушу керек, анткени чечүүчү брандмауэр ээси жараткан нерсеге элементтерди кошот. Ал кадамда эч нерсе интерфейсти, таблицаны же жупту тандабайт.
Кардар да ысым үчүн ошол чечүүчүнү колдонушу керек. Өзүнүн шифрленген DNS'и бар колдонмо же саясатка чейинки кэштеги жооп, топтомдо эч бир жазуу жаратпай туташат.
Топтом кириш, маршрут эмес
Топтомдогу элемент дал келүү шарты. Бир нерсе ага карап, бул пакет жаңы агымды баштайт деп чечип, агымды туннелден өткөрүп жиберүүчү саясатты колдонушу керек. Linux'то бул адатта белги коё алган маршруттоо жөндөмдүү чыгуу жолу, белгиленген пакеттерди атайын таблицага жиберүүчү эреже жана ошол таблицадагы WireGuard түзмөгүнө көрсөткөн маршрут дегенди билдирет. Жалгыз мүчөлүк булардын эч бирин орнотпойт.
nft add set inet vpn_select office_v4 { type ipv4_addr\; }
ip rule add fwmark 0x40 table 200
ip route add default dev wg0 table 200
wg show wg0 allowed-ips
Жуп адамдар унутуп калган экинчи камтуу текшерүүсүн колдонот. WireGuard пакетти гана уруксат берилген даректеринде багыт бар жуп үчүн шифрлейт, ошондуктан жуптун тизмеси бул префиксти алып салса, интерфейске саясат маршруту жетишсиз. Тизмени менеджер кокустан түзгөн маршрутка таянып калбастан, маршруттоо ээсинин көзөмөлүндө кармаңыз.
Белгилер, таблицалар жана жуптун камтуусу
Белгилер жалпы ат мейкиндиги, ошондуктан маани да, маска да аларды колдонгон башка нерселердин баары менен макулдашылышы керек. Белгиленген трафикти атайын таблицага жиберүүчү эрежеге ошол таблицада дал келүүчү маршрут жок болгондо аныкталган натыйжа керек, анткени жоопсуз издөө кийинки эрежеге өтүп, пакетти физикалык интерфейстен сыртка чыгарышы мүмкүн. Атайын таблицанын ичиндеги blackhole демейки маршруту ошол тынч качып кетүүнү көрүнүктүү таштоого айландырат. Долбоор дагы эле кыла албаган нерсе — топтомго эч качан кирбеген багыт үчүн бузулуу учурунда жабылуу.
Туннелдин өз тышкы пакеттери классификатордон кутулушу керек. WireGuard куралдары дал ушул максат үчүн сокет белгисин беришет, аны колдонуу инкапсуляциянын өзү куруп жаткан интерфейске кайра маршрутталышын болтурбайт.
Ар бир өмүрдү өз-өзүнчө текшериңиз
Үч кампа үч график боюнча эскирет: чечүүчүнүн кэши, топтомдун элементтери жана көзөмөлдөнгөн туташуу. Аларды ушул тартипте текшерип, ар бири тийиштүү убакта кыймылдайбы, көз салыңыз. Төмөнкү буйруктар эч нерсени өзгөртпөстөн чечүүчүнү, топтомду, туташуу таблицасын жана саясат эрежелерин окуйт.
dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show
Элемент кошкон жаңы издөө азыктандыруунун иштешин далилдейт, ал эми өз жообунан узак жашаган эскирген элемент — жазып коюуга татыктуу өмүр шайкешсиздиги. Туташуу таблицасында күтүлгөн белги менен жаңы туташуунун пайда болушу классификатордун иштегенин көрсөтөт, ал эми эски туташуунун өз баштапкы белгисин сакташы — бузулуу эмес, туура жүрүм-турум. Эрежелердин тизмеси саясат издөөсүнүн бар-жоктугуна жооп берет, бул анын дал келгени жөнүндөгү суроодон башка. Төрт чыгарылышты ушул тартипте окуңуз, ийгиликсиз өткөрүп берүү өзүн көрсөтөт.
Белгилүү бир ысым дайыма бир жолду колдонушу талап кылынса, DNS менен азыктанган топтом муну далилдей албайт, анткени жалпы даректер башка ысымдарды да алып жүрөт. Прокси же колдонмо деңгээлиндеги механизм — ошол кепилдиктин куралы.