Ang hub na nagpapatakbo ng WireGuard ay maaaring magpanatili ng hiwalay na mga pangkat ng kapares nang walang hiwalay na interface o talahanayan ng ruta para sa bawat pangkat. Dalawang mekanismo ang gumagawa ng gawain, at ang paghahalo sa kanila ang karaniwang dahilan kung bakit ang patakaran ay mukhang tama at walang ginagawa. Isang antas ang nagpapasya kung sino ang maaaring mag-angkin ng address ng pinagmulan. Ang isa pa ang nagpapasya kung saan pinapayagang pumunta ang packet na iyon.

Dalawang gawain, pinanatiling hiwalay

Sinasagot ng antas ng tunel ang makitid na tanong: pinahintulutan ba ng susi ng kapares na ito ang panloob na address ng pinagmulan na ito. Sinasagot ng antas ng pagpapasa ang mas malawak: maaari bang lumabas ang packet na ito patungo sa destinasyong iyon. Wala sa kanila ang sumasagot sa tanong ng isa, at wala sa kanila ang nag-iisang kumpletong patakaran sa pag-access.

Ang paghahating iyon ang dahilan kung bakit ang isang kapares ay maaaring ma-authenticate, ma-address nang tama, at gayunpaman ay hindi maabot ang host na hindi dapat nitong abutin. Ipinapaliwanag din nito ang kabaligtaran: ang tuntunin ng firewall na nagpapahintulot sa lahat ay walang pinapatunayan tungkol sa kung sino ang maaaring mag-angkin ng aling address.

Disenyuhin ang dalawang antas nang magkasama, pagkatapos ay subukan ang pareho. Ang configuration na tama sa isang antas at hindi nasubukan sa isa ay nabibigo nang bukas o sarado depende sa default.

Bigyan ang bawat kapares ng sarili lamang nitong address

Ang mga kapares na may maraming host ay nag-uudyok sa iyong ibigay ang buong saklaw ng pangkat sa panig ng server. Ang pahintulot na iyon ay pag-angkin ng address ng pinagmulan, kaya ang isang kompromisado o maling naka-configure na kliyente ay maaaring magpakita ng anumang address sa saklaw at tatanggapin ito ng tunel. Maglaan ng /32 bawat kapares para sa sarili nitong panloob na address. Itakda ang mga saklaw ng pangkat sa mga kliyente lamang, kung saan inilalarawan nila kung aling mga destinasyon ang maaaring abutin ng kliyenteng iyon at hindi kung aling mga pinagmulan ang maaaring gamitin nito.

Pagkatapos ay itinutugma ng firewall ang isang pinagmulan na mapagkakatiwalaan nito. Ang tuntuning isinulat para sa saklaw ng pangkat ay nananatiling kapaki-pakinabang na pagpapangkat, at nagiging makabuluhan lamang kapag walang iisang kapares na makakapag-angkin ng address na pag-aari ng ibang miyembro.

Isulat ang patakaran sa pagpapasa na naghihiwalay sa mga pangkat

Ang kawili-wiling trapiko dito ay pumapasok at lumalabas sa parehong interface ng tunel, kaya tinatawid nito ang landas ng pagpapasa at hindi ang landas ng input ng host. Ang mga tuntunin ay nabibilang sa umiiral na chain ng pagpapasa ng alinmang tagapamahala ng firewall na nagmamay-ari ng host, at ang mga ito ay mga piraso at hindi isang kumpletong set ng tuntunin.

iifname "wg0" oifname "wg0" ip saddr 10.66.10.0/24 ip daddr 10.66.10.0/24 accept
iifname "wg0" oifname "wg0" ip saddr 10.66.20.0/24 ip daddr 10.66.20.0/24 accept
iifname "wg0" oifname "wg0" drop

Pinapayagan ng unang dalawang tuntunin ang trapiko sa loob ng bawat pangkat. Hinaharangan ng huli ang lahat ng iba pang tumatawid sa interface na iyon, at iyon ang gumagawa ng paghihiwalay sa pagitan ng mga pangkat. Magdagdag ng tahasang tuntunin para sa iba pang pamilya ng address kung kailangan mo, dahil ang drop na isinulat para sa IPv4 ay hindi nagpapahintulot o naglalarawan ng pag-uugali ng IPv6.

Ang pagkakasunod-sunod ang nagpapasya kung nalalapat ang patakaran

Mas mahalaga ang pagkakasunod-sunod ng tuntunin kaysa sa piraso mismo. Ang pangkalahatang tuntunin na tumatanggap ng mga naitatag na koneksyon at inilagay bago ang mga entry na ito ay nagpapahintulot sa lumang daloy sa pagitan ng mga pangkat na magpatuloy, kaya nalalapat lamang ang paghihiwalay sa mga bagong koneksyon. Magpasya kung alin sa dalawang resulta ang gusto mo bago mag-reload.

Ang hatol ng pagtanggap ay hindi rin laging pinal sa pagitan ng mga chain sa parehong hook. Kung tatakbo ang ibang base chain mamaya, ang epektibong patakaran ay ang kombinasyon, kaya siyasatin ang mga counter at hindi ang file na in-edit mo. Ang mga counter ang pinakamurang ebidensiyang available. Ang tuntuning walang bilang ng packet ay hindi tumutugma, at ang tuntuning tumutugma habang tumatanggap ang susunod na chain ay nagsasabi sa iyong mali ang lugar ng drop.

Subukan ang matrix, hindi ang bilang ng file

Bumuo ng maliit na matrix ng inaasahang resulta at suriin ang bawat selula. Mula sa pangkat A hanggang pangkat A ay dapat gumana, mula sa pangkat B hanggang pangkat B ay dapat gumana, at mula A hanggang B ay hindi dapat, sa parehong direksyon at para sa parehong pamilya ng address kung sinusuportahan mo ang mga ito.

nft list ruleset
wg show wg0 allowed-ips
ping -c 2 10.66.10.5
conntrack -L -s 10.66.20.7 2>/dev/null | head

Ipinapakita ng unang dalawa kung ano ang naka-configure. Ang ping mula sa miyembro ng maling pangkat ay nagpapakita kung ano talaga ang nangyayari. Ipinapakita ng listahan ng conntrack kung tinatanggap pa ang mas lumang daloy, at ganoon ang paraan kung paano tahimik na nabibigo ang isang pagbabago sa paghihiwalay na magkabisa.

Ang mga serbisyo ng host sa hub at ang pag-access sa LAN sa likod nito ay magkahiwalay na landas na may magkahiwalay na patakaran. Itala kung alin sa mga ito ang sinasaklaw ng matrix, dahil ang pagsubok na sumusuri lamang ng trapiko ng kapares-sa-kapares ay walang sinasabi tungkol sa alinman sa kanila.

Kaugnay na mga artikulo