සේවාව ආරම්භ වේ, tun උපාංගය විවෘත කළ නොහැකි බව ලොගය පැමිණිලි කරයි, සහ මාර්ග කිසිදා නොපෙනේ. ඔබේ ෂෙල් තුළ capsh --print ධාවනය කරන්න, cap_net_admin එහිම ඇත, එය අසාර්ථකත්වය කළ නොහැකි ලෙස පෙනේ. ඔබේ ෂෙල් සහ ඒකකය අතර වෙනස් වන්නේ වරප්‍රසාද සංක්‍රමණය, කර්නලයේ හැකියාව ලබා දීමේ කැමැත්ත නොවේ. පහත පරීක්ෂණ හතර අනුපිළිවෙලින් කර පරතරය පැහැදිලි කරන පළමු එකේ නතර වන්න.

නැති වූ හැකියාව සැඟවුණු උපාංගයකින් වෙන් කරන්න

ලොග් පේළියෙන් අසාර්ථකත්ව දෙකක් එකම ලෙස පෙනේ. CAP_NET_ADMIN නොමැති ක්‍රියාවලියකට ටනල් අතුරුමුහුණත සෑදීමට හෝ වින්‍යාස කිරීමට නොහැක, සහ සැන්ඩ්බොක්ස් /dev/net/tun සඟවන ක්‍රියාවලියකට එය මුලින්ම විවෘත කළ නොහැක. හැකියා එකතු කිරීමෙන් දෙවන අවස්ථාව නිවැරදි නොවේ.

යමක් සංස්කරණය කිරීමට පෙර උපාංගය සේවාවේ නාම අවකාශය තුළ පවතීදැයි පරීක්ෂා කරන්න. PrivateDevices=yes යනු tun නෝඩය සම්පූර්ණයෙන් ඉවත් කරන පොදු දෘඩකරණ පේළියක් වන අතර, සීමාකාරී ProtectSystem වින්‍යාස මාර්ගය අවසර දෝෂයක් ලෙස කියවෙන ආකාරයෙන් කියවීමට-පමණක් කළ හැක. දෙකම ටනලය සඳහන් කරන ලොග් පේළි නිපදවයි, එබැවින් වරද හැකියා මතට පැටවේ. මුලින්ම නෝඩය ඇති බවත් විවෘත කළ හැකි බවත් තහවුරු කර, පසුව ඉදිරියට යන්න.

ඔබ බලන්නේ කුමන හැකියා කට්ටලයදැයි දැනගන්න

Linux අවසර ලත්, ඵලදායී, උරුම කළ හැකි, සීමාකාරී සහ පරිසර කට්ටල රඳවා ගනී, සහ root නොවන පරිශීලකයෙකුගේ exec ට පවතින්නේ පරිසර කට්ටලයයි. බයිනරියේ ගොනු හැකියා exec වේලාවේ අවසර ලත් සහ ඵලදායී අයිතිවාසිකම් පැවරිය හැක, නමුත් දාමයේ කිසිවක් එම මාරුව අවහිර නොකරන තාක් පමණි.

මෙහිදී sudo මිනිසුන් නොමඟ යවයි. sudo -u හරහා ධාවනය වන විධානය නව වරප්‍රසාද සංක්‍රමණයක් ආරම්භ කර පරිසර කට්ටලය නැති වේ, එබැවින් root ලෙස සාර්ථක වන එම පරීක්ෂාව එහි අසාර්ථක වේ. සේවා කළමනාකරු තවත් සංක්‍රමණයක් වන අතර, ඒකකය එසේ නොකියන්නේ නම් එය පරිසරයෙන් කිසිවක් නොදේ.

හැකියාව ඒකකය තුළ දෙන්න, රැපරයක නොවේ

උපාංගයක් සාදා මාර්ග ස්ථාපනය කළ යුතු ටනලයක් සඳහා අවම සේවා කොටස මෙසේ දිසේ.

[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.conf

AmbientCapabilities ක්‍රියාවලිය ආරම්භ වීමට පෙර අයිතිය පරිසර කට්ටලයට තබයි, සහ CapabilityBoundingSet එම ලැයිස්තුවෙන් පිටත කිසිවක් රඳවා ගැනීමෙන් ක්‍රියාවලිය වළක්වයි. NoNewPrivileges=yes setuid හෝ ගොනු හැකියා හරහා වරප්‍රසාද ලබා ගැනීම අවහිර කරයි, ඒකකය පැහැදිලිව දෙන හැකියාව තවමත් අදාළ වේ. CAP_NET_BIND_SERVICE සේවාවට පහත් පෝට් එකක් බැඳීමට සිදු වූ විට පමණක් එකතු කරන්න, සහ සංසද ත්‍රෙඩ් එකක් එසේ කළ නිසා පමණක් කිසිදා CAP_SYS_ADMIN එකතු නොකරන්න.

ඒකකය බයිනරිය sudo තුළ ඔතා ඇත්නම් රැපරය ඉවත් කරන්න. systemd දැනටමත් User= යොදයි, සහ එම අතිරේක ස්ථරය පරිසර කට්ටලය හිස් වීමට බොහෝ දුරට හේතුවයි.

ඒකක ගොනුව මත නොව, සක්‍රීය ක්‍රියාවලිය මත තහවුරු කරන්න

කළමනාකරු සැබවින්ම යොදා ඇත්තේ කුමක්දැයි කියවා, පසුව එය උත්පාදනය කළ ක්‍රියාවලිය කියවන්න.

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")/status

ඒකකය හැකියාව ලැයිස්තුගත කර CapEff තවමත් එය නොමැති නම්, යම් drop-in එකක් සැකසුම අභිබවා යයි හෝ ExecStartPre පියවරක් පරිසරය වෙනස් කරයි. ප්‍රධාන ගොනුව අධිකාරී යැයි උපකල්පනය කිරීමට පෙර drop-in නාමාවලිවල ඒකකයේ නම සොයන්න, මන්ද පසුව එන ගොනුවක් නිහඬව ජය ගනී. ඒකකය සහ ක්‍රියාවලිය දෙකම හැකියාව පෙන්වා ටනලය තවමත් අසාර්ථක නම්, සීමාකාරී කට්ටලය පුළුල් කිරීම වෙනුවට උපාංග සහ මාර්ග පරීක්ෂණ වෙත ආපසු යන්න. එය පුළුල් කිරීම සැබෑ හේතුව සඟවා සේවාව පෙරට වඩා වරප්‍රසාද ඇති ලෙස තබයි.

ආරම්භයෙන් පසු වරප්‍රසාද අත්හැරීමට කැමති වන්න

OpenVPN තමන්ගේම user සහ group විකල්ප හරහා වරප්‍රසාද සමඟ ආරම්භ වී පසුව වරප්‍රසාද නොමැති ගිණුමකට බැසිය හැක, persist-key සහ persist-tun ටනලය පසුවත් භාවිතයට සුදුසු ලෙස තබයි. එම සැලැස්ම ක්‍රියාවලියට අයිතිවාසිකම් ඇති කවුළුව පටු කරයි, සහ ස්ථිර හැකියා සමඟ මුළු ඩීමනයම වරප්‍රසාද රහිතව ආරම්භ කිරීමට වඩා එය බොහෝ විට සුදුසුය.

ඔබ තෝරන ඕනෑම ආකෘතියක් සමඟ, ඒකකය නැවත ආරම්භ කර නැවත ඇරඹීමෙන් පසු පරීක්ෂණ නැවත කරන්න, මන්ද අන්තර්ක්‍රියාකාරී root ෂෙල් එකකින් ක්‍රියා කරන නමුත් ඇරඹුමේදී අසාර්ථක වන සේවාවක් සාමාන්‍යයෙන් හැකියාව, උපාංගය හෝ ගොනු අවසරයේ වෙනසක් වේ. ඒකක සැකසුම් ක්‍රියාවලියේ හැකියා ප්‍රතිදානය අසල සටහන් කරන්න, එවිට ඊළඟ සමාලෝචකයාට පැකේජ යාවත්කාලීනයක් හෝ drop-in එකක් සීමාව ගෙන ගියේදැයි දැකිය හැක.

අදාළ ලිපි