ProtectHome සහ TOTP බීජය: VPN පිවිසුම ඇයි අසාර්ථක වන්නේ
නිවැරදි කේතයකින් බීජය විවෘත කළ නොහැකි PAM මොඩියුලයකට උදව් වන්නේ නැත. drop-in එකක් සහ ලිවිය හැකි තත්ත්ව මාර්ගයක් අතර තෝරාගෙන, පසුව ඒකකය පරීක්ෂා කරන්න.
සත්යාපන යෙදුම නව අංක හයේ කේතයක් පෙන්වයි, VPN එය ප්රතික්ෂේප කරයි, එම කේතයම ඔබේම ෂෙලයෙන් පරීක්ෂා කරන විට හොඳින් සත්යාපනය වේ. එම පරතරය මුළු කතාවයි. ලියාපදිංචි රහස විවෘත කළ නොහැකි PAM මොඩියුලය වැරදි කේතයකට සමාන පෙනෙන අසාර්ථකත්වයක් ලබා දෙයි, ගෘහ නාමාවලි සඟවන සේවා පරිසරය ඊට පොදු හේතුවකි. කිසියම් අවසරයක් ලිහිල් කිරීමට පෙර ඔබ තත්ත්ව තුනෙන් කුමක්දැයි තීරණය කරන්න.
මෙම අසාර්ථකතා තුනෙන් කුමක්ද?
පළමුවැන්න මොඩියුලයට කිසිසේත් කියවිය නොහැකි රහසකි. දෙවැන්න කියවිය හැකි නමුත් යාවත්කාලීන කළ නොහැකි රහසකි. තුන්වැන්න සැබවින්ම වැරදි කේතයකි, සාමාන්යයෙන් ඔරලෝසු ප්රවාහය හෝ නැවත භාවිත කළ අගයක් නිසා.
එක් අසාර්ථක උත්සාහයක් සඳහා සේවා සටහන් පොත සහ පද්ධති සත්යාපන ලොගය කියවා ඒවා වෙන් කරන්න, පසුව ප්ලගිනය කුමන PAM සේවාව පූරණය කරයිද සහ එම සේවාව කුමන මොඩියුල පේළිය භාවිත කරයිද තහවුරු කරන්න. සාමාන්ය සත්යාපන අසාර්ථක පණිවිඩයක් ඒවා වෙන් නොකරයි, සාර්ථක අතින් පරීක්ෂාවක්ද නොකරයි, මන්ද ඔබේ ෂෙලය සේවාවේ පරිසරය නොවේ.
සේවාව පමණක් අසාර්ථක වන විට ඒකකයේ ගොනු පද්ධති දර්ශනය සාමාන්ය වැරදිකරුය.
systemctl show -p ProtectHome -p ProtectSystem -p ReadWritePaths [email protected]
ls -l /var/lib/vpn-otp/*/.google_authenticator 2>/dev/null | head -n 20විකල්පය A: රහස ගෘහයෙන් පිටතට ගන්න
සේවාව /home සඟවන අතර ඔබ එම ආරක්ෂාව තබා ගැනීමට කැමති නම්, රහස එයට දැකිය හැකි ස්ථානයක ගබඩා කරන්න. මොඩියුලය secret= මාර්ගයක් සහ ගොනු ක්රියා සිදු කරන user= ගිණුමක් පිළිගනී, එමගින් මධ්ය ගබඩාවකට බොහෝ අනන්යතා සේවය කළ හැක.
මෙය පිළිවෙලට ඇති විකල්පයයි, වැඩිම සැලකිල්ල අවශ්ය වන්නේ මෙයටයි, මන්ද හවුල් ගබඩාවක් එක් නාමාවලියක් සෑම ගිණුමක ආරක්ෂක සීමාව බවට පත් කරයි.
auth required pam_google_authenticator.so secret=/var/lib/vpn-otp/${USER}/.google_authenticator user=vpn-otpවිශ්වාස කිරීමට පෙර කරුණු තුනක් පරීක්ෂා කරන්න: ගිණුම පවතී, මොඩියුලයේ කාර්ය ක්රියාවලියට එයට මාරු විය හැක, සහ ගොනු සීමිත මාදිලි සහිතව එයට අයත් වේ. user= සමඟ ~ හෝ ගෘහ විචල්ය මාර්ගයක් භාවිත නොකරන්න, සහ මාර්ගයක් ක්රියා කිරීමට මොඩියුලයේ හිමිකාරිත්ව පරීක්ෂා නික්රිය නොකරන්න. මුරපද අදියර සහ ඉතිරි තට්ටුව නොවෙනස්ව තබන්න.
විකල්පය B: ගොනුව තබා මාර්ගයක් විවෘත කරන්න
රහස පරිශීලකයාගේ ගෘහයේම තිබිය යුතු නම්, සත්කාරකයේ සෑම ගෘහයක්ම හෙළි නොකර එම එක් නාමාවලිය ඇතුළත් දර්ශනයක් ඒකකයට අවශ්යය. drop-in එකකට සෑන්ඩ්බොක්ස් කළ ගෘහයක් යටතේ පටු සීමා සහිත bind mount එකක් එකතු කළ හැක.
මෙය පරිශීලකයා අනුව හිමිකාරිත්වය ආකෘතියක් ලෙස තබා ගනී, සෑන්ඩ්බොක්ස් වෙනස් වන සෑම විටම සමාලෝචනය කළ යුතු ඒකක වෙනසක වියදමින්.
සීමා දෙකක් පහසුවෙන් අතපසු වේ. සෑන්ඩ්බොක්ස් සඟවන නාමාවලියක් යටතේ එකතු කළ කියවීමට පමණක් මාර්ගයක් එය හෙළි නොකරයි, මන්ද මාපිය නාමාවලිය එහි නොමැත. තවද මොඩියුලයට තත්ත්වය යාවත්කාලීන කිරීමට අවශ්ය නම් mount එක ලිවිය හැකි විය යුතුය, එය ඊළඟ විකල්පය ක්රීඩාවට ගෙන එයි. drop-in එක /usr/lib යටතේ ඇති පැකේජ කළ ඒකකය සංස්කරණය කිරීම වෙනුවට වෙනම ගොනුවක් ලෙස ලියන්න, පැකේජ උත්ශ්රේණි කිරීමක් එය නිශ්ශබ්දව අවලංගු නොකරන පරිදි.
විකල්පය C: සෑන්ඩ්බොක්ස් තබා තත්ත්ව ලේඛන සකසන්න
රහස කියවීම සත්යාපනයේ අඩක් පමණි. මොඩියුලයට කාල විචලන තොරතුරු, නැවත ධාවන ආරක්ෂාව හෝ ගණකයක් නැවත ලිවිය හැක, කියවීමේ පරීක්ෂාව සමත් වූ ගොනුවක් ලිවීමේදී තවමත් අසාර්ථක විය හැක.
එම අසාර්ථකත්වය මෙම උත්සාහයේදී නොව ඊළඟ උත්සාහයේදී නරක කේතයක් ලෙස පෙනේ, එබැවින් එය ඔරලෝසු ප්රවාහය සමඟ වරදවා වටහා ගැනේ.
මුළු ගෘහයම ලිවිය හැකි කිරීම වෙනුවට එයට තමන්ගේම ලිවිය හැකි නාමාවලියක් දී රහසේ මාර්ගය එහි යොමු කරන්න. නාමාවලියේ හිමිකරු, ගොනු පද්ධතියේ නිදහස් ඉඩ සහ ඒකකය වෙනත් තැනක ලේඛන සීමා කරන්නේදැයි තහවුරු කරන්න. පසුව අඛණ්ඩ පිවිසුම් දෙකක් පරීක්ෂා කරන්න, මන්ද දෙවැන්න ලේඛන මාර්ගය ඔප්පු කරන අතර පළමුවැන්න කියවීම පමණක් ඔප්පු කරයි.
ඔබම ලෙස නොව සේවාව ලෙස සත්යාපනය කරන්න
වැදගත් සෑම පරීක්ෂාවක්ම ඒකකයේ සෑන්ඩ්බොක්ස් තුළ ඒකකයේ අනන්යතාව සමඟ ක්රියා කළ යුතුය.
root ලෙස සාර්ථක වන විධානයක් ගොනුව පවතින බව පමණක් කියයි. සැබෑ සේවාව හරහා පිවිසීම මොඩියුලයට රහස කියවීමට, භාවිත කිරීමට සහ අවශ්ය දේ නැවත ලිවීමට හැකිදැයි කියයි.
අවසාන වශයෙන්, අවශ්යතාව නොවෙනස්ව තබන්න. ශුන්ය මුරපද විකල්පයක් එකතු කිරීම, කියවීමට පමණක් අසාර්ථකතා පිළිගැනීම හෝ සෑන්ඩ්බොක්ස් ඉවත් කිරීම — මේ සියල්ල ප්රතිපත්තිය වෙනස් කර රෝග ලක්ෂණය ඉවත් කරයි. කේතයක් ඉදිරිපත් කිරීමට අවශ්ය පරිශීලකයා රහසට ළඟා විය නොහැකි විටද ප්රතික්ෂේප කළ යුතුය.