Tenu la nftables-politikon stabila dum la VPN-interfaco aperas
Nom-bazitaj nftables-reguloj postvivas tunelon, kiu aperas kaj malaperas, sed itineroj kaj ekzistantaj fluoj ne sekvas aŭtomate. Apartigu la posedantojn.
Tuneloj estas forĵeteblaj; politiko ne devus esti. Sur Linuksa enirejo nftables-regulo, kiu kongruas la tunelan interfacon laŭ nomo, povas esti ŝargita unufoje kaj daŭre validi ĉiufoje, kiam tiu interfaco aperas. La interfaco ankoraŭ havas vivciklon: ĝi kreiĝas, ĝi malaperas, kaj la itineroj kaj tradukoj ĉirkaŭ ĝi sekvas sian propran horaron. Ĝuste la apartigo de tiuj posedantoj tenas aliron stabila dum rekonekto.
Nomkongruo postvivas la interfacon
nftables proponas nombrajn kongruojn de interfaca indekso kaj la dinamikajn nomkongruojn iifname kaj oifname. Reguloj uzantaj tiujn nomojn ŝargiĝas pure eĉ kiam la tunela aparato ankoraŭ ne kreiĝis, kio estas ĝuste tio, kion bezonas reguloaro ĉe ekstarto. Ĝi ĉesas kongrui, se la interfaco renomiĝas, kaj rekomenciĝas, kiam nova interfaco prenas tiun nomon. Nombra indekso ne havas tiun econ, tial la noma formo estas la kutima elekto por tunelo.
La nomo estas kongrua ŝlosilo, ne pruvo pri tio, kiu estas ĉe la alia flanko. La aŭtentigo de la kunulo restas tasko de la VPN.
Legu la ĉenon antaŭ ol aldoni regulojn
Rigardu, kion la reguloaro nun enhavas kaj kie nova regulo sidus, ĉar la ordo decidas la rezulton.
nft list ruleset
nft -c -f /etc/nftables.confLa listo montras ĉenojn, regulojn kaj tenilojn, kaj la kontrolreĝimo validigas kandidatan dosieron sen ŝargi ĝin. Permeso nur por la tunelo, metita post pli frua akcepto por la sama fluo, ŝanĝas nenion, ĉar la unua kongrua regulo venkas. Tial malfrua regulo povas ŝajni ĝusta kaj havi neniun efikon. Legu la ĉenon laŭorde kaj konfirmu, ke la malpermeso de trafiko de kliento al suprena ligo ankoraŭ antaŭas ion pli vastan.
Itineroj, traduko kaj fluoj havas aliajn posedantojn
La ĉeesto de interfaco kreas neniujn itinerojn kaj ne aŭtentigas la kunulon. Tiuj apartenas al la VPN-administranto, dum traduko havas trian vivciklon.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0La conntrack-listo montras ekzistantajn fluojn kun iliaj originaj kaj tradukitaj valoroj, kaj la itinera listo montras, kion la administranto instalas por la interfaco. NAT-reguloj starigas konektospuran staton ĉe la unua paketo, do establita fluo konservas sian tradukon eĉ post kiam la regulo ŝanĝiĝas. Tial regulo, kiu ĝisdatiĝas, kaj fluo, kiu uzas la novan vojon, estas malsamaj asertoj. Decidu, kiuj sesioj devas rekonektiĝi, kaj lasu nerilatajn fluojn trankvile.
Akceptu malvarman starton, perdon kaj restaŭron
Testu la enirejon kun la tunelo forestanta ĉe ekstarto, poste ĉeestanta, poste post interrompo kaj reveno. Konfirmu, ke malpermesita plusendado restas rifuzita dum la tunelo mankas, ke nova permesita fluo funkcias post aŭtentigo de la kunulo, kaj ke restaŭro ne postulas forigi nerilatan staton. Ne viŝu la tutan ĉenon POSTROUTING aŭ ĉiun conntrack-rikordon kiel haltigan agon de unu profilo, ĉar aliaj servoj dividas ilin. Notu, kiu komponento ŝanĝis la interfacon, la itineron kaj la politikon, anstataŭ nur ke starta hoko eliris kun nulo.
Politiko, kiu postvivas rekonekton, estas tiu, kies posedantoj estas nomitaj kaj kies reguloj estis testitaj kun la tunelo kaj malsupre kaj supre. Hoko, kiu raportas sukceson, pruvas nur, ke la hoko funkciis.