pf-rofi macOS fyrir OpenVPN: reglur sem loka sér
Sett af pf-reglum lokar beinum umferðum á meðan göngin eru niðri. Haltu leið biðlarans að netþjóninum sínum og sannaðu síðan lokunina með göngin slökkt.
Á macOS er öryggisrofi ekki betri en stefna pakkasíunnar sem liggur að baki, og pf er sá hluti sem framfylgir þeirri stefnu. Stefnan verður að gera tvennt andstætt í einu: hleypa biðlaranum að netþjóninum sínum svo göng geti verið til, og stöðva allt annað frá því að fara beint út. Flest birt reglusett ná því seinna og gleyma því fyrra, svo vélin tapar tengingu í stað þess að vinna sér vernd. Útgáfan sem virkar nefnir endapunktinn, leysinn og göngin, og ekkert meira.
Hvað pakkasía getur ákveðið, og hvað ekki
pf horfir á tengi, vistföng, prótókólnúmer og port, og stöðvast þar. Það kemst aldrei að því hvaða ferli opnaði sökkl, svo leyfi sem skrifað er fyrir eitt forrit verður leyfi fyrir hvert forrit sem kemst að sama porti. Þannig breytir rífleg UDP-undantekning öryggisrofa aftur í venjulegt net. Forritavitund lokun tilheyrir biðlaranum eða kerfisviðbót, ekki þessari skrá.
Síuð býr líka ekki til leiðir. Þegar biðlarinn dettur út getur sjálfgefna leiðin enn bent á dauð göng, og pf breytir því í lokaðar pakkningar í stað hljóðlausrar afturhvarfs til Wi-Fi. Lokunin er ætluð niðurstaða, ekki bilun sem á að fara fram hjá.
Röðin ræður úrslitum oftar en texti reglunnar. Án quick heldur pf áfram að meta eftir samsvörun og síðasta reglan sem passar vinnur, svo breið framhjáferð neðarlega hnekkir vönduðu undantekningunum fyrir ofan. Að merkja framhjáferðirnar með quick gerir fyrstu samsvörun endanlega, sem er það sem stefnuhöfundur á yfirleitt við.
Lestu fyrst staðreyndir um tengi og endapunkt
Þráðlaus tengi eru ekki númeruð eins á hverjum Mac, og göngutækið fær númer sem getur breyst milli ræsinga. Regla sem nefnir tæki sem er ekki til mistekst við þáttun, sem er hávært og auðvelt að grípa, en regla sem nefnir rangt tæki sem er til þáttast hreinlega og leyfir umferð sem þú ætlaðir að stöðva.
Safnaðu staðreyndunum meðan biðlarinn er tengdur, því göngutækið er aðeins til þá. Þú þarft tengið sem heldur sjálfgefnu leiðinni, tækið sem biðlarinn bjó til, og vistfang og port netþjónsins sem hann hringir í. Það er síðasta gildið sem flest reglusett sleppa, og að sleppa því er ástæðan fyrir því að afritað sett lokar eigin göngum.
route -n get default
ifconfig -l
scutil --nc list
Fyrsta skipunin nefnir tengið sem vinnur núna, önnur listar hvert tæki sem kjarninn þekkir, og þriðja sýnir VPN-stillingarnar sem kerfið getur ræst. Skrifaðu þessi svör niður og lestu síðan vistfang og port netþjónsins úr eigin stillingum biðlarans.
Skrifaðu reglusettið í kringum gönguleiðina
Skráin hér að neðan synjar sjálfgefið og hleypir aftur inn fimm hlutum: loopback, göngutækinu, leið biðlarans að netþjóninum sínum, leysinum sem notaður er áður en göng eru til, og þeim tveimur skiptum sem halda þráðlausu sambandi nothæfu. Tengiheiti og vistfang netþjónsins koma frá vélinni þinni, svo skiptu út gildunum sem þú staðfestir. Göngunúmerið mun heldur ekki passa við þitt.
set skip on lo0
block all
pass out quick on utun0
# maintain this line when the server address changes
pass out quick on en1 inet proto udp to 203.0.113.10 port 1194
# only the resolver the client uses before the tunnel exists
pass out quick on en1 inet proto udp to 192.0.2.53 port 53
pass out quick on en1 inet proto udp from any port 68 to any port 67
pass out quick on en1 inet proto udp to 224.0.0.251 port 5353
DHCP-línan er til vegna þess að Mac biður um vistfang áður en hann hefur eitt, svo beiðnin fer út port 68 í átt að porti 67 án nothæfs upprunavistfangs. Multicast-línan leyfir kerfinu að dæma hvort þráðlausa sambandið sé þess virði að nota, og að fjarlægja hana framleiðir vél sem tilkynnir enga tengingu á neti sem virkar. Endapunktalínan er það sem OpenVPN gerir kleift að ná netþjóninum sínum yfirhöfuð; án hennar sleppir block all ytri handabandinu og göngin rísa aldrei. Leysilínan er þrengri en almenn DNS-heimild, því hún nefnir eitt vistfang og eitt port í stað hvers fyrirspurnar sem vélin gerir.
Þessar undantekningar endapunkts og leysis eru þær tvær sem verða að vera til; allt annað helst lokað. Ef biðlarinn hringir í bókstaflegt vistfang skaltu fjarlægja leysilínuna og halda endapunktalínunni. Ef vistfang netþjónsins breytist skaltu uppfæra þá línu fyrir næstu tengingu, eða fylla pf-töflu úr eigin krók biðlarans og passa töfluna í staðinn.
Taktu göngin niður og endurræstu svo
Þáttaðu fyrir hleðslu, því málfræðivilla er ódýr í þurrkeyrslu og dýr í fjartengdri lotu. Hladdu svo skránni, virkjaðu síuna ef hún var slökkt, og lestu til baka hvað er raunverulega í gildi. Upplesturinn er ekki helgiathöfn: annað akkeri getur bætt við reglum sem þú skrifaðir ekki, svo berðu prentaða settið saman við skrána þína.
sudo pfctl -n -v -f /etc/pf.conf
sudo pfctl -f /etc/pf.conf
sudo pfctl -e
sudo pfctl -s rules
sudo pfctl -s Anchors
sudo pfctl -a <anchor> -s rules
sudo pfctl -s info
Með reglurnar hladdar skaltu taka göngin niður og reyna að hlaða síðu. Venjuleg umferð á að stöðvast, og hún á að vera enn stöðvuð eftir að vélin sefur og vaknar, því einmitt í þeirri umskiptingu læðist úrelt ástand aftur inn. Tenging aftur og staðfestu að umferð hefst án þess að snerta reglusettið. Ef vafri virkar enn með göngin niðri er ein regla breiðari en þú hélt, og upplesturinn nefnir hana yfirleitt.
Endurræsingin er sá hluti sem fólk sleppir. macOS les /etc/pf.conf við ræsingu, en að lesa skrána er ekki það sama og að virkja síuna, svo reglusett sem virkar núna getur verið óvirkt eftir endurræsingu. Keyrðu sudo pfctl -s info eftir það og staðfestu að stöðulínan tilkynni síuna sem virka.
Haltu útleiðinni og endurræsingarleiðinni heiðarlegri
Reglusett sem lokar öllu getur líka lokað þig úti frá vél sem þú stjórnar fjartengt. Breyttu úr staðbundinni lotu þegar þú getur, hafðu fyrri skrána við hlið hinnar nýju, og þekktu afturhvarfið áður en þú þarft það. Skipanirnar hér að neðan slökkva á síunni og hlaða affritinu sem þú geymdir, og það er röðin fyrir stjórnborð frekar en í gegnum göngin sem þú skarst rétt í sundur. Fimm sekúndna afturhvarf vinnur yfir snjalla reglu í hvert sinn.
sudo pfctl -d
sudo pfctl -f /etc/pf.conf.previous
sudo pfctl -s rules
Varanleiki krefst ræsidæmons sem keyrir pfctl -e og hleður skránni þinni við ræsingu. Meðhöndlaðu hann eins og hvert annað forréttindaverk: algerar slóðir, annál sem þú getur lesið eftir á, og prófun á vél sem þú kemst líkamlega að. Dæmon sem mistekst hljóðlaust skilur vélina eftir óvarða og venjulega útlítandi.
Skjalfestu eyðurnar, byrjaðu á öðrum VPN-biðlara sem býr til eigið göngutæki. Reglurnar þínar nefna eitt göngutengi, svo annað helst lokað eða verður fyrir breiðri reglu sem bætt er við síðar. Tethering- og heitpunktstengi birtast bara stundum og eiga skilið sömu athugasemd. Engin þessara eyðna er ástæða til að sleppa stefnunni; þær eru skilyrðin sem hún gildir enn undir.