Демейки libvirt тармагындагы коноктор WireGuard интерфейси көтөрүлгөнгө чейин аттарды так чечишет, андан кийин ар бир издөө ошол эле жерде токтоп калат. dnsmasq дагы эле 192.168.122.1:53 да угуп турат, коноктогу дагы эле ошол дарек чечүүчү катары, жана сурам дагы эле келет. Өзгөргөн нерсе — хосттун өзүнүн жогорку агым сурамы же ага жооп эми сиз оңдоону ойлогон каалаган чыпка тизмегинен мурун баалануучу эреже менен ташталат. Чыгуу жолу — жооп мураска алган туташууда жетишерлик эрте колдонулган белги.

Туннель көтөрүлгөн учурда коноктор DNS'тен ажырайт

Бир нерсени өзгөртүүдөн мурун форманы ырастаңыз. Туннелди түшүрүңүз, коноктон dig @192.168.122.1 example.com иштетиңиз жана анын жооп бергенин көрүңүз. Туннелди көтөрүңүз, кайталаңыз жана анын убактысы бүткөнүн көрүңүз. Бул жуп натыйжа бир кадамда бузулган libvirt тармагын, туура эмес чечүүчү дарегин жана өлүк dnsmasq'ты жокко чыгарат.

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

Эмне үчүн кийинки тизмектеги accept эрежеси эч качан иштебейт

Белгиге негизделген VPN брандмауэри пакет белгисине же туташуу белгисине карап чечет, сиздин булак дарегиңизге эмес. Күтүлгөн белгисиз физикалык интерфейске келгендин баары четке кагылат, жана бул четке кагуу белги сынагына ээ эрежелер жыйындысында болот. Кийинки тизмекке кошулган ip saddr 192.168.122.0/24 accept сабы бул пакет үчүн эч качан каралбайт, ошондуктан ачык эреже туура көрүнөт жана эч нерсени өзгөртпөйт.

Бир нерсе иштегенге чейин аны кеңейтүү — экинчи тузак. Хосттун кирүү жолунда бүт libvirt ички тармагын кабыл алуу конокторго хосттун бардык кызматын ачат, ал эми чыныгы муктаждык — бир порт.

Тар өзгөчөлүктү мүмкүн кылган механизм — туташууларды көзөмөлдөө. Пакетке ct mark орноткондо, маани пакетте гана эмес, conntrack жазуусунда сакталат, ошондуктан ошол туташуудагы ар бир пакет аны кийин алып жүрөт, анын ичинде хосттон конокко кайткан жооп. Бүт айла ушунда: сурамды бир жолу белгилеңиз, кайтуу жолу мурунтан белгиленген.

VPN таблицасы көрө электе сурамды белгилеңиз

Өзгөчөлүктү өз таблицасына салыңыз, кийинки окуучу VPN эрежелерин талдабай эле таба алат:

table inet allowedLocal {
  chain guest_dns {
    type filter hook input priority mangle; policy accept;
    ip saddr 192.168.122.0/24 meta l4proto { tcp, udp } \
      th dport 53 ct mark set 0x00000f41
  }
}

priority mangle терс, бул бул тизмекти VPN пакети нөл артыкчылыкта орноткон кадимки чыпка тизмектеринин алдына коёт. Илгичтердин тартиби эрежени натыйжалуу кылат; VPN тизмегинен кийин иреттелүүчү тизмектеги ошол эле эреже жасалга гана.

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

Тешикти 53 портунун туурасында кармаңыз

Жазылгандай, бул libvirt ички тармагынан хостко TCP же UDP 53 порту аркылуу DNS'ке уруксат берет жана башка эч нерсеге жок. Ал конокторго туннелден тышкаркы интернетке жетүүгө жол бербейт жана хостко коноктор тарапка туташууларды ачууга жол бербейт. Эгер конокко кийин башка хост кызматы керек болсо, бул эрежени бошотуунун ордуна ошол бара турган портту атаган өзүнчө эреже кошуңуз.

Эмнени алмаштырып жатканыңызга чынчыл болуңуз. Чечүүчүгө жете алган конок DNS сурамдары аркылуу каалаган маалыматты да туннелдей алат, жана бул өзгөчөлүк VPN чек арасындагы атайын жасалган көңдөй, жергиликтүү тармак ишенимдүү деген билдирүү эмес. Булакты 192.168.122.0/24 менен чектөө көңдөйдү башка бардык жергиликтүү ички тармактардан алыс кармайт, жана коркунуч сиз үчүн маанилүү болсо, ошол булакка каршы сурамдарды саноо арзан.

Кайра жүктөөдөн аман калтырыңыз жана эки жарымын да далилдеңиз

Shell сурамында терилген эреже кийинки жүктөөдө жок болот, ал эми VPN интерфейси трафикти өткөрүп жаткандан кийин жүктөлгөн эреже биринчи туташууда жарыштан утулат. Таблицаны хосттун туруктуу nftables конфигурациясына же VPN кызматынан мурун иреттелген unit'ке салыңыз жана тартипти божомолдоонун ордуна текшериңиз.

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

Белги коюлгандан кийин да издөө ишке ашпаса, булакты кеңейтүү ниетине каршы туруңуз. dnsmasq кайда жиберерин, коноктун чечүүчүсү 192.168.122.1 ге же бирөө терген коомдук дарекке шилтеме жасайбы, жана сурам хостко жетет бери эмеспи текшериңиз. Белгилөө пакетти өткөрөт жана башка эч нерсе жок, ошондуктан начар жогорку агым же бузулган виртуалдык тармак канча эреже кошсоңуз да бузулуп кала берет.

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