Hvers vegna VPN-eldveggjarkrókur bætir sömu reglu við tvisvar
Endurtenging getur keyrt krókinn þinn aftur, svo hannaðu fyrir æskilegt ástand: eigin keðjur, prófun fyrir innsetningu, ein raðbundin breyting og þröng niðurrif.
Krókurinn virkar í fyrsta skipti, og eftir þrjár endurtengingar geymir keðjan þrjú eintök af sömu reglu. Ekkert mistókst hávært; skriftan gerði einfaldlega það sem henni var sagt í hvert sinn sem hún rann. VPN-krókur er stillingaraðgerð sem getur rann oftar en einu sinni, svo hann þarf eiganda, æskilegt ástand og raðbundna breytingu. Farðu í þeirri röð og tvíritunum linur.
Gefðu reglunum eiganda áður en þú skrifar eina
Ákveðu hvaða keðja eða tafla þessi samþætting á áður en þú skrifar eina reglu. Sérstök keðja sem krókurinn býr til og tæmir er skýrasta form eignarhalds, því hreinsun getur þá fjarlægt þá keðju án þess að snerta stefnu einhvers annars. Ef þú verður að bæta reglum við sameiginlega keðju, merktu þær með athugasemd svo síðari leit finni nákvæmlega þínar. Eignarhald er það sem gerir niðurrif öruggt, og niðurrif er sá hluti sem mistekst hljóðlega.
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
Athugasemd er ekki skreyting hér. Hún er munurinn á að fjarlægja regluna þína og að fjarlægja reglu sem skyldi líta svipað út, og hún lifir í vistuðu reglusettinu. Skrifaðu athugasemdina einu sinni í breytu og notaðu sama strenginn í hverri skipun sem bætir við, prófar eða eyðir.
Prófaðu æskilegt ástand í stað þess að bæta aftur við
Skrifaðu niður hvað á að vera til staðar meðan tunnillinn er uppi: hvaða tengi, hvaða uppspretta og áfangastaður, hvaða samskiptaregla og hvaða gátt. Lýstu svo hverri reglu sem prófun sem fylgt er eftir með innsetningu, svo önnur keyrsla finni regluna og geri ekkert. Prófunarskipunin endar með núlli þegar reglan er til, og það er nákvæmlega merkið sem skriftan þarf. iptables-viðmiðunin skjalfestir prófunar-, viðbótar- og innsetningarformin sem notuð eru hér.
iptables -C VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT ||
iptables -A VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
Farðu varlega með stöðuna. Að prófa reglu og setja hana inn efst getur fært leyfi fram fyrir vísvitandi synjun sem kom áður fyrst, svo önnur keyrsla breytir hegðun þótt hún bæti engu við. Bættu við aftast inni í þinni eigin keðju og stýrðu röðinni með því hvar stökkið í þá keðju er. Ef röðin inni í keðjunni skiptir máli, endurbyggðu keðjuna úr þekktum lista í stað þess að bæta hana reglu fyrir reglu.
Stoppaðu ef reglan sem þú þarft er ekki hægt að tjá sem stöðuga prófun. Það þýðir venjulega að æskilega ástandið er enn óljóst.
Raðaðu breytingunni í stað þess að vona að hún haldi
Tvö köll á krókinn geta skarast, og bæði geta séð fjarverandi reglu áður en annað bætir henni við. Biðvalkostur xtables lætur skipun bíða eftir lásnum, en hann gerir prófun-og-viðbótarröðina ekki sundurleita yfir tvær skipanir. Raðaðu allri aðgerðinni með þínum eigin lás, eða notaðu stjórnanda sem beitir tilkynntri lotu sem einni færslu. nftables getur gert það síðara, sem er ein ástæða til að velja það á hýslum þar sem það er fáanlegt.
flock /run/vpn-hook.lock /usr/local/sbin/vpn-firewall-apply
nft -f /etc/nftables/vpn-hook.nft
Hvaða fyrirkomulag sem þú velur, haltu gagnrýna hlutanum stuttum og gerðu hann endurkvæman: krókur sem mistekst hálfa leið ætti að vera öruggur að keyra aftur. Skráðu niðurstöðuna svo endurtekin keyrsla sjáist í dagbókinni í stað þess að vera ályktuð af fjölda reglna. Ef tveir mismunandi eftirlitsaðilar geta kallað á krókinn, lagaðu það fyrst; enginn lás lagar tvo eigendur.
Rífðu aðeins niður það sem þú átt
Niðurrif verður að greina staðgengilstenging frá þeirri sem það lét af störfum, og það verður að standast atburð sem aldrei fær snyrtilega hreinsun. Eyðaðu eftir sömu auðkennum og þú notaðir til að bæta við, og tæmdu aldrei sameiginlega keðju til að einfalda hreinsun. Eftir harða stöðvun skaltu keyra samræmingarferð við næstu ræsingu í stað þess að gera ráð fyrir að niðurkrókurinn hafi rann.
iptables -D VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
iptables -F VPN_HOOK
ip -brief link show type tun
Líftími tengisins tilheyrir líka hönnuninni. Endurtenging getur búið til tæki með öðru nafni, svo regla sem harðkóðar nafn seinni tunnilsins verður úrelt á meðan hún lítur enn gild út. Veldu auðkennið sem tengingin sjálf sýnir, og lestu það aftur í hverri keyrslu. Prófaðu atburðina þrjá sérstaklega: endurtekið samband, staðgengilssamband og lokun. Leyfðu umferðinni á að standast alla þrjá án tvíritana, og ótengdar þjónustur eiga að vera ósnortnar.
Göngan endar þegar krókurinn hefur eiganda, prófun fyrir hverri reglu sem hann bætir við, eina raðbundna leið og niðurrif sem fjarlægir aðeins hans eigið ástand. Krókur sem er öruggur að keyra tvisvar er meira virði en krókur sem er klár einu sinni.