ایا chroot پرېږدئ که iproute2 زندان ته کاپي کړئ؟
نیمګړی زندان د بوټ په وخت نه، بلکې د پیل وروسته ناکامېږي. د سختوالي نرمولو او د بائنري فایلونو او کتابتونونو د نوي ریښې ته کاپي کولو ترمنځ انتخاب وکړئ.
خدمت پیلېږي، کلاینټ نښلول کېږي، او د سرور په اړخ کې هیڅکله لار نه ښکاره کېږي. یا ډیمون د پیل کولو انکار کوي او هغه کمانډ نوموي چې نشو کولای ترسره یې کړي. دواړه پایلې هغه درې کرښې تعقیبوي چې معمولاً له یوې سختوالي لارښودې څخه یوځای کاپي کېږي: بې امتیازه حساب ته تلل، له ګروپ څخه تېرېدل او د فایل سیسټم ریښه بدلول. له درېیو یوازې یوه فایلونه پټوي، او یوازې یوه له هغو د لارښوونې جدول د بدلولو امتیاز لرې کوي۔ د هغو جلا کول هغه لاره ده چې پوه شئ کومه کرښه واقعاً غواړئ۔
زندان څه لرې کوي چې ډیمون لا ورته اړ دی
د ریښې بدلون د پیل وروسته پېښېږي، نو ډیمون هر هغه څه ساتي چې مخکې یې پرانیستي وو او هر هغه څه له لاسه ورکوي چې وروسته به یې پرانیستلی وای. هر مرستندوی چې نښلون د دې نقطې وروسته چلوي باید د نوي ریښې دننه شتون ولري، د هغو شریکو کتابتونونو سره چې باروي یې. له کنفیګریشن فایل او سند څخه جوړ زندان دواړه نه لري.
بې امتیازه حساب ته تلل جلا محدودیت دی. هغه پروسه چې له root څخه تېره شوې کېدای شي ونه شي کولای لارې بدلې کړي یا انټرفیس پورته راولي، حتی کله چې بائنري هماغه ځای وي، نو دواړه نیمګړتیاوې باید جلا تشخیص شي.
درې شرطونه پرېکړه کوي چې کوم سمون ته اړتیا لرئ
لومړی شرط دا دی چې ستاسو جوړښت لارې څنګه نصبوي. نوي OpenVPN نسخې انټرفیس او د لارښوونې جدول د پروسې دننه تنظیموي، پداسې حال کې چې زاړه پاکټونه او ځانګړي تنظیمات په بهرنیو وسایلو یا up او down سکریپټونو تکیه کوي. که لاګ کمانډ ونوموي، بهرنی وسیله ښکېله ده او زندان یې پټوي. که لاګ پرځای د اجازې تېروتنه وښیې، ستونزه حساب دی.
دوهم ساتنه ده. د کاپي شویو بائنري فایلونو سره زندان باید هرکله تازه شي چې هغه پاکټ چې دوی برابروي لوړ شي، که نه لومړی لوړوالی شاته مات تونل پرېږدي. دریم دا دی چې ایا ځانګړی کنټرول واقعاً chroot ته اړتیا لري؛ که غوښتنه په حقیقت کې د امتیازاتو جلا کولو په اړه وي، حساب بدلول یوازې کېدای شي بس وي.
| Signal in the log | Other side of the boundary | Repair direction |
|---|---|---|
| Command not found after startup | Binary and its libraries absent inside the new root | Populate the jail, or drop the chroot line |
| Operation not permitted | Account lost the privilege to edit routes | Keep the account privileged, or pre-create routes elsewhere |
| No such device | Jail lacks the tun device node | Create the node inside, or open it before the root change |
کاري زندان باید څه ولري
هغه زندان چې کمانډونه چلوي بائنري ته اړتیا لري، هر هغه کتابتون چې ورسره نښلول کېږي، او هر هغه وسیله نوډ چې ډیمون ناوخته پرانیزي. برخې کاپي کړئ او پرته له VPN یې وآزموئ:
ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up
لومړی کمانډ تړاوونه لیست کوي، او هماغه دی چې خلک یې پرېږدي. کاپي شوې بائنري چې کتابتون ونه مومي د ورک بائنري څخه په بل پیغام ناکامېږي، او دواړه د کلاینټ له اړخه د OpenVPN نیمګړتیا ښکاري. په زندان کې کمانډ په لاس چلول نیمګړتیا بیا تولیدوي پرته له دې چې خدمت بیا پیل کړي.
کنفیګریشن، سندونه او هر CRL هم زندان ته کاپي کړئ، ځکه هغه فایل چې ډیمون تمه لري د پیل وروسته یې بیا ولولي د ریښې له بدلون وروسته به ونه موندل شي. ولیکئ چې څه کاپي کړل، ځکه د شبکې پاکټ راتلونکی لوړوالی اصلي نسخې بدلوي او زندان په زاړه کاپي پرېږدي.
پرځای یې سختوالی کم کړئ
که زندان یوازې ځکه شته چې یوې لارښودې همدا ویلي وو، هغه یوه کرښه لرې کول او د حساب محدودیتونه ساتل د دفاع وړ پایله ده. ډیمون خپل د فایل سیسټم لید ساتي او له ستونزې خلاصېږي، او د امتیازاتو کموالی لا هم root له اوږدمهاله پروسې لرې کوي.
ولیکئ چې څه پاتې کېږي، او ولې. هغه کنفیګریشن چې په خاموشۍ کې پرته له یادښت کنټرول له لاسه ورکړ، سختوالی همداسې اړوي، او راتلونکی پلټنه به وپوښتي چې کرښه ولې ورکه شوه.
له انتخاب مخکې درې کرښې ووېشئ
کنفیګریشن کاپي کړئ، درې واړه لارښوونې غیر فعالې کړئ او تایید کړئ چې کلاینټ نښلول کېږي او تمه شوې لارې ښکاره کېږي. بیا یوازې د حساب کرښې بیا فعالې کړئ، او بیا chroot یوازې. هغه ګام چې تونل پکې ماتېږي حد ښیې، او تاسو له هغه زندان بیا جوړولو څخه ډډه کوئ چې هیڅکله لامل نه و.
کله چې بیا لارښوونه وکړي، د ډېرې تفصیل سره یوه کلاینټ ناسته چل کړئ او هغه کرښه ولولئ چې کمانډ یا ناکامه اجازه نوموي. هغه کرښه له هغه مهال څخه چې کلاینټ په پای کې راپور ورکوي ډېره ارزښتناکه ده.