macOS, qalabka amnigu wuxuu u wanaagsan yahay oo kaliya sida siyaasadda shaandhada baakadaha ee ka dambeysa, pf-na waa qaybta fulisa siyaasaddaas. Siyaasaddu waa inay sameyso laba shay oo iska soo horjeeda isku mar: u oggolaato macmiilka inuu gaaro server-kiisa si tunnel u jiri karo, oo ay joojiso wax kasta oo kale inay si toos ah u baxaan. Inta badan xeerar la daabacay waxay qabtaan tan labaad oo ay iloobaan tan koowaad, sidaas darteed mishiinku wuxuu lumiyaa xiriirka halkii uu ka heli lahaa difaac. Nooca shaqeeya wuxuu magacaabaa barta ugu dambeysa, xalliyaha iyo tunnel-ka, wax kale ma sheego.

Waxa shaandhada baakaduhu go'aamin karto, iyo waxa aanay karin

pf wuxuu eegaa interface-yada, cinwaannada, lambarrada borotokoolka iyo dekedaha, wuuna halkaas joogsadaa. Marnaba ma ogaa process-kee furay socket, sidaas darteed fasax loo qoray hal barnaamij wuxuu noqdaa fasax barnaamij kasta oo gaari kara isla dekeddaas. Sidaas ayaa ka-dhaafitaan UDP oo deeqsi ah ugu celisaa qalabka amniga shabakad caadi ah. Xannibaadda oo la socota barnaamijka waxaa iska leh macmiilka ama fidinta nidaamka, ma aha faylkan.

Shaandhadu sidoo kale ma abuurto waddooyin. Marka macmiilku dhaco, waddada caadiga ah waxay weli tilmaami kartaa tunnel dhintay, pf-na wuxuu u beddelaa baakado xanniban halkii uu si aamusnaan ah ugu noqon lahaa Wi-Fi. Xannibaaddu waa natiijada loo qasday, ma aha cilad la dhaafi karo.

Natiijada waxaa badanaa go'aamiya nidaamka halkii ay ka go'aamin lahayd qoraalka xeerka. La'aanteed quick, pf wuu sii socdaa qiimeynta ka dib iswaafajinta oo xeerka ugu dambeeya ee iswaafajiya ayaa guuleysta, sidaas darteed maritaan ballaaran oo hoos ku yaal wuxuu baal-mariyaa ka-dhaafitaannada taxaddarka leh ee ka sarreeya. Calaamadeynta maritaannada quick waxay ka dhigtaa iswaafajinta koowaad mid kama dambays ah, taas oo qoraaga siyaasaddu badanaa ula jeedo.

Marka hore akhri xaqiiqooyinka interface-ka iyo barta ugu dambeysa

Interface-yada wireless-ka laguma tirinayo si isku mid ah Mac kasta, qalabka tunnel-kuna wuxuu helaa lambar uu isbeddeli karo inta u dhaxaysa boot-yada. Xeerka magacaaba qalab aan jirin wuu ku guuldareystaa parse-ka, taas oo cod dheer oo sahlan in la qabto, halka xeerka magacaaba qalabka jira ee khaldan si nadiif ah loo parse-gareeyo oo u oggolaado taraafik aad rabtay inaad joojiso.

Ururi xaqiiqooyinka inta macmiilku xiran yahay, sababtoo ah qalabka tunnel-ku wuxuu jiraa oo kaliya markaas. Waxaad u baahan tahay interface-ka haysta waddada caadiga ah, qalabka uu macmiilku abuuray, iyo cinwaanka iyo dekedda server-ka uu wacayo. Qiimahaas ugu dambeeya ayaa ah kan ay inta badan xeerar seegaan, seegiddiisuna waa sababta qayb la koobiyeeyay ay u xannibto tunnel-keeda.

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

Amarka koowaad wuxuu magacaabaa interface-ka hadda guuleysta, kan labaad wuxuu liis-gareeyaa qalab kasta oo kernel-ku yaqaan, kan saddexaadna wuxuu muujinayaa habaynta VPN ee nidaamku bilaabi karo. Qor jawaabahaas, ka dibna ka akhri cinwaanka iyo dekedda server-ka habaynta macmiilka laftiisa.

Qor qaybta xeerarka hareeraha waddada tunnel-ka

Faylka hoose wuxuu caadi ahaan diidaa oo dib u aqbalaa shan shay: loopback, qalabka tunnel-ka, waddada macmiilka ee server-kiisa, xalliyaha la isticmaalo ka hor inta tunnel-ku jirin, iyo labada is-weydaarsi ee haysta xiriirka wireless-ka mid isticmaali karo. Magacyada interface-yada iyo cinwaanka server-ku waxay ka yimaadaan mashiinkaaga, sidaas darteed beddel qiyamka aad xaqiijisay. Lambarka tunnel-kuna lama mid noqon doono kaaga.

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

Sadarka DHCP wuxuu jiraa sababtoo ah Mac wuxuu codsadaa cinwaan ka hor inta uusan haysan, sidaas darteed codsigu wuxuu ka baxaa dekedda 68 u jihada dekedda 67 isagoo aan haysan cinwaan isha la isticmaali karo. Sadarka multicast wuxuu u oggolaanayaa nidaamka inuu go'aamiyo haddii xiriirka wireless-ku u qalmo isticmaalka, tirtiriddiisuna waxay soo saartaa mishiin soo sheega xiriir la'aan shabakad shaqeynaysa. Sadarka barta ugu dambeysa waa kan OpenVPN u oggolaanaya inuu gaaro server-kiisa gabi ahaan; la'aantiis block all wuxuu tuuraa gacan-qaadista dibadda tunnel-kuna marnaba ma kaco. Sadarka xalliyaha waa ka dhuudhuuban fasax DNS guud, sababtoo ah wuxuu magacaabaa hal cinwaan iyo hal deked halkii uu ka magacaabi lahaa su'aal kasta oo mishiinku sameeyo.

Ka-dhaafitaannada barta ugu dambeysa iyo xalliyaha ayaa ah labada ay tahay inay jiraan; wax kasta oo kale wuu xanniban yahay. Haddii macmiilku wacayo cinwaan macno ahaan, ka saar sadarka xalliyaha oo hayso sadarka barta ugu dambeysa. Haddii cinwaanka server-ku isbeddelo, cusboonaysii sadarkaas ka hor xiriirka xiga, ama buuxi shax pf ah oo ka yimid qabashada macmiilka laftiisa oo beddelkeeda iswaafaji shaxda.

Hoos u dhig tunnel-ka, ka dibna dib u bilow

Parse ka hor raridda, sababtoo ah khalad naxwe ahaaneed wuu jaban yahay tijaabo qalalan wuuna qaali yahay fadhi fog. Ka dib rar faylka, daaran shaandhada haddii ay damanayd, oo akhri waxa dhab ahaan dhaqan gal ah. Dib-u-akhrisku ma aha caado: anbar kale ayaa ku dari kara xeerar aadan qorin, sidaas darteed isbarbar dhig qaybta la daabacay iyo faylkaaga.

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

Xeerarka oo raran, hoos u dhig tunnel-ka oo isku day inaad rarto bog. Taraafikada caadiga ah waa inay istaagtaa, oo waa inay istaagtaa weli ka dib marka mishiinku seexdo oo uu soo jeedo, sababtoo ah isbeddelkaas ayaa xaaladdii duugga ahayd dib u soo gasha. Dib u xiriir oo xaqiiji in taraafikadu dib u bilaabanto adigoon taaban qaybta xeerarka. Haddii browser-ku weli shaqeeyo tunnel-ku hoos yahay, xeer baa ka ballaaran intaad moodday, dib-u-akhriskuna badanaa magacaabaa.

Dib-u-bilowga waa qaybta dadku boodaan. macOS wuxuu akhriyaa /etc/pf.conf marka la boot-gareynayo, laakiin faylka akhrinta lama mid aha daariidda shaandhada, sidaas darteed qayb xeerar ah oo hadda shaqeysa ayaa laga yaabaa inay noqoto mid aan firfircoonayn dib-u-bilow ka dib. Ka dib socodsii sudo pfctl -s info oo xaqiiji in sadarka xaaladdu uu shaandhada ku sheego mid daaran.

Hayso bixitaanka iyo waddada dib-u-bilowga si daacad ah

Qayb xeerar ah oo wax walba xannibtaa waxay sidoo kale kaa xiri kartaa mishiin aad si fog u maamusho. Ka tafatir fadhi maxalli ah markaad kartid, hayso faylkii hore oo garabka cusub ag dii, oo ogow dib-u-noqoshada ka hor intaadan u baahnayn. Amarrada hoose waxay damiyaan shaandhada oo dib u raraan nuqulka aad haysatay, waana isku-xigga laga socodsiiyo console-ka, ma aha tunnel-ka aad hadda goysay. Dib-u-noqosho shan ilbiriqsi ah ayaa ka guuleysata xeer caqli leh mar kasta.

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

Joogitaanku wuxuu u baahan yahay daemon bilow ah oo socodsiiya pfctl -e oo rarta faylkaaga marka la boot-gareynayo. Ula dhaqan sida shaqo kale oo mudnaan leh: waddooyin buuxa, log aad ka dib akhrisan kartid, iyo tijaabo mishiin aad jir ahaan gaari kartid. Daemon si aamusnaan u guuldareysta wuxuu mishiinka uga tagaa mid aan la ilaalin oo u eg caadi.

Diiwaangeli farqiga, adigoo ka bilaabaya macmiil VPN labaad oo abuura qalabkiisa tunnel. Xeerarkaagu waxay magacaabaan hal interface tunnel, sidaas darteed kan labaad wuu xanniban yahay ama waxaa qabta xeer ballaaran oo dambe lagu daray. Interface-yada tethering-ka iyo hotspot-ka waxay soo muuqdaan marar dhif ah oo waxay mudan yihiin isla qoraalkaas. Midkoodna farqigaas ma aha sabab looga boodo siyaasadda; waa shuruudaha ay weli ku socoto.

Maqaallo la xiriira