සේවාව අසාර්ථක වේ, ලොගයන් spawn සහ නාමාවලියක් සඳහන් කරයි, පළමු ප්‍රවණතාව VPN වින්‍යාසය පරීක්ෂා කිරීමයි. එම ගොනුවෙන් තවම කිසිවක් කියවා නැත. systemd ක්‍රියාවලිය සූදානම් කරන අතරතුර, ධාවන ගොනුව ක්‍රියාත්මක වීමට පෙරම අසාර්ථක විය, එබැවින් කිසිදු parser එකක්, සහතිකයක් හෝ දුරස්ථ සත්කාරකයක් උපදෙස් නොගන්නා ලදී. තත්ත්ව කේතය OpenVPN ගැන නොව systemd ගැන ප්‍රකාශයක් ලෙස කියවීම මෙය කෙටි පරීක්ෂණයක් බවට පත් කරයි.

යෙදුමට පෙර තත්ත්ව කේතය කියවන්න

සේවා නාමයට පසුව එන සංඛ්‍යා කේතය අසාර්ථක වූ අදියර නම් කරයි. නාමාවලි අසාර්ථකත්වය CHDIR තත්ත්වයක් ලෙස වාර්තා වේ, ධාවනය කළ නොහැකි ධාවන ගොනුව සම්පූර්ණයෙන්ම වෙනත් කේතයකි. දෙකම සාරාංශ පේළියක එකම ලෙස පෙනුණත් ඒවායේ හේතු තුළ කිසිවක් පොදු නොවේ.

මෙම වෙනස වැදගත් වන්නේ නිවැරදි කිරීම් වෙනත් ගොනුවල ඇති බැවිනි. CHDIR අසාර්ථකත්වය මාර්ගයක් සහ සේවාව එය දකින ආකාරය පිළිබඳය. Exec අසාර්ථකත්වය ද්විමය ගොනුව, එහි අර්ථ නිරූපකය හෝ සම්බන්ධ නොවන mount පිළිබඳය. VPN හි දුරස්ථ ලක්ෂ්‍යය, සයිෆර් ලැයිස්තුව හෝ සහතික මාර්ගය වෙනස් කිරීම කිසිවක් නිවැරදි නොකරයි.

අසාර්ථකත්වය ආරම්භයේ සිදුවන්නේ ද, සාර්ථක ක්‍රියාකාරිත්වයකින් පසුව නොවේ ද යන්න තහවුරු කරන්න. සේවාව ඊයේ ක්‍රියාත්මක වී අද එම අදියරේදීම අසාර්ථක වේ නම්, නාමාවලිය, එහි අවසර හෝ unit තුළම යමක් වෙනස් වී ඇත, එම වෙනස විමසිය යුතු සාක්ෂියයි.

කොහේ සිටිය යුතු ද යන්න unit ට අසන්න

ඔබ ස්ථාපනය කළ යැයි සිතන ගොනුව නොව, ඵලදායී unit කියවන්න, මන්ද drop-in ගොනු ප්‍රධාන unit සංස්කරණය නොකර වැඩ කරන නාමාවලිය ඉක්මවා යා හැකිය. show හි ප්‍රතිදානය ප්‍රශ්නයට සෘජුව පිළිතුරු දෙයි:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

upstream සේවාදායක අච්චුව සඳහා වැඩ කරන නාමාවලිය සේවාදායක වින්‍යාස නාමාවලිය වන අතර උදාහරණයේ නම එහි ඇති පැතිකඩ තෝරයි. එබැවින් branch නමැති උදාහරණය එම නාමාවලියේම තම ගොනුව අපේක්ෂා කරයි, වෙනත් තැනක තැබූ පැතිකඩක් වැඩ කරන නාමාවලි කොන්දේසිය කිසිසේත් ඉටු නොකරයි.

unit ඉල්ලන දේ සහ පවතින දේ සසඳන්න. කලින් තිබූ මාර්ගය, දැන් වෙනත් තැනකට යොමු වන සංකේතාත්මක සබැඳිය, හෝ තවදුරටත් නාමාවලියකට නොගැළපෙන උදාහරණ නාමය—මේ සියල්ල මෙම අසාර්ථකත්වය ඇති කරන සාමාන්‍ය වෙනස්කම් ය.

සේවාව දකින ආකාරයට මාර්ගය පරීක්ෂා කරන්න

ඔබේ shell සහ සේවාව ගොනු පද්ධතියේ එකම දර්ශනය බෙදා නොගනී. වින්‍යාස කළ මූල නාමාවලියක් හෝ root image එකක් unit තුළ නිරපේක්ෂ මාර්ගයේ අර්ථය වෙනස් කරයි, සත්කාරකයේ පැහැදිලිවම ඇති මාර්ගයක් එම නාම අවකාශයේ නොතිබිය හැකිය. අතින් කරන පරීක්ෂණයක් විශ්වාස කිරීමට පෙර unit හි සැකසුම් කියවන්න.

අවසර මගින් ගැටලුව උග්‍ර කරයි. සේවාව නිශ්චිත පරිශීලකයෙකු ලෙස ක්‍රියාත්මක වන අතර, එම පරිශීලකයාට ඉලක්කයට ළඟා වීමට සෑම මාතෘ නාමාවලියක් හරහාම ගමන් කළ හැකි විය යුතුය, ඉලක්කය පමණක් කියවීම ප්‍රමාණවත් නොවේ. root ට කියවිය හැකි නමුත් සේවා පරිශීලකයාට ගමන් කළ නොහැකි නාමාවලියක් නැති වූ මාර්ගයක් ලෙස පෙනෙන අසාර්ථකත්වයක් ඇති කරයි.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

දෘඩකරණ සැකසුම් ද මෙම රූපයේ කොටසකි. නිවාස නාමාවලි සඟවන හෝ ගොනු පද්ධතියේ කොටසක් කියවීමට පමණක් බවට පත් කරන unit එක තමාට වින්‍යාස කළ දේම කරයි, වැඩ කරන නාමාවලිය sandbox තවම එය නිරාවරණය කරන තැනක තිබිය යුතුය.

හිමිකරු නිවැරදි කරන්න, පසුව තවත් දෝෂයක් අපේක්ෂා කරන්න

එම වින්‍යාසය හිමි පුද්ගලයා හරහා පිරිසැලසුම හෝ unit නිවැරදි කරන්න. පැතිකඩක් අපේක්ෂිත නාමාවලියට ගෙන යාම පිරිසැලසුම වැරදි විට නිවැරදි කිරීමකි, නමුත් ඇතුළු විය නොහැකි නාමාවලියක් එය පැහැදිලි නොකරයි, එබැවින් එය සාමාන්‍ය පිළිතුර ලෙස නොසලකන්න.

වින්‍යාස ගසෙහි අවසර පුළුල් කිරීමේ හෝ sandbox ඉවත් කිරීමේ කෙටිමඟට එරෙහි වන්න. දෙකම රෝග ලක්ෂණය ඉවත් කරන අතරම එහි අරමුණින් තැබූ ආරක්ෂණ ද ඉවත් කරයි, ඊළඟ අසාර්ථකත්වය අර්ථ දැක්වීම අපහසු වනු ඇත.

උදාහරණය නැවත ආරම්භ කර සාර්ථකත්වය උපකල්පනය නොකර ඊළඟ සිදුවීම කියවන්න. ඊළඟ අපේක්ෂිත දෝෂය වනුයේ OpenVPN තම වින්‍යාස ගොනුව විවෘත කළ නොහැකි වීමයි, එය ප්‍රගතියකි: වැඩ කරන නාමාවලියට ඇතුළු වී ඇති අතර parser දැන් ක්‍රියාත්මක වේ. එතැන් සිට unit හි සැබෑ ගොනු සිතියම අනුගමනය කරන්න, ජාල ගැටලු විසඳීමට ආපසු නොයන්න.

systemd හි ක්‍රියාත්මක කිරීමේ යොමුව වැඩ කරන නාමාවලිය මූල නාමාවලි සහ sandbox සමඟ අර්ථ දක්වන ආකාරය නිර්වචනය කරයි. මතක තබා ගත යුතු රටාව සරලයි: සෑම තත්ත්ව කේතයක්ම වෙනත් අදියරක් නම් කරයි, යෙදුමේම දෝෂ පමණක් යෙදුම විස්තර කරයි.

අදාළ ලිපි