Fuq macOS, swiċċ ta’ sikurezza huwa biss tajjeb daqs il-politika tal-filtru tal-pakketti warajh, u pf huwa l-biċċa li tinforza dik il-politika. Il-politika trid tagħmel żewġ affarijiet opposti flimkien: tħalli lill-klijent jilħaq is-server tiegħu biex ikun jista’ jkun hemm tunnel, u twaqqaf kull ħaġa oħra milli toħroġ direttament. Ħafna mis-settijiet ta’ regoli ppubblikati jagħmlu t-tieni u jinsa l-ewwel, u għalhekk il-magna titlef il-konnessjoni minflok ma tikseb protezzjoni. Il-verżjoni li taħdem issemmi l-punt finali, is-solvatur u t-tunnel, u xejn aktar.

X’tista’ tiddeċiedi filtru tal-pakketti, u x’ma jistax

pf iħares lejn interfaces, indirizzi, numri tal-protokoll u ports, u jieqaf hemm. Qatt ma jsir jaf liema proċess fetaħ socket, u għalhekk permess miktub għal programm wieħed isir permess għal kull programm li jista’ jasal għall-istess port. Hekk eċċezzjoni UDP ġeneruża ddawwar swiċċ ta’ sikurezza lura f’netwerk ordinarju. L-imblukkar konxju mill-applikazzjoni jappartjeni lill-klijent jew lil estensjoni tas-sistema, mhux lil dan il-fajl.

Il-filtru lanqas joħloq rotot. Meta l-klijent jaqa’, ir-rotta default tista’ għadha tindika lejn tunnel mejjet, u pf ibiddel dan f’pakketti mblukkati minflok ma jaqa’ lura bil-kwiet għal Wi-Fi. L-imblokk huwa r-riżultat maħsub, mhux ħsara li għandha tiġi evitata.

L-ordni tiddeċiedi r-riżultat aktar spiss mit-test tar-regola. Mingħajr quick, pf ikompli jevalwa wara t-tqabbil u tirbaħ l-aħħar regola li taqbel, għalhekk passa wiesa’ qrib il-qiegħ jegħleb l-eċċezzjonijiet attenti fuqu. Li timmarka l-passi b’quick tagħmel l-ewwel tqabbil finali, u dan huwa dak li normalment ifisser awtur ta’ politika.

Aqra l-ewwel il-fatti tal-interface u tal-punt finali

L-interfaces wireless mhumiex innumerati bl-istess mod fuq kull Mac, u l-apparat tat-tunnel jieħu numru li jista’ jinbidel bejn boot. Regola li ssemmi apparat li ma jeżistix tfalli fil-parsing, li huwa storbjuż u faċli li taqbad, filwaqt li regola li ssemmi l-apparat eżistenti żbaljat tiġi pparsjata nadifa u tħalli traffiku li ridt twaqqaf.

Iġbor il-fatti waqt li l-klijent ikun konness, għax l-apparat tat-tunnel jeżisti biss dakinhar. Għandek bżonn l-interface li żżomm ir-rotta default, l-apparat li ħoloq il-klijent, u l-indirizz u l-port tas-server li jagħmel mal-klijent. Dak il-valur tal-aħħar huwa dak li ħafna settijiet ta’ regoli jħallu barra, u li tħallih barra huwa għaliex sett ikkupjat jimblokka t-tunnel tiegħu stess.

route -n get default
ifconfig -l
scutil --nc list

L-ewwel kmand isemmi l-interface li tirbaħ bħalissa, it-tieni jelenka kull apparat li l-kernel jaf bih, u t-tielet juri l-konfigurazzjonijiet VPN li s-sistema tista’ tibda. Ikteb dawk it-tweġibiet, imbagħad aqra l-indirizz u l-port tas-server mill-konfigurazzjoni tal-klijent innifsu.

Ikteb is-sett ta’ regoli madwar il-mogħdija tat-tunnel

Il-fajl hawn taħt jiċħad b’mod default u jerġa’ jdaħħal ħames affarijiet: loopback, l-apparat tat-tunnel, il-mogħdija tal-klijent lejn is-server tiegħu, is-solvatur użat qabel ma jeżisti t-tunnel, u ż-żewġ skambji li jżommu rabta wireless użabbli. L-ismijiet tal-interface u l-indirizz tas-server jiġu mill-magna tiegħek, għalhekk ibdel il-valuri li kkonfermajt. In-numru tat-tunnel lanqas ma jaqbel ma’ tiegħek.

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

Il-linja DHCP teżisti għax Mac jitlob indirizz qabel ma jkollu wieħed, għalhekk it-talba toħroġ mill-port 68 lejn il-port 67 mingħajr indirizz sors użabbli. Il-linja multicast tħalli lis-sistema tiġġudika jekk ir-rabta wireless hijiex ta’ min jużaha, u t-tneħħija tagħha tipproduċi magna li tirrapporta l-ebda konnessjoni fuq netwerk li jaħdem. Il-linja tal-punt finali hija dik li tħalli OpenVPN jasal għas-server tiegħu xejn; mingħajrha block all jittaq il-handshake ta’ barra u t-tunnel qatt ma jitla’. Il-linja tas-solvatur hija idjaq minn permess DNS ġenerali, għax issemmi indirizz wieħed u port wieħed minflok kull mistoqsija li tagħmel il-magna.

Dawk l-eċċezzjonijiet tal-punt finali u tas-solvatur huma t-tnejn li jridu jkunu hemm; kull ħaġa oħra tibqa’ mblukkata. Jekk il-klijent idoqq indirizz litterali, neħħi l-linja tas-solvatur u żomm il-linja tal-punt finali. Jekk l-indirizz tas-server jinbidel, aġġorna dik il-linja qabel il-konnessjoni li jmiss, jew imla tabella pf mill-ganċ tal-klijent innifsu u tqabbel it-tabella minflok.

Niżżel it-tunnel, imbagħad erġa’ ibda

Ipparsja qabel ma tgħabbi, għax żball tas-sintassi huwa rħis fi prova niexfa u għali f’sessjoni remota. Imbagħad għabbi l-fajl, ixgħel il-filtru jekk kien mitfi, u aqra lura x’inhu fil-verità fis-seħħ. Il-qari lura mhuwiex ċerimonja: ankra oħra tista’ żżid regoli li ma ktibtx, għalhekk qabbel is-sett stampat mal-fajl tiegħek.

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

Bir-regoli mgħobbija, niżżel it-tunnel u pprova tgħabbi paġna. It-traffiku ordinarju għandu jieqaf, u għandu jibqa’ waqaf wara li l-magna torqod u tqum, għax dak it-tranżizzjoni huwa fejn l-istat antik jerġa’ jidħol bil-moħbi. Erġa’ qabbad u kkonferma li t-traffiku jerġa’ jibda mingħajr ma tmiss is-sett ta’ regoli. Jekk il-browser għadu jaħdem bit-tunnel baxx, xi regola hija wiesgħa aktar milli ħsibt, u l-qari lura normalment isemmiha.

Ir-riavvju huwa l-parti li n-nies jaqbiżu. macOS jaqra /etc/pf.conf fil-boot, iżda l-qari tal-fajl mhuwiex l-istess bħall-attivazzjoni tal-filtru, għalhekk sett ta’ regoli li jaħdem issa jista’ jkun inattiv wara riavvju. Mexxi mbagħad sudo pfctl -s info u kkonferma li l-linja tal-istat tirrapporta l-filtru bħala attivat.

Żomm il-ħruġ u l-mogħdija tar-riavvju onesti

Sett ta’ regoli li jimblokka kollox jista’ wkoll jaqla’ lilek minn magna li tamministra mill-bogħod. Editja minn sessjoni lokali meta tista’, żomm il-fajl preċedenti ħdejn il-ġdid, u kun af ir-ritorn qabel ma jkollok bżonnu. Il-kmandi hawn taħt jiddiżattivaw il-filtru u jerġgħu jgħabbu l-kopja li żammejt, u din hija s-sekwenza li għandha tiġi mħaddma minn console, mhux mit-tunnel li għadek kemm qtajt. Ritorn ta’ ħames sekondi jgħeleb regola intelliġenti kull darba.

sudo pfctl -d
sudo pfctl -f /etc/pf.conf.previous
sudo pfctl -s rules

Il-persistenza teħtieġ daemon tal-varar li jmexxi pfctl -e u jgħabbi l-fajl tiegħek fil-boot. Ittrattah bħal kull xogħol privileġġat ieħor: mogħdijiet assoluti, log li tista’ taqra wara, u test fuq magna li tista’ tilħaq fiżikament. Daemon li jfalli bil-kwiet iħalli l-magna mhux protetta u tidher normali.

Iddokumenta l-lakuni, ibda bi klijent VPN ieħor li joħloq l-apparat tat-tunnel tiegħu stess. Ir-regoli tiegħek isemmu interface tat-tunnel wieħed, għalhekk it-tieni jibqa’ mblukkat jew jinqabad minn regola wiesgħa miżjuda aktar tard. L-interfaces tat-tethering u tal-hotspot jidhru biss kultant u jistħoqqilhom l-istess nota. Ħadd minn dawk il-lakuni mhu raġuni biex taqbeż il-politika; huma l-kundizzjonijiet li fihom għadha tħaddem.

Artikli relatati