Daemon na VPN yana buƙatar ayyukan cibiyar sadarwa masu izini ko da yake aikace-aikace na yau da kullum suna buɗe soket masu fita ba tare da wani izini ba. A wannan tazarar ne yawancin kurakuran dama suke farawa: wani yana ganin kuskuren izini, ya ba da dukkan saitin, kuma sabis ɗin yana aiki saboda dalilan da babu wanda zai iya bayyana su daga baya. Jagorar da ke ƙasa tana farawa daga aikin da ya kasa, tana haɗa shi da iko ɗaya, sannan tana duba yanayin da tsarin ke gudana a ciki da gaske. Gudanarwa a matsayin root marar iyaka amsa ce mai inganci ga wasu turawa, amma ya kamata ya zama shawara ba tsohuwar ƙima ba.

Fara daga aikin da ya kasa

Karanta kuskuren kafin ka karanta jagora. «Ba a yarda da aikin ba» a canjin muƙala, ƙin buɗe kumburin na'ura da gazawar bind a ƙaramin tashar jiragen ruwa matsaloli ne uku daban-daban da izini uku daban-daban. Idan tsarin ya fara kuma ya kasa ne kawai a canjin hanya na farko, hakan kuma yana nuna cewa an riga an yi nasarar ƙirƙirar muƙalar, wanda ke rage amsar sosai.

Sake haifar da gazawar tare da sabis ɗin a tsayar, sannan ka fara shi a gaba a ƙarƙashin mai amfani ɗaya idan aiwatarwa ta yarda. Kuskuren da za ka iya gani ya fi layin log da za ka yi hasashe, kuma yana bayyana bambanci tsakanin matsalar dama da ƙin SELinux ko AppArmor.

Haɗa kowane aiki da iko ɗaya

Tebur taswirar farawa ce, ba madadin takardun aiwatarwa ba:

OperationUsual authorityWatch for
Create or configure tun/tapCAP_NET_ADMIN in the relevant namespaceCreating the device and opening it are separate steps
Add routes, rules, firewall entriesCAP_NET_ADMINSame capability, different namespace than you think
Open /dev/net/tunDevice permissions, not a capabilityGroup membership or a udev rule may be enough
Raw socketsCAP_NET_RAWNeeded by some user-space tunnel implementations
Bind a port below 1024CAP_NET_BIND_SERVICEIrrelevant for most modern tunnel ports

Layuka biyu a cikin wannan tebur su ne waɗanda mutane suke rikita. Buɗe /dev/net/tun tambaya ce ta izinin fayil; neman kernel ya daidaita abin da ka buɗe tambaya ce ta dama. Ba da CAP_NET_ADMIN baya gyara kumburin na'urar da mai amfani da sabis ɗinka ba zai iya karantawa, kuma gyara kumburin baya ba ka ikon hanya. Duba duka biyu kafin ka canza ko ɗaya.

WireGuard na kernel da shirye-shiryen rami na sararin mai amfani ma ba su da buƙatu iri ɗaya. Hanyar module na kernel tana daidaita muƙalar da take akwai ta netlink, yayin da aiwatarwa a sararin mai amfani na iya buƙatar na'urar kuma, ga wasu jigilar, soket ɗanyen.

Karanta yanayin: sabis, kwantena ko harsashi

Dama a sararin sunan cibiyar sadarwar mai masaukin na iya yin tasiri fiye da aikin nan take a cikin tarin da aka keɓe da gangan. Yanayin gudanar da kwantena yawanci yana farawa da ƙaramin saitin iyaka; ƙara NET_ADMIN ga kwantena da ke raba cibiyar sadarwar mai masauki izini ne mafi girma fiye da ƙara shi ga wanda ke da nasa sararin sunan cibiyar sadarwa kuma ba shi da hawan mai masauki.

Ga raka'o'in systemd karanta abin da ake aiwatarwa da gaske ba abin da fayil ɗin raka'a ya bayyana yana faɗi ba: systemctl show -p CapabilityBoundingSet -p AmbientCapabilities yana ba da rahoton ƙimar aiki, waɗanda wani drop-in da ka manta zai iya saita su. Nemi ƙimar aiki, ba ƙimar da aka yi niyya ba. Dama ta ambient tana da muhimmanci domin sabis ɗin da ba root ba yana rasa dama a lokacin exec ba tare da su ba.

Ɗauki saitin da aka goyi bayan fakiti ko hoton a matsayin tushe. Kada ka ƙara izinin soket ɗanyen ko yanayin mai izini saboda wata jagora ta lissafa su don wani kayan aiki; wannan tunani ba ya canja kome kuma yana ɓata maka keɓewar da ka biya. Idan kana shakka, kada ka ba da kome kuma ka karanta bayanan aiwatarwa don ainihin aikin da kake buƙata.

Duba abin da ke faruwa bayan izini ya faɗi

Yawancin daemon suna farawa da izini, suna daidaita muƙalar, sannan su koma ga mai amfani marar izini kuma su riƙe rami. Daga wannan lokacin tsarin ba zai iya ƙara hanya, sake rubuta ƙa'idar wuta ko buɗe sabuwar na'ura mai izini ba, wanda ke da kyau har sai sake haɗawa yana buƙatar daidai haka. Karanta fayiloli da aiwatar da ƙugiya daga baya na iya gazawa saboda wannan dalili.

Gwada dukan zagayowar rayuwa ba daƙiƙa ta farko ba: farawa, sabuntawa ko sake haɗawa, da tsaftacewa lokacin tsayawa. Nasarar ƙirƙirar muƙala ta farko ba ta tabbatar da cewa kowane aiki mai izini na gaba zai ci gaba da aiki ba, kuma gazawar tana bayyana sa'o'i da yawa daga baya a wajen samarwa.

Aiwatarwa da ke riƙe rami a buɗe a lokacin canjin mai amfani yawanci suna haɗa hakan da zaɓuɓɓukan kiyaye rami da maɓallai. A bangaren systemd, tambayar da ta yi daidai ita ce shin saitin dama na raka'a yana tsira daga canjin mai amfani da ka saita.

Rubuta izinin da dalilinsa

Rubuta ainihin izini, aikin da yake ba da damar, da kuskuren da ya gyara. Layi ɗaya a cikin bayanan turawa — «CAP_NET_ADMIN a sararin sunan cibiyar sadarwar raka'a, ana buƙata don canje-canjen hanya bayan sake haɗawa» — ya isa ya hana na gaba faɗaɗa izinin kuma.

Sannan sake karanta saitin aiki bayan kowane haɓakawa. Masu sayarwa suna ƙara fasali, hotuna suna canza tsoffin ƙima, kuma damar da ba ta da muhimmanci bara na iya zama mai ɗaukar nauyi ba tare da kowa ya lura ba.

Labarai masu alaƙa