ستاسو VPN بهیر ته کوم Linux وړتیاوې ته اړتیا لري؟
د انټرفیس تنظیم، لارې، د وسیلې لاسرسی او عادي سوکټونه جلا جلا واکونه دي۔ د CAP_NET_ADMIN له ورکولو دمخه هغه عملیه ونوموئ چې ناکامه شوه۔
د VPN ډیمون ته واکمنې شبکې عملیې ته اړتیا وي، که څه هم عادي اپلیکیشنونه پرته له کوم واک څخه بهر وتونکي سوکټونه خلاصوي۔ په همدې تشه کې د وړتیا ډېرې تېروتنې پیلېږي: یو څوک د اجازې تېروتنه ویني، ټول سیټ ورکوي، او خدمت د هغو لاملونو له مخې کار کوي چې وروسته یې هیڅوک نه شي تشریح کولی۔ لاندې بهیر د ناکامه شوې عملیې څخه پیلېږي، هغه له یوې واکمنۍ سره نښلوي، او بیا هغه شالید ګوري چې بهیر په رښتیا کې پکې روان دی۔ د نامحدود root په توګه چلېدل د ځینو ځای پر ځای کولو لپاره سم ځواب دی، خو باید پرېکړه وي نه اصلي ارزښت۔
د ناکامه شوې عملیې څخه پیل وکړئ
د لارښود لوستلو دمخه تېروتنه ولولئ۔ د انټرفیس په بدلون کې «عملیه اجازه نه لري»، د وسیلې نوډ خلاصولو څخه انکار او په ټیټ پورټ کې د bind ناکامي — دا درې بېلابېلې ستونزې دي، په درې بېلابېلو اجازو سره۔ که بهیر پیل شي او یوازې په لومړي لار بدلون کې ناکام شي، دا هم ښیي چې د انټرفیس جوړول لا دمخه بریالي شوي، چې ځواب ډېر تنګوي۔
تېروتنه د خدمت په بند حالت کې بیا تولید کړئ، بیا که تطبیق اجازه ورکړي، هغه د هماغه کارونکي لاندې په مخکیني پلان کې پیل کړئ۔ هغه تېروتنه چې تاسو یې وینئ د هغه لاګ کرښې څخه غوره ده چې باید اټکل یې وکړئ، او د وړتیا ستونزې او د SELinux یا AppArmor له انکار ترمنځ توپیر روښانه کوي۔
هره عملیه له یوې واکمنۍ سره ونښلوئ
جدول یو پیلنی نقشه ده، د تطبیق د اسنادو بدیل نه:
| Operation | Usual authority | Watch for |
|---|---|---|
| Create or configure tun/tap | CAP_NET_ADMIN in the relevant namespace | Creating the device and opening it are separate steps |
| Add routes, rules, firewall entries | CAP_NET_ADMIN | Same capability, different namespace than you think |
| Open /dev/net/tun | Device permissions, not a capability | Group membership or a udev rule may be enough |
| Raw sockets | CAP_NET_RAW | Needed by some user-space tunnel implementations |
| Bind a port below 1024 | CAP_NET_BIND_SERVICE | Irrelevant for most modern tunnel ports |
په دې جدول کې دوه کرښې هغه دي چې خلک یې سره ګډوي۔ /dev/net/tun خلاصول د فایل اجازې پوښتنه ده؛ له کرنل څخه د هغه څه تنظیم غوښتل چې تاسو یې خلاص کړي د وړتیا پوښتنه ده۔ د CAP_NET_ADMIN ورکول هغه وسیله نوډ نه جوړوي چې ستاسو د خدمت کارونکی یې نه شي لوستلی، او د نوډ جوړول تاسو ته د لارې واک نه درکوي۔ د دواړو له بدلولو دمخه دواړه وګورئ۔
په کرنل کې WireGuard او په کارونکي فضا کې د تونل پروګرامونه هم یو شان غوښتنې نه لري۔ د کرنل ماډل لار د netlink له لارې موجود انټرفیس تنظیموي، پداسې حال کې چې په کارونکي فضا کې تطبیق کېدای شي وسیلې ته هم اړتیا ولري او د ځینو لېږدونو لپاره خام سوکټونو ته هم۔
شالید ولولئ: خدمت، کانټینر یا شیل
په کوربه شبکه کې یوه وړتیا کېدای شي د عمداً جلا شوي سټیک په پرتله ډېر څه اغېزمن کړي۔ د کانټینر چلولو چاپېریال معمولاً د کم شوي حدونو سیټ سره پیلېږي؛ کوربه شبکه کې شریک کانټینر ته NET_ADMIN ورزیاتول د خپل شبکه نوم فضا او پرته له کوربه مونټونو لرونکي کانټینر ته د ورزیاتولو په پرتله ډېره لویه اجازه ده۔
د systemd واحدونو لپاره هغه څه ولولئ چې په رښتیا پلي کېږي نه هغه چې د واحد فایل یې وایي ښکاري: systemctl show -p CapabilityBoundingSet -p AmbientCapabilities اغېزمن ارزښتونه راپور کوي، کوم چې کېدای شي هغه drop-in تنظیم کړي وي چې تاسو هېر کړي۔ اغېزمن ارزښت وغواړئ، هېڅکله نه هغه چې په نظر کې و۔ Ambient وړتیاوې مهمې دي ځکه چې غیر root خدمت پرته له دوی د exec په اوږدو کې وړتیاوې له لاسه ورکوي۔
د بنډل یا عکس ملاتړ شوې ترتیبات د بنسټ په توګه واخلئ۔ د خام سوکټ اجازې یا واکمن حالت مه ورزیاتوئ یوازې ځکه چې بل لارښود دوی بل وسیلې لپاره لیست کړي؛ هغه استدلال هېڅ نه انتقالوي او تاسو ته هغه جلاوالی لګښت کوي چې تادیه کړی مو۔ که شک لرئ، هېڅ مه ورکوئ او د هغې دقیقې عملیې لپاره د تطبیق یادښتونه ولولئ چې ورته اړتیا لرئ۔
وګورئ چې واکونه له منځه تللو وروسته څه پېږي
ډېر ډیمونونه په واک سره پیلېږي، انټرفیس تنظیموي، بیا بېواکه کارونکي ته ځي او تونل ساتي۔ له هغې شېبې راهیسې بهیر نه شي کولی لار ورزیاته کړي، د فایر وال قاعده بیا ولیکي یا نوی واکمن وسیله خلاصه کړي، چې تر هغه وخته سمه ده چې بیا نښلول په دقیق ډول هماغه ته اړتیا ولري۔ وروسته د فایل لوستل او د هنګونو چلول ممکن د همدې لامل له مخې ناکام شي۔
ټول ژوند دوران وازموئ نه لومړۍ ثانیه: پیل، نوی کول یا بیا نښلول، او د ودرو پر مهال پاکول۔ د انټرفیس لومړی بریالی جوړښت دا نه ثابتوي چې هر وروستی واکمن عملیه به لا هم کار وکړي، او ناکامي معمولاً په تولید کې ساعتونه وروسته ښکاره کېږي۔
هغه تطبیقونه چې تونل د کارونکي بدلون په اوږدو کې خلاص ساتي، معمولاً دا د تونل او کیلیو د ساتلو اختیارونو سره یوځای کوي۔ د systemd په اړخ کې مساوي پوښتنه دا ده چې ایا د واحد وړتیا سیټ هغه کارونکي بدلون ته چې تاسو تنظیم کړی ژوندی پاتې کېږي۔
ورکړل شوې اجازه او د هغې لامل ثبت کړئ
دقیقه اجازه، هغه عملیه چې دا یې ممکنوي او هغه تېروتنه چې دا یې سمه کړې ولیکئ۔ د ځای پر ځای کولو یادښتونو کې یوه کرښه — «د واحد شبکه نوم فضا کې CAP_NET_ADMIN، د بیا نښلولو وروسته د لارو بدلونونو لپاره اړین» — د بل کس لپاره د اجازې بیا پراخولو مخه نیولو ته کافي ده۔
بیا د هرې لوړونې وروسته اغېزمن سیټ بیا ولولئ۔ پلورونکي ځانګړنې ورزیاتوي، عکسونه اصلي ارزښتونه بدلوي، او هغه وړتیا چې تېر کال بېړینه نه وه ممکن پرته له دې چې څوک یې وویني، بار وړونکې شي۔