Den Hook funktionéiert déi éischte Kéier, an no dräi neie Verbindunge stinn dräi Kopië vun der selwechter Regel an der Kett. Näischt huet haart versot; de Skript huet bei all Ausféierung just gemaach, wat him gesot gouf. En VPN-Hook ass eng Konfiguratiounsoperatioun, déi méi wéi eng Kéier lafe kann, dofir brauch hien en Eegentum, en gewënschten Zoustand an eng serialiséiert Ännerung. Gitt an där Reihenfolg vir, an d’Duplikater hale op.

Gitt de Regelen en Eegentum, ier Dir eng schreift

Entscheet, wéi eng Kett oder Tabell dës Integratioun gehéiert, ier Dir eng eenzeg Regel schreift. Eng eege Kett, déi den Hook uleeft an eidelmécht, ass déi kloerst Form vum Eegentum, well d’Botzen duerno déi Kett ka läschen, ouni d’Politik vun engem aneren ze beréieren. Wann Dir Regelen an eng gedeelte Kett musst setzen, markéiert se mat engem Kommentar, sou datt eng spéider Sich genau Är fënnt. Den Eegentum mécht de Remontage sécher, an de Remontage ass deen Deel, deen donkel versot.

iptables -N VPN_HOOK 2>/dev/null || true
iptables -C INPUT -j VPN_HOOK 2>/dev/null || iptables -I INPUT -j VPN_HOOK
iptables -S VPN_HOOK

En Kommentar ass hei keng Dekoratioun. Hien ass den Ënnerscheed tëscht Är Regel läschen an eng Regel läschen, déi zoufälleg ähnlech ausgesäit, an hien iwwerlieft am gespäicherte Reegelsatz. Schreift de Kommentar eng Kéier an eng Variabel a benotzt dee selwechte String an all Kommando, déi derbäisetzt, testt oder läscht.

Testt den gewënschten Zoustand amplaz nach emol derbäizesetzen

Schreift op, wat do misst sinn, während den Tunnel uewen ass: wéi eng Interface’en, wéi eng Quell an Destinatioun, wéi ee Protokoll a wéi ee Port. Dréckt dann all Regel als Test aus, deen duerno vun engem Asetze gefollegt gëtt, sou datt en zweete Laf d’Regel fënnt an näischt mécht. D’Kontrollkommando geet mat Null eraus, wann d’Regel existéiert, an dat ass genee de Signal, deen de Skript brauch. D’iptables-Referenz dokumentéiert déi hei benotzt Forme fir Kontroll, Derbäisetzen an Asetzen.

iptables -C VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT ||
  iptables -A VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT

Sidd virsiichteg mat der Positioun. Eng Regel kontrolléieren an uewen asetzen kann eng Erlaabnes virun eng bewosst Oflehnung réckelen, déi virdrun als éischt komm ass, sou datt den zweete Laf d’Verhale ännert, obwuel hien näischt derbäisetzt. Setzt hannen an Ärer eegener Kett derbäi a steiert d’Reihenfolg iwwer d’Plaz vum Sprong an déi Kett. Wann d’Reihenfolg an der Kett wichteg ass, baut d’Kett aus enger bekannter Lëscht nei op, amplaz se Regel fir Regel ze flécken.

Halt un, wann déi néideg Regel sech net als stabile Test ausdrécke léisst. Dat heescht meeschtens, datt den gewënschten Zoustand nach onkloer ass.

Serialiséiert d’Ännerung amplaz ze hoffen, datt se hält

Zwee Opruff vum Hook kënnen sech iwwerschneiden, an allebéid kënnen eng fehlend Regel gesinn, ier eng dovun se derbäisetzt. D’Waardoptioun vun xtables léisst e Kommando op de Spär waarden, awer se mécht eng Kontrolléier-dann-Setz-Sequenz net atomar iwwer zwee Kommandos. Serialiséiert déi ganz Operatioun mat Ärer eegener Spär, oder benotzt en Manager, deen e deklaréierte Batch als eng eenzeg Transaktioun applizéiert. nftables ka leschtens, wat ee Grond ass, et op Hosts ze bevorzugen, wou et verfügbar ass.

flock /run/vpn-hook.lock /usr/local/sbin/vpn-firewall-apply
nft -f /etc/nftables/vpn-hook.nft

Wéi ee Mechanismus Dir och wielt, haalt de kriteschen Deel kuerz a maacht en erëm eran: en Hook, deen hallef streikt, sollt sécher sinn, nach emol ze lafen. Logt d’Resultat, sou datt en widderhollte Laf am Journal ze gesinn ass, amplaz aus enger Regelzuel ofgeleet ze ginn. Wann zwee verschidde Supervisore den Hook kënnen opruffen, fléckt dat éischt; keng Spär fléckt zwee Eegentümer.

Remontéiert nëmmen dat, wat Iech gehéiert

De Remontage muss eng Ersatzverbindung vun där ënnerscheeden, déi hien an d’Pensioun geschéckt huet, an hie muss en Evenement iwwerliewe, dat ni eng uerdentlech Botzen kritt. Läscht mat deene selwechten Identifikatoren, déi Dir fir d’Derbäisetzen benotzt hutt, a maacht ni eng gedeelte Kett eidel, fir d’Botzen einfach ze maachen. Nom enge haarde Stop, lafe beim nächsten Ufank eng Ofgläichung duerch, amplaz unzehuelen, datt den Down-Hook gelaf ass.

iptables -D VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
iptables -F VPN_HOOK
ip -brief link show type tun

D’Liewensdauer vum Interface gehéiert och zum Design. Eng nei Verbindung kann en Apparat mat anerem Numm schafen, sou datt eng Regel, déi den Numm vum zweeten Tunnel haart kodéiert, veraltert, wärend se nach gëlteg ausgesäit. Bevirzugt d’Identitéit, déi d’Verbindung selwer weist, a liest se bei all Laf nach emol. Testt déi dräi Evenementer getrennt: eng widderhollte Verbindung, eng Ersatzverbindung an en Ausschalten. Den erlaabten Trafik sollt all dräi ouni Duplikater iwwerliewe, an onbedeelegt Servicer sollten onberéiert bleiwen.

De Spazéiergang ass eriwwer, wann den Hook en Eegentum, en Test fir all Regel, déi hien derbäisetzt, eng serialiséiert Streck an e Remontage huet, dee just säin eegene Zoustand ewechhëlt. En Hook, deen een zweemol sécher lafe kann, ass méi wäert wéi en Hook, deen eng Kéier schlau ass.

Ähnlech Artikelen