Hook-yada si khalad la'aan u shaqeeya oo wali soo sheega fayl maqan waxay inta badan eegaan meel khaldan, ma aha inay ku guuldareystaan shaqadooda. Wadooyinka qaraabada ah ee skript-ka waxaa lagu xalliyaa marka loo eego galka shaqada ee process-ka, adeeggana wuxuu ku bilaabmaa gal shaqo aadan dooran. Faylka ku xiga skript-ka iyo faylka uu process-ku furo isku mid ma aha oo kaliya marka wax ku xidhaan. Farqigaas wuxuu sharraxayaa qayb weyn oo ka mid ah guuldarrooyinka hook-ka oo si khaldan loo akhriyo dhibaatooyin ogolaansho.

Hubi wadada ka hor ogolaanshaha, sababtoo ah khaladka ogolaanshaha ee faylka khaldan wali waa faylka khaldan.

Wadada qaraabada ah waxaa lagu xalliyaa process-ka, ma aha faylka

Marka skript-ku wacdo open("policy.json"), kernel-ku wuxuu magaca ku xalliyaa galka shaqada ee hadda ee process-ka. Wax ka mid ah goobta skript-ka laftiisa kama qayb qaataan raadintaas. OpenVPN wuxuu hook-yada ka bilaabaa gal uu isagu doorto, iyo doorashada cd way beddeli kartaa, sidaas darteed skript-ka gacanta laga tijaabiyay galkiisa wuxuu u dhaqmaa si kale marka daemon-ku uu shaqeeyo. Tijaabada gacanta way gudubtaa, socodsiinta adeegga way guuldareysataa, khadka log-ka wuxuu kaliya xusayaa magaca maqan.

Python waxay muujisaa goobta skript-ka sida __file__, waana taas oo suurtagelisa xidhitaanka. Path(__file__).resolve().parent / "policy.json" wuxuu waddo ka dhisaa faylka halkii uu ka dhisi lahaa process-ka. Khadkaas kaliya wuxuu meesha ka qaadayaa ku tiirsanaanta gal shaqada isagoo aan wax ka beddelin mudnaanta.

Si ula kac ah u xidh wadada, ka dibna hubi waxa resolve sameeyo

resolve() wuxuu raacaa xiriirka calaamadaha, sidaas darteed rakibidda hook-ka meeshiisa ku xidha waxay ku xidhantaa bartilmaameedka xiriirka, ma aha galka haysta xiriirka. Tan ayaa badanaa ah waxa aad rabto rakibidda nooca leh, waana khalad qaabka filaya xogta ku xigta xiriirka calaamadda. Go'aanso waxa rakibidda ula jeedo, oo koodhka u qor sidaas halkii aad ka ogaan lahayd farqiga wax soo saarka. Path(__file__).parent la'aan resolve() wuxuu hayaa galka xiriirka laftiisa.

Haddii xogta ay leedahay instance-ka ma aha barnaamijka, ka qaado waddo buuxda oo ka timid dejinta. Ku qorista goob si adag waxay hook-ka ku xidhaa hal qaab oo martigeliye.

Afar xuduudood si isku xigta u gudub

Ka bilow gal shaqada: isbarbar dhig WorkingDirectory, doorashada cd ee OpenVPN iyo wax kasta oo duuban oo gal beddela ka hor exec. Ka dibna xaqiiji goobta la xalliyay, sababtoo ah fayl magac la mid ah oo rakibid kale ku jira ayaa ka jawaabi kara raadinta oo qarin kara khaladka. Xigta ayaa ah aragtida nidaamka faylka: chroot ama booska magacyada mount ee adeegga waxay waddo martigeliye buuxda ka dhigi karaan mid aan jirin. Ugu dambeyn aqoonsiga gelitaanka, taas oo su'aal ka gooni ah muuqashada.

ProtectHome iyo PrivateTmp waxay qariyaan goobo kala duwan, midkoodna kama muuqdo liiska gal lagu qaatay martigeliyaha. Waddo root ugu jirta shell waxay noqon kartaa mid aan la arkin gudaha booska magacyada cutubka, sababtoo ahna tijaabinta isla amarka adeegga ka baxsan waxay caddeysaa wax aad u yar.

Hagaajiso raadinta adigoon ballaarin adeegga

Xidhitaanka wadada waxay xalisaa oo kaliya xuduudda koowaad. Ma muujiso gal adeeggu qariyo, oo ma siiso akoon aan mudnaan lahayn gelitaan faylka kaliya root. script-security kor u qaadista waxay beddeshaa skript-yada OpenVPN uu shaqeyn doono; ma laha wax saameyn ah halka magac qaraabada ah lagu xalliyo. Beddelka gal shaqada ee adeegga oo dhan wuu ka ballaaran yahay dhibaatada, sababtoo ah waddo kasta oo kale oo qaraabada ah oo shahaado, log ama caawiye ah way la dhaqaaqdaa.

Dooro hagaajinta cidhiidhi ah: waddo go'an oo skript-ka ku jirta, qiime dejin cad oo xogta instance-ka ah, iyo lahaanshaha faylka oo u dhigma akoonka hook-ku dhab ahaan ku shaqeeyo.

Diiwaangeli caddayn magacaabaya xuduudda

Warbixin guuldarro faa'iido leh waxay ka kooban tahay saddex wax: waddada saxda ah ee hook-ku isku dayay, deegaanka soo saaray, iyo xuduudda diiday. Daabac waddada la xalliyay iyo ka reebnaanta adigoon daadin waxa ku jira faylka. Saddexdaas waxay kala soocaan xidhitaan khaldan iyo mount qarsoon iyo diidmo ogolaansho, kuwaas oo saddex hagaajin kala duwan ah.

Sheegashada ah in root uu faylka ka akhriyi karo terminal waxay ka jawaabtaa mid ka mid ah su'aalahaas oo midna kama jawaabto kuwa kale. Taa beddelkeeda ka tijaabi macnaha adeegga laftiisa.

Maqaallo la xiriira