LXD කන්ටේනරයට /dev/net/tun විවෘත කළ නොහැකිද? unix-char පිවිසුම පරීක්ෂා කරන්න
VPN සේවාලාභියාට එය භාවිත කළ හැකි වීමට පෙර LXD ධාරකයේ TUN උපාංගය කන්ටේනරයට ලබා දිය යුතුය. unix-char කුමක් එක් කරයිද, කුමක් නොකරයිද සහ එය පරීක්ෂා කරන ආකාරය බලන්න.
LXD උපාංග නෝඩයක් එක් කිරීමෙන් ධාරකයේ අක්ෂර උපාංගය කන්ටේනරයට ලබා දෙයි, අමුත්තාට එය සෑදීමට උගන්වමින් නොවේ. කන්ටේනරයේ /dev/net/tun නොමැති නම්, උපාංගය ධාරකයේ තිබිය හැකි අතර අමුත්තාට එය විවෘත කළ නොහැකි විය හැක. unix-char පිවිසුම එම මාර්ගයේ පරිපාලක පැත්තේ අඩක් වන අතර එය විශේෂාධිකාරී කන්ටේනරයකට වඩා උද්දේශපූර්වකව පටුය. එනිසා ධාරක නෝඩය සහ කන්ටේනර නෝඩය වෙන වෙනම පරීක්ෂාවන්ට සුදුසුය.
ක්රියාවලිය ඇස ඉදිරියේ තබා ගැනීමට තරම් කෙටිය: LXD ධාරක මාර්ගයක් විසඳයි, අවස්ථාව තුළ ගැළපෙන නෝඩයක් සාදයි සහ උපාංගය කන්ටේනරයේ උපාංග cgroup වෙත එක් කරයි. ඉන්පසු අමුත්තාගේ ක්රියාවලියට නෝඩය කිසිම දෙයකට භාවිත කිරීමට තමන්ගේම අවසරය සහ හැකියාව අවශ්යය.
unix-char පිවිසුම සැබවින්ම වෙනස් කරන්නේ කුමක්ද
unix-char උපාංගයක් LXD වෙත කියන්නේ ධාරකයේ අක්ෂර උපාංගයක් කන්ටේනරය තුළ තෝරාගත් මාර්ගයක ප්රදර්ශනය කරන ලෙසයි. පිවිසුමේ වැදගත් කොටස් තුනක් ඇත: පරිපාලක භාවිත කරන උපාංග ලේබලය, ධාරකයේ source මාර්ගය සහ අමුත්තා දකින path. අවසාන දෙක පමණක් උපාංගයම විස්තර කරයි. ඒවායින් එකක යතුරු ලියන දෝෂයක් ඇත්නම් සේවාලාභියා කිසිදා නොවිවෘත කරන ස්ථානයක නෝඩයක් සාදයි.
ධාරකයේ උපාංගය සාමාන්යයෙන් /dev/net/tun වේ. කන්ටේනරය තුළ ඔබට එම මාර්ගයම තබා ගත හැකිය හෝ වෙනත් එකක් තෝරා ගත හැකිය, නමුත් මාර්ගය VPN සේවාලාභියා බලාපොරොත්තු වන දෙයට ගැළපිය යුතුය. /dev/net/tun තබා ගැනීම දෙවන වින්යාස ගැටලුව වළක්වයි, මන්ද බොහෝ සේවාලාභීන් එම මාර්ගය නොඅසා විවෘත කරයි.
අවස්ථාව ආරම්භ වන විට හෝ උපාංගය උණුසුම් ලෙස සම්බන්ධ වන විට පරිපාලක පිවිසුම යොදයි. එය අමුත්තාට ධාවකයක් පිටපත් නොකරයි සහ උමං අතුරුමුහුණතක් නොසාදයි. එය නෝඩය දෘශ්යමාන කර කන්ටේනරයේ උපාංග පාලන කණ්ඩායම හරහා ප්රවේශයට අවසර දෙයි.
උපාංගය අමුත්තා තුළ නොව අවස්ථාව මත ප්රකාශ කරන්න
LXD පරිපාලන සන්දර්භයෙන් පිවිසුම එක් කරන්න, අවස්ථාව සහ පසුව හඳුනාගත හැකි ලේබලය නම් කරමින්. vpnbox නමැති කන්ටේනරය සඳහා විධානය මෙයයි:
lxc config device add vpnbox tun unix-char source=/dev/net/tun path=/dev/net/tun
lxc config device show vpnbox
ලේබලය tun අවස්ථාවේ වින්යාසයට පමණක් අදාළය. එය අතුරුමුහුණත් නාමයක් නොවන අතර අමුත්තා තුළ කිසිවකට ගැළපිය යුතු නොවේ. පැතිකඩක් දැනටමත් එම උපාංගයම සපයන්නේ නම්, දෙවන පිවිසුමක් එක් කිරීම අතිරික්තයක් නොව ගැටුමක් සාදයි, එනිසා පළමුව ඵලදායී වින්යාසය බලන්න.
කන්ටේනරය තුළ ගොනු සංස්කරණය කිරීම වැරදි ස්තරයයි. ආරම්භක ස්ක්රිප්තයක mknod විශේෂාධිකාරී කන්ටේනරයක ක්රියා කරන බව පෙනිය හැකි අතර පසුව නැවත සෑදීමේදී අතුරුදහන් විය හැක හෝ අඩු විශේෂාධිකාරයක් ඇති එකක අසාර්ථක විය හැක. අවස්ථාවේ උපාංග කට්ටලය පරිපාලකට අයත්ය; නෝඩයද ඔහුට අයත් වීමට ඉඩ දෙන්න.
හිමිකාරිත්වය සහ මාදිලිය අමුත්තාගේ ක්රියාවලියට ගැළපන්න
unix-char පිවිසුමට කන්ටේනරය තුළ නෝඩය සඳහා uid, gid සහ mode සැකසිය හැක. සෑම පරිශීලකයාටම උපාංගය විවෘත කිරීම හෝ කන්ටේනරය විශේෂාධිකාරී මාදිලියට මාරු කිරීම වෙනුවට, VPN සේවාලාභියා ධාවනය කරන ගිණුමට ගැළපීමට ඒවා භාවිත කරන්න.
දෘශ්යතාව අවසරයට සමාන නොවේ. root ට අයත් සහ මාදිලිය 600 වන නෝඩයක් විශේෂාධිකාරයක් නොමැති පරිශීලකයා ලෙස ධාවනය වන සේවාවට දෘශ්යමාන වන අතර එයින් එය විවෘත කළ නොහැක. පළමුව අමුත්තාගේ ගිණුම පරීක්ෂා කරන්න, පසුව හිමිකාරිත්වය එම ගිණුමට සකසන්න, සහ මාදිලිය සේවාලාභියාට අවශ්ය පමණට වඩා පළල් නොකර තබන්න.
ක්රියාවලියට උමං අතුරුමුහුණතක් වින්යාස කිරීමේ හැකියාව ද අවශ්යය, සාමාන්යයෙන් කන්ටේනරයේ ජාල නාම අවකාශයේ CAP_NET_ADMIN. උපාංගය ලබා දීම එම හැකියාව ලබා නොදේ, හැකියාව ලබා දීම උපාංගය සපයන්නේද නැත; මේවා ස්වාධීන අවශ්යතා වේ.
පිවිසුම කුමක් නොදේදැයි දැන ගන්න
දෘශ්යමාන නෝඩයක් යනු ක්රියා කරන VPN එකක් නොවේ. සේවාලාභී පැකේජය තවම ස්ථාපනය කළ යුතුය, පැතිකඩ තවම වලංගු විය යුතුය, සහ සේවාව තවම ආරම්භ විය යුතුය. සත්යාපනය, මාර්ග සහ DNS සේවාලාභියාගේ කාර්යයම වන අතර එහි ඇති අසාර්ථකත්වය උපාංග පිවිසුම වැරදි බවට සාක්ෂියක් නොවේ.
systemd තවත් සීමාවක් එක් කළ හැක. DeviceAllow හෝ දැඩි කළ උපාංග ප්රතිපත්තියක් ඇති ඒකකයකට කන්ටේනර පරිපාලක සපයා ඇති නෝඩයට ප්රවේශය ප්රතික්ෂේප කළ හැක. නෝඩය තිබියදී සේවාව අවසර දෝෂයක් වාර්තා කරන විට ඒකකයේ උපාංග ප්රතිපත්තිය පරීක්ෂා කරන්න, සහ කන්ටේනරය පළල් කිරීම වෙනුවට එම ප්රතිපත්තියම වෙනස් කරන්න.
උණුසුම් සම්බන්ධතාව අවශ්ය නොවන සහ පැහැදිලි ය. required=false සහිත පිවිසුමකට මූලාශ්ර මාර්ගයක් අවශ්ය වන අතර ධාරක උපාංගය වෙනස් වන විට එය දිස්විය හැක හෝ අතුරුදහන් විය හැක. එවැනි ජීවන චක්රය එන-යන උපකරණවලට ගැළපේ; VPN එකට ආරම්භයේ අවශ්ය TUN උපාංගය සඳහා, අවශ්ය නොවන පිවිසුමක් සේවාව එහි පූර්ව කොන්දේසිය පවතින පෙරම ආරම්භ වීමට ඉඩ දිය හැක.
දෘශ්යතාව, විවෘත කිරීම සහ අතුරුමුහුණත එම අනුපිළිවෙලින් පරීක්ෂා කරන්න
පළමුව අදහස් කළ කන්ටේනරය තුළ නෝඩය තහවුරු කරන්න. මාර්ගය, ප්රධාන සහ අනු අංක සහ හිමිකාරිත්වය ධාරක උපාංගයට සහ ඔබ එක් කළ පිවිසුමට ගැළපිය යුතුය. නෝඩය නොමැති නම් පරිපාලක පිවිසුම යොදා නැත, හෝ වෙනත් අවස්ථාවක යොදා ඇත.
lxc exec vpnbox -- ls -l /dev/net/tun
lxc exec vpnbox -- sh -c 'test -c /dev/net/tun && echo char-device-ok'
පසුව සේවා ගිණුමට එය විවෘත කළ හැකි බව තහවුරු කරන්න. එම ගිණුම ලෙස කරන කෙටි පරීක්ෂණයක් හිමිකාරිත්ව ගැටලුව සේවා ගැටලුවෙන් වෙන් කරයි. අවසානයේ සේවාලාභියා ආරම්භ කර උමං අතුරුමුහුණතක් දිස්වන බව තහවුරු කරන්න; පළමු දෙක සමත් විය හැකි නමුත් සේවාලාභී පැතිකඩ හෝ හැකියාව තවම වැරදි විය හැකි බැවින් සම්පූර්ණ මාර්ගය ඔප්පු කරන්නේ එම තෙවන පියවර පමණි.
වෙනස්කම අනුමත වන විට අවස්ථාව, උපාංග ලේබලය, ධාරක මූලාශ්රය, අමුත්තා මාර්ගය සහ හිමිකාරී ගිණුම සටහන් කරන්න. එම අගයන් පහම පසුව සිදුවන නැවත සෑදීම, සංක්රමණය හෝ පැතිකඩ වෙනස්කම ආරක්ෂා කළ යුතු දේ වන අතර, සන්දර්භයක් නොමැති අවසර දෝෂයකට වඩා ඒවා සංසන්දනය කිරීම වඩාත් පහසුය.