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 لرونکې ننوتنې ته سرچینې لار اړینه ده او کله چې د کوربه وسیله بدله شي ښکاره یا ورکېدای شي. داسې د ژوند دوره د راتلو او تلو هارډویر سره ښه ځي؛ د TUN وسیلې لپاره چې VPN یې په بوټ کې غواړي، اختیاري ننوتنه کولای شي خدمت د هغه د مخکیني شرط له موجودیت مخکې پیل کړي.

ښکاره والی، خلاصول او انټرفېس په همدې ترتیب وګورئ

لومړی په نیت شوي کنټینر کې دننه نود تایید کړئ. لار، لوی او کوچنی شمېر او ملکیت باید د کوربه وسیلې او ستاسې زیاتې ننوتنې سره سمون ولري. نود نه شتون معنا دا ده چې مدیر ننوتنه نه ده پلي کړې، یا په بل انسټانس کې یې پلي کړې ده.

lxc exec vpnbox -- ls -l /dev/net/tun
lxc exec vpnbox -- sh -c 'test -c /dev/net/tun && echo char-device-ok'

بیا تایید کړئ چې د خدمت حساب یې خلاصولای شي. د هغه حساب په توګه لنډه ازموینه د ملکیت ستونزه د خدمت ستونزې څخه بېلوي. په پای کې کارن پیل کړئ او تایید کړئ چې تونل انټرفېس ښکاره کیږي؛ یوازې هغه درېیم ګام ټوله لار ثابتوي، ځکه لومړني دوه تېرېدای شي خو د کارن پروفایل یا وړتیا لا هم غلط وي.

کله چې بدلون تصویب شي، انسټانس، د وسیلې نښه، کوربه سرچینه، مېلمه لار او مالک حساب ولیکئ. هماغه پنځه ارزښتونه هغه څه دي چې وروستی بیا جوړول، لېږد یا پروفایل بدلون باید وساتي، او له شالید پرته د اجازې تېروتنې په پرتله یې پرتله کول ډېر اسانه دي.

اړوندې مقالې