Lori macOS, yipada aabo dara nikan bi ilana àyọkà packet ti o wa lẹhin rẹ, ati pf ni apakan ti o fi ilana naa ṣiṣẹ. Ilana gbọdọ ṣe nkan meji ti o lodi si ni akoko kan: jẹ ki abani de server rẹ ki tunnel le wa, ati dena gbogbo ohun miiran lati jade taara. Ọpọlọpọ awọn akojọ ofin ti a tẹjade ṣaṣeyọri ni ekeji ati gbagbe ekin, nitorina ẹrọ naa padanu asopọ dipo ki o jere aabo. Ẹya ti o ṣiṣẹ n daruko opin, oluyanju ati tunnel, ko si ohun miiran.

Ohun ti àyọkà packet le pinnu, ati ohun ti ko le

pf n wo awọn interface, adiresi, nọmba protocol ati awọn ebute, o si duro nibẹ. Ko mọ rara iru ilana ti o ṣi socket kan, nitorina igbanilaaye ti a kọ fun eto kan di igbanilaaye fun gbogbo eto ti o le de ebute kanna. Bayi ni iyọkuro UDP ti o lawọ ṣe yi yipada aabo pada si nẹtiwọki lasan. Dena ti o mọ ohun elo jẹ ti abani tabi itẹsiwaju eto, kii ṣe faili yii.

Àyọkà naa ko tun ṣẹda awọn ọna. Nigba ti abani ba ṣubu, ọna aiyipada le tun tọka si tunnel ti o ku, pf si yi i pada si awọn packet ti a dena dipo ipadabọ idakẹjẹ si Wi-Fi. Dena naa ni abajade ti a pinnu, kii ṣe abawọn ti a yẹ ki o yika.

Ilana ni o pinnu abajade ni igbagbogbo ju ọrọ ofin lọ. Laisi quick, pf tẹsiwaju iṣiro lẹhin ibaramu ati ofin ibaramu ti o kẹhin ni o bori, nitorina ọna ti o gbooro nitosi isalẹ bori awọn iyọkuro iṣọra ti o wa loke. Fifamẹ si awọn ọna pẹlu quick jẹ ki ibaramu akọkọ jẹ ipari, eyi ti onkọwe ilana maa n tumọ si.

Ka awọn otitọ interface ati opin ni akọkọ

Awọn interface alailowaya kii ṣe nọmba kanna lori gbogbo Mac, ati ẹrọ tunnel gba nọmba ti o le yipada laarin awọn igba ibẹrẹ. Ofin ti o daruko ẹrọ ti ko si kuna ni ipinya, eyi ti o pariwo ati rọrun lati mu, nigba ti ofin ti o daruko ẹrọ ti o wa ti ko tọ ni a pin ni mimọ o si gba ijabọ ti o fẹ dena laaye.

Gba awọn otitọ lakoko ti abani ti sopọ, nitori ẹrọ tunnel wa nigba yẹn nikan. O nilo interface ti o di ọna aiyipada mu, ẹrọ ti abani ṣẹda, ati adiresi ati ebute server ti o pe. Iye ikẹhin yẹn ni ohun ti ọpọlọpọ awọn akojọ ofin fi silẹ, ati fifi silẹ ni idi ti akojọ ti a daakọ fi dena tunnel tirẹ.

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

Aṣẹ akọkọ daruko interface ti o bori ni bayi, ekeji ṣe akojọ gbogbo ẹrọ ti kernel mọ, ati ẹkẹta fi awọn atunto VPN han ti eto le bẹrẹ. Kọ awọn idahun yẹn silẹ, lẹhinna ka adiresi ati ebute server lati atunto abani funrararẹ.

Kọ akojọ ofin ni ayika ọna tunnel

Faili ni isalẹ kọ ni aiyipada o si gba nkan marun lẹẹkansi: loopback, ẹrọ tunnel, ọna abani si server rẹ, oluyanju ti a lo ṣaaju ki tunnel to wa, ati awọn paṣipaarọ meji ti o jẹ ki ọna asopọ alailowaya wulo. Awọn orukọ interface ati adiresi server wa lati ẹrọ rẹ, nitorina rọpo awọn iye ti o ti fi idi mulẹ. Nọmba tunnel pẹlu kii yoo ba tirẹ mu.

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

Laini DHCP wa nitori Mac beere adiresi ṣaaju ki o to ni ọkan, nitorina ibeere jade lati ebute 68 si ebute 67 laisi adiresi orisun ti o wulo. Laini multicast jẹ ki eto ṣe idajọ boya ọna asopọ alailowaya yẹ lati lo, ati yiyọ rẹ jẹ ki ẹrọ kan ti o royin ko si asopọ lori nẹtiwọki ti n ṣiṣẹ. Laini opin ni ohun ti OpenVPN le de server rẹ rara; laisi rẹ block all ju imufẹhinti ode lọ ati tunnel kii yoo ga. Laini oluyanju dín ju igbanilaaye DNS gbogbogbo lọ, nitori o daruko adiresi kan ati ebute kan dipo gbogbo ibeere ti ẹrọ naa ṣe.

Awọn iyọkuro opin ati oluyanju yẹn ni meji ti o gbọdọ wa; gbogbo ohun miiran wa ni didena. Ti abani ba pe adiresi gidi, yọ laini oluyanju kuro ki o si tọju laini opin. Ti adiresi server ba yipada, ṣe imudojuiwọn laini yẹn ṣaaju asopọ ti o tẹle, tabi kun tabili pf lati kio abani funrararẹ ki o ba tabili mu dipo.

Sọ tunnel silẹ, lẹhinna tun bẹrẹ

Ṣe ipinya ṣaaju gbigbe, nitori aṣiṣe sintasi jẹ olowo poku ninu idanwo gbigbẹ ati olowo nla ninu igba ijinna. Lẹhinna gbe faili naa, tan àyọkà naa ti o ba wa ni pipa, ki o si ka ohun ti o wa ni agbara gangan. Kika pada kii ṣe aṣa: oran miiran le ṣafikun awọn ofin ti o ko kọ, nitorina fi akojọ ti a tẹ sinu wé pẹlu faili rẹ.

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

Pẹlu awọn ofin ti a gbe, sọ tunnel silẹ ki o gbiyanju lati gbe oju-iwe kan. Ijabọ lasan yẹ ki o duro, ati pe o yẹ ki o wa ni iduro lẹhin ti ẹrọ ba sun ki o si ji, nitori ni iyipada yẹn ni ipo atijọ pada wọle. Tun sopọ ki o si fi idi mulẹ pe ijabọ tun bẹrẹ laisi fọwọkan akojọ ofin. Ti ẹrọ aṣawakiri ba tun ṣiṣẹ pẹlu tunnel ni isalẹ, ofin kan gbooro ju bi o ti ro lọ, ati kika pada maa n daruko rẹ.

Atunbẹrẹ ni apakan ti awọn eniyan n foju. macOS ka /etc/pf.conf ni ibẹrẹ, ṣugbọn kika faili kii ṣe ohun kanna bi titan àyọkà, nitorina akojọ ofin ti n ṣiṣẹ bayi le jẹ aiṣiṣẹ lẹhin atunbẹrẹ. Lẹhinna ṣiṣẹ sudo pfctl -s info ki o si fi idi mulẹ pe laini ipo royin àyọkà naa bi titan.

Tọju ijade ati ọna atunbẹrẹ ni otitọ

Akojọ ofin ti o dena gbogbo nkan le tun ti ọ kuro lori ẹrọ ti o n ṣakoso lati ọna jijin. Ṣatunkọ lati igba agbegbe nigba ti o ba le, tọju faili ti tẹlẹ lẹgbẹẹ tuntun, ki o si mọ ọna ipadabọ ṣaaju ki o to nilo rẹ. Awọn aṣẹ ni isalẹ pa àyọkà naa ati tun gbe ẹda ti o tọju, ati pe iyẹn ni ọna lati ṣiṣẹ lati console kii ṣe nipasẹ tunnel ti o ṣẹṣẹ ge. Ipadabọ iṣẹju-aaya marun bori ofin ọlọgbọn ni gbogbo igba.

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

Iduroṣinṣin nilo daemon ibẹrẹ ti o nṣiṣẹ pfctl -e ti o si gbe faili rẹ ni ibẹrẹ. Tọju rẹ bii eyikeyi iṣẹ alaṣẹ miiran: awọn ọna pipe, log ti o le ka lẹhinna, ati idanwo lori ẹrọ ti o le de ni ti ara. Daemon ti o kuna ni idakẹjẹ fi ẹrọ naa silẹ laini aabo ti o si dabi deede.

Ṣe akọsilẹ awọn aafo, bẹrẹ pẹlu abani VPN keji ti o ṣẹda ẹrọ tunnel tirẹ. Awọn ofin rẹ daruko interface tunnel kan, nitorina ekeji wa ni didena tabi ofin gbooro ti a fi kun nigbamii mu u. Awọn interface tethering ati hotspot farahan nigba miiran nikan ati pe o yẹ fun akọsilẹ kanna. Ko si ọkan ninu awọn aafo yẹn ti o jẹ idi lati fo ilana naa; wọn ni awọn ipo ti o tun wulo labẹ.

Àwọn àpilẹ̀kọ tó jọra