macOS pf segurtasun-etengailua OpenVPNrako: ixten diren arauak
pf arau-multzo batek zuzeneko trafikoa blokeatzen du tunela behera dagoen bitartean. Mantendu bezeroaren bidea bere zerbitzarira, eta, ondoren, frogatu blokeoa tunela itzalita.
macOSn, segurtasun-etengailu bat atzean duen pakete-iragazkiaren politikak adina da ona, eta pf da politika hori betearazten duen pieza. Politikak aldi berean kontrako bi gauza egin behar ditu: bezeroari bere zerbitzarira iristen utzi tunela egon dadin, eta gainerako guztiari zuzenean ateratzea eragotzi. Argitaratutako arau-multzo gehienek bigarrena lortu eta lehenengoa ahazten dute, beraz, makinak konektibitatea galtzen du babesa irabazi ordez. Funtzionatzen duen bertsioak amaiera-puntua, ebazlea eta tunela izendatzen ditu, eta besterik ez.
Zer erabaki dezakeen pakete-iragazki batek, eta zer ez
pf-k interfazeak, helbideak, protokolo-zenbakiak eta portuak begiratzen ditu, eta hor gelditzen da. Ez du inoiz jakiten zein prozesuk ireki zuen socket bat, beraz, programa batentzat idatzitako baimena portu berera irits daitekeen programa bakoitzaren baimena bihurtzen da. Horrela, UDP salbuespen eskuzabalak segurtasun-etengailua sare arrunt bihurtzen du berriro. Aplikazioaz jabetzen den blokeoa bezeroarena edo sistema-hedapen batena da, ez fitxategi honena.
Iragazkiak ez du ibilbiderik sortzen ere. Bezeroa erortzen denean, lehenespenezko ibilbideak hildako tunel batera seinalatu dezake, eta pf-k hori blokeatutako pakete bihurtzen du Wi-Fira isilki itzuli beharrean. Blokeoa nahi den emaitza da, ez inguratu beharreko matxura.
Ordenak emaitza erabakitzen du arauaren testuak baino sarriago. quick gabe, pf-k bat etorri ondoren ebaluatzen jarraitzen du eta azken bat datorren arauak irabazten du, beraz, behealdeko pasabide zabal batek gaineko salbuespen zainduak gainditzen ditu. Pasabideak quick markatzeak lehen bat etortzea behin betiko egiten du, eta hori da politikaren egileak normalean esan nahi duena.
Irakurri lehenengo interfazearen eta amaiera-puntuaren datuak
Haririk gabeko interfazeak ez dira berdin zenbakitzen Mac bakoitzean, eta tunel-gailuak abioen artean alda daitekeen zenbaki bat jasotzen du. Existitzen ez den gailu bat izendatzen duen arauak huts egiten du analisian, eta hori ozena eta harrapatzeko erraza da, eta existitzen den gailu okerra izendatzen duen araua garbi analizatzen da eta geldiarazi nahi zenuen trafikoa uzten du.
Bildu datuak bezeroa konektatuta dagoen bitartean, tunel-gailua orduan soilik baitago. Lehenespenezko ibilbidea duen interfazea behar duzu, bezeroak sortutako gailua, eta markatzen duen zerbitzariaren helbidea eta portua. Azken balio hori da arau-multzo gehienek uzten dutena, eta hura uztea da kopiatutako multzo batek bere tunela blokeatzen duen arrazoia.
route -n get default
ifconfig -l
scutil --nc list
Lehen komandoak orain irabazten duen interfazea izendatzen du, bigarrenak kernelak ezagutzen duen gailu bakoitza zerrendatzen du, eta hirugarrenak sistemak abiaraz ditzakeen VPN konfigurazioak erakusten ditu. Idatzi erantzun horiek, eta gero irakurri zerbitzariaren helbidea eta portua bezeroaren beraren konfiguraziotik.
Idatzi arau-multzoa tunelaren bidearen inguruan
Beheko fitxategiak lehenespenez ukatzen du eta bost gauza berri onartzen ditu: loopback, tunel-gailua, bezeroaren bidea bere zerbitzarira, tunela egon aurretik erabiltzen den ebazlea, eta haririk gabeko esteka erabilgarri mantentzen duten bi trukeak. Interfaze-izenak eta zerbitzariaren helbidea zure makinatik datoz, beraz, ordeztu egiaztatu dituzun balioak. Tunelaren zenbakia ere ez da zurearekin bat etorriko.
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 lerroa existitzen da Mac batek helbidea eskatu aurretik duelako, beraz eskaerak 68 portutik 67 portura irteten du jatorrizko helbide erabilgarririk gabe. Multicast lerroak sistemari haririk gabeko esteka erabiltzea merezi duen epaitzen uzten dio, eta hura kentzeak sarean konexiorik ez duela dioen makina sortzen du. Amaiera-puntuaren lerroa da OpenVPN bere zerbitzarira iristen uzten duena; hura gabe, block all kanpoko esku-ematea bota eta tunela ez da inoiz altxatzen. Ebazlearen lerroa DNS baimen orokor bat baino estuagoa da, helbide bat eta portu bat izendatzen baititu makinak egiten duen kontsulta bakoitzaren ordez.
Amaiera-puntuaren eta ebazlearen salbuespen horiek dira egon behar duten biak; gainerako guztia blokeatuta geratzen da. Bezeroak helbide literala markatzen badu, kendu ebazlearen lerroa eta mantendu amaiera-puntuarena. Zerbitzariaren helbidea aldatzen bada, eguneratu lerro hura hurrengo konexioaren aurretik, edo bete pf taula bat bezeroaren beraren kakoitik eta egokitu taula hori horren ordez.
Jaitsi tunela, eta gero berrabiarazi
Analizatu kargatu aurretik, sintaxi-errore bat merkea baita proba lehor batean eta garestia urruneko saio batean. Gero kargatu fitxategia, gaitu iragazkia itzalita bazegoen, eta irakurri zer dagoen indarrean benetan. Irakurketa ez da zeremonia: beste aingura batek zuk idatzi ez dituzun arauak gehi ditzake, beraz alderatu inprimatutako multzoa zure fitxategiarekin.
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
Arauak kargatuta, jaitsi tunela eta saiatu orrialde bat kargatzen. Trafiko arruntak gelditu beharko luke, eta geldituta jarraitu beharko luke makinak lo eginda eta esnatu ondoren, trantsizio horretan sartzen baita berriro egoera zaharkitua. Berriz konektatu eta egiaztatu trafikoa berriro hasten dela arau-multzoari ukitu gabe. Nabigatzaileak oraindik funtzionatzen badu tunela behera dagoela, arauren bat uste zenuena baino zabalagoa da, eta irakurketak normalean izendatzen du.
Berrabiaraztea da jendeak saltatzen duen zatia. macOS-ek /etc/pf.conf irakurtzen du abioan, baina fitxategia irakurtzea ez da iragazkia gaitzearen berbera, beraz orain funtzionatzen duen arau-multzoa inaktibo egon daiteke berrabiaraztearen ondoren. Exekutatu gero sudo pfctl -s info eta egiaztatu egoera-lerroak iragazkia gaituta dagoela dioela.
Mantendu irteera eta berrabiarazte-bidea zintzo
Dena blokeatzen duen arau-multzo batek urrunetik administratzen duzun makinatik kanpo utz zaitzake. Editatu saio lokal batetik ahal duzunean, eduki aurreko fitxategia berriaren ondoan, eta jakin itzulera behar izan aurretik. Beheko komandoek iragazkia desgaitzen dute eta gorde duzun kopia birkargatzen dute, eta hori kontsolatik exekutatzeko sekuentzia da, ez oraintxe moztu duzun tunelaren bidez. Bost segundoko itzulerak arau argi bat garaitzen du beti.
sudo pfctl -d
sudo pfctl -f /etc/pf.conf.previous
sudo pfctl -s rules
Irauteko, abioko daemon batek pfctl -e exekutatu eta zure fitxategia abioan kargatu behar du. Tratatu beste edozein lan pribilegiatu bezala: bide absolutuak, geroago irakur dezakezun erregistroa, eta fisikoki irits zaitezkeen makina batean proba bat. Isilki huts egiten duen daemon batek makina babesik gabe eta normala dirudiela uzten du.
Dokumentatu hutsuneak, bere tunel-gailua sortzen duen bigarren VPN bezero batekin hasita. Zure arauek tunel-interfaze bat izendatzen dute, beraz bigarrena blokeatuta geratzen da edo geroago gehitutako arau zabal batek harrapatzen du. Tethering eta hotspot interfazeak noizean behin soilik agertzen dira eta ohar bera merezi dute. Hutsune horietako bat ere ez da politika saltatzeko arrazoi; oraindik balio duen baldintzak dira.