nftables: enmetu la VPN-permesan regulon antaŭ la forĵeta tenilo
En nftables, insert kaj add metas regulon sur kontraŭaj flankoj de tenilo. Trovu la forĵeton, elektu la flankon, poste kontrolu la dosieron antaŭ ol la regulkompleto ŝanĝiĝos.
Metu permesan regulon en la malĝustan pozicion kaj ĝi kondutas kvazaŭ neniu permesa regulo ekzistus. En nftables la elekto inter insert kaj add decidas, sur kiun flankon de referencita regulo la nova deklaro venas, kaj tenilo nomas la regulon en la aktiva regulkompleto anstataŭ ĝian vicnumeron. Se la pozicio estas malĝusta, la paketo unue atingas la forĵeton.
La suba komparo uzas unu fiksan samulon kaj unu interŝanĝon de ekstera aŭskultanto. Ĝi estas intence mallarĝa; anstataŭigi tutan ĉenon estas alia ŝanĝo kun alia riska profilo.
Du pozicioj, du malsamaj rezultoj
insert metas regulon antaŭ la referencitan regulon. add metas ĝin poste. Se la referencita regulo estas la fina forĵeto por la fluo, tiuj du komandoj produktas kontraŭajn rezultojn eĉ kiam la regula teksto estas identa.
Omisi pozicion havas sian propran implicitan konduton, kio estas plia kialo ne kopii komandon el forumo sen legi, al kio ĝi estas ankrita. La ankro estas la tuta decido. Skribu la celatan flankon antaŭ ol tajpi la komandon. insert kaj add diferencas per unu vorto en la dosiero.
La pozicio estas relativa al regulo en specifa ĉeno. Movi la saman deklaron al alia ĉeno aŭ alia hook-prioritato ŝanĝas, kiujn paketojn ĝi vidas, eĉ kiam la regula sintakso ŝajnas ĝusta.
Tenilo identigas regulon, ne linian numeron
Tenilo kiel 42 estas identigilo en la nuna stato de la regulkompleto. Ĝi ne estas la kvardek-dua regulo, kaj ĝi ne estas stabila inter gastigantoj, rekonstruoj aŭ administrilo, kiu reŝargas sian agordon.
Trovu la ĉenon kaj la faktan finan forĵeton antaŭ ol elekti la ankron. Poste konfirmu la tenilon sur tiu regulo en la sama listo, kiu montras la forĵeton, por ke la numero kaj la regulo estu legitaj kune. Tenilo legita el malnova listo jam povas aparteni al alia regulo. Relugu ĝin en la sesio, kiu aplikos la ŝanĝon.
iptables --version
nft -a list ruleset
La versio de iptables raportas, kiu postaĵo estas uzata. iptables-nft-regulkompleto kaj sendepende administrata denaska tabelo povas kunekzisti, do listo el unu fronto ne estas aŭtomate la kompleta filtra bildo. Kontrolu ambaŭ vidojn antaŭ ol elekti ĉenon.
Trovu la ĉenon kaj la regulon, kiu efektive forĵetas
Legu la enigan hook, la ĉenan prioritaton kaj la regulon, kiu rifuzas ĉi tiun aŭskultantan fluon. inet-tabelo povas porti ambaŭ adresfamiliojn, sed unuopa regulo ankoraŭ povas kongrui nur kun IPv4.
Prenu unu aprobitan samulon, uzante 198.51.100.25 el la dokumenta gamo kiel ekzemplon. Reviziita denaska dosiero povus meti eksteran permeson antaŭ tenilo 42:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
Anstataŭigu la familion, tabelon, ĉenon, tenilon, enigan interfacon kaj samulon post inspektado. La ekzemplo uzas la tenil-pozician formon dokumentitan por nft 1.0.9, kaj ĝi apartenas en enigan dosieron; citado de kurbaj krampoj estas aparta afero kiam la komando estas tajpata interage.
Tenu la agordan posedanton klara. Administrilo, kiu rekonstruas siajn regulojn, povas anstataŭigi runtime-redakton, kaj starta skripto, kiu malmole kodas eksvalidiĝintan tenilon, aŭ malsukcesos aŭ alkroĉiĝos al la malĝusta regulo.
Akcepto estas limigita, forĵeto estas fina
Akcepta verdikto finas la taksadon sur sia nuna vojo, sed poste aplikebla baza ĉeno ankoraŭ povas forĵeti la paketon. Forĵeta verdikto estas fina. Tial kreskanta akcepta nombrilo ne pruvas, ke la fluo sukcesis.
Inspektu ĉiujn koncernajn hook-prioritatojn anstataŭ unu ĉenon izolite. Paketo povas trapasi enigan filtron kaj tamen esti rifuzita de la hook de alia tabelo ĉe alia prioritato. Listigu ĉiun bazan ĉenon, kiu povas vidi la fluon.
Tiu regulo kovras nur la interŝanĝon de la ekstera aŭskultanto. Transporte enkapsuligita ESP, denaska ESP, IPv6-samuloj kaj la malĉifrita trafiko ene de la tunelo ĉiuj bezonas proprajn politikojn. Ĝi ne estas kompleta reteja VPN-fajroŝirmilo.
Kontrolu la dosieron, poste kontrolvalidigu la aktivan rezulton
Rulu sintaksan kaj transakcian kontrolon sur la reviziita dosiero antaŭ ol apliki ĝin. Kontrolreĝimo raportas, ĉu nft povas analizi kaj preparigi la ŝanĝon; ĝi ne aplikas ĝin kaj ne pruvas, ke alia hook permesos la paketon. La dosiero restas propono ĝis la posedanto aplikos ĝin:
nft -c -f reviewed-vpn-rule.nft
Apliku tra la kontrolita procezo de la posedanto kaj konservu reakiran aliron. Se la regulo estas malĝusta, la forĵeto, kiun vi provis antaŭi, povas ankaŭ tranĉi la vojon, kiun vi uzas por ripari ĝin.
Post la ŝanĝo, observu novan permesitan samulan provon kaj kontrolu, ke fontoj ekster la aprobita samulo ankoraŭ estas rifuzataj. Movu la daŭran regulon en tiun administrilon, kiu posedas la regulkompleton, ĉar runtime-teniloj lokas aktualajn objektojn anstataŭ identigi ilin inter startoj.