Ba OpenVPN CAP_NET_ADMIN ba tare da ba shi root ba
Unit ɗin da ke farawa a matsayin mai amfani marar gata har yanzu yana buƙatar daidaitaccen saitin iyawa. Duba unit ɗin, tsarin da ke raye da iyakar exec, a wannan jeri.
Sabis ɗin yana farawa, log ɗin yana ƙorafi cewa ba zai iya buɗe na'urar tun ba, kuma hanyoyi ba sa bayyana. Gudanar da capsh --print a cikin shel ɗinka kuma cap_net_admin yana nan, wanda ke sa gazawar ta zama kamar ba zai yiwu ba. Abin da ya bambanta tsakanin shelka da unit ɗin shine canjin gata, ba son kernel ɗin ya ba da iyawar ba. Bi dubawa huɗu da ke ƙasa bisa tsari kuma tsaya a farkon wanda ya bayyana tazarar.
Raba iyawar da ta ɓace da na'urar da ta ɓoye
Gazawa biyu suna kama da juna daga layin log ɗin. Tsarin da ba shi da CAP_NET_ADMIN ba zai iya ƙirƙira ko daidaita fuskar tunnel ba, kuma tsarin da akwatinsa na yashi ke ɓoye /dev/net/tun ba zai iya buɗe shi tun farko ba. Ƙara iyawa ba zai gyara na biyu ba.
Duba ko na'urar tana cikin sararin suna na sabis ɗin kafin ka gyara wani abu. PrivateDevices=yes layin taurare ne da ya zama ruwan dare wanda ke cire kullin tun gaba ɗaya, kuma ProtectSystem mai takurawa na iya sa hanyar ƙira ta zama karantu kawai ta yadda ake karanta ta a matsayin kuskuren izini. Dukansu suna samar da layukan log waɗanda ke ambaton tunnel ɗin, shi ya sa ake zargin iyawa. Tabbatar da cewa kullin yana nan kuma ana iya buɗe shi da farko, sannan ka ci gaba.
San wane saitin iyawa kake kallo
Linux yana riƙe da saitin izini, mai tasiri, mai gado, mai iyaka da na muhalli, kuma saitin muhalli shine wanda ke tsira daga exec na mai amfani wanda ba root ba. Iyawar fayil akan binary na iya ba da haƙƙoƙin izini da masu tasiri a exec, amma kawai muddin babu abin da ke cikin sarkar da ke toshe wannan canja wurin.
Anan ne sudo ke ɓatar da mutane. Umarnin da aka gudanar ta sudo -u yana fara sabon canjin gata kuma saitin muhalli ya ɓace, don haka irin wannan binciken da ke yin nasara a matsayin root yana gazawa a can. Mai kula da sabis wani canji ne kuma, kuma ba ya ba da wani abu na muhalli sai unit ɗin ya faɗi haka.
Ba da iyawar a cikin unit ɗin, ba a cikin nannade ba
Ƙaramin sashen sabis don tunnel ɗin da ke buƙatar ƙirƙirar na'ura da shigar da hanyoyi yana kama da haka.
[Unit]
Description=OpenVPN client, office profile
After=network-online.target
[Service]
Type=notify
User=openvpn
Group=openvpn
NoNewPrivileges=yes
AmbientCapabilities=CAP_NET_ADMIN
CapabilityBoundingSet=CAP_NET_ADMIN
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/office.confAmbientCapabilities yana sanya haƙƙin cikin saitin muhalli kafin tsarin ya fara, kuma CapabilityBoundingSet yana hana tsarin riƙe wani abu bayan wannan jeri. NoNewPrivileges=yes yana toshe samun gata ta setuid ko iyawar fayil, yayin da iyawar da unit ɗin ke bayarwa a fili har yanzu tana aiki. Ƙara CAP_NET_BIND_SERVICE kawai lokacin da sabis ɗin dole ya ɗaure tashar jiragen ruwa kaɗan, kuma kada ka taɓa ƙara CAP_SYS_ADMIN saboda kawai wani zaren forum ya yi haka.
Idan unit ɗin ya nannade binary a cikin sudo, cire nannaden. systemd ya riga ya yi amfani da User=, kuma wannan ƙarin matakin shine dalilin da ya fi yiwuwa saitin muhalli ya zama fanko.
Tabbatar da tsarin da ke raye, ba fayil ɗin unit ɗin ba
Karanta abin da mai kula ya yi amfani da shi da gaske, sannan ka karanta tsarin da ya haifa.
unit=openvpn-client@office
systemctl show -p User -p AmbientCapabilities "$unit"
systemctl show -p MainPID --value "$unit" | xargs -r getpcaps
grep -E '^Cap(Eff|Amb)' /proc/$(systemctl show -p MainPID --value "$unit")/statusIdan unit ɗin ya lissafa iyawar kuma CapEff har yanzu ba shi da ita, wani drop-in yana wuce saitin ko matakin ExecStartPre yana canza muhalli. Bincika manyan fayilolin drop-in don sunan unit ɗin kafin ka ɗauka cewa babban fayil shine mai iko, domin fayil na baya yana yin nasara cikin shiru. Idan duka unit ɗin da tsarin suna nuna iyawar kuma tunnel ɗin har yanzu yana gazawa, koma ga binciken na'ura da hanya maimakon faɗaɗa saitin iyaka. Faɗaɗa shi yana ɓoye ainihin dalilin kuma yana barin sabis ɗin da gata fiye da yadda yake.
Fi son barin gata bayan farawa
OpenVPN zai iya farawa da gata sannan ya sauka zuwa asusun marar gata ta zaɓuɓɓukansa na user da group, tare da persist-key da persist-tun suna riƙe tunnel ɗin ana iya amfani da shi bayan haka. Wannan tsari yana taƙaita taga da tsarin ke riƙe haƙƙoƙi, kuma sau da yawa ya fi dacewa fiye da fara dukan daemon ɗin ba tare da gata ba da iyawa ta dindindin.
Ko wane tsari ka zaɓa, sake farawa unit ɗin kuma maimaita binciken bayan sake yi, domin sabis ɗin da ke aiki daga shel root mai mu'amala amma ke gazawa lokacin tashi yawanci bambanci ne a iyawa, na'ura ko izinin fayil. Rubuta saitin unit ɗin kusa da fitar iyawar tsarin domin mai bita na gaba ya ga ko sabunta fakiti ko drop-in ya motsa iyakar.