OpenConnect csd-wrapper: د ننوتلو دمخه سکریپټ وګورئ
--csd-wrapper د کوډ د اجرا کولو پوله وګڼئ: سکریپټ وګورئ، یو ځانګړی csd کارن وټاکئ او تایید کړئ چې ګیټوی په رښتیا څه ویني۔
پروفایل ته د --csd-wrapper اضافه کول یو ځایي سکریپټ هغه ډیمون ته ورکوي چې د ننوتلو پر مهال یې چلوي، نو ستاسو مخې ته پریکړه د کوډ بیاکتنه ده، نه د غوراوي ټاکل۔ دا انتخاب د دې لپاره دی چې د ګیټوی د کوربه کتنې برخه بدله شي، او هغه سکریپټ ته لار اخلي چې تاسو یې برابروئ۔ لاندې هر څه فرض کوي چې د ځای پرځای کولو مالک دمخه ویلي چې کومه د حالت کتنه اړینه ده؛ که هغه برخه لا هم خلاصه ده، لومړی هغه حل کړئ۔ لارښود څلور ګامه لري: ناکام پړاو ومومئ، سکریپټ ولولئ، هغه هویت وټاکئ چې ترې چلیږي، او پایله ثابته کړئ۔
ګام 1: ناکام پړاو ومومئ
د کلینټ وروستی پیغام معمولا د کوکی په اړه وي، چې د زنځیر پای دی نه پیل۔ HTTPS ننوتل، د سرور تصدیق کتنه، د تصدیق تبادله او د حالت برخه ټول د هغه پیغام مخې ته دي۔
کارول شوې نسخه او د ننوتلو پته ولیکئ، بیا هڅه تکرار کړئ او تفصیلي وتنه په خپل ټرمینل کې وساتئ۔ لومړنی تېروتنه ولولئ چې بیا هڅه نه ده، نه د لیکنې وروستی کرښه۔ که لاګ د کومې ارزونې برخې له نومولو دمخه ودریږي، نو رپېنګ لا ستاسو ستونزه نه ده۔ په هغه ټکي کې یې اضافه کول یوازې هغه سطحه پراخوي چې وروسته به یې دفاع کوئ۔
openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/nullلیکنه په ځایي ډول وساتئ، ځکه کوکیز او د تصدیق ځوابونه د لاسرسي توکي دي۔ په چټ کې نښلول شوې نښه د اعتبارنامې لیکنه ده، حتی کله چې د ارزونې ګام بې ضرره ښکاري۔ د تېروتنې متن او په جریان کې هغه ټکی چې پکې څرګنده شوه شریک کړئ، هېڅکله بار نه۔
ګام 2: سکریپټ د پروفایل ته له ننوتلو دمخه ولولئ
رپېنګ یوازې هغومره باوري دی څومره هغه نسخه چې تاسو کتلي؛ نو هغه نسخه ټینګه کړئ او د هغې هش د اجازې یادښت ترڅنګ وساتئ۔ لاندې دوه کمانډونه تاسو ته د یوې کرښې له لوستلو دمخه ګوته نښه او ارزانه نحوي کتنه درکوي۔ دوی بل کس ته ثابته حواله هم درکوي، چې کله فایل د بنډل مدیریت څخه بهر وي مهمه ده۔ هیڅ کمانډ نه وایي چې سکریپټ څه کوي، نو دوی وچلوئ او لوستل دوام ورکړئ۔
sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.shټول فایل د څلورو پوښتنو سره ولولئ: ایا بهرنۍ HTTP غږونه کوي، ایا د اعتبارنامې فایلونه یا د چاپېریال متغیرونه لولي، ایا د لنډمهاله لارښود څخه بهر لیکي، او ایا کومه څانګه پرته له کوم اندازه کولو تېر حالت راپور ورکوي۔ هغه وروستی بڼه د لاګ کرښې سره نښلول شوې د تګلارې لار ورکول دي۔ کاپي شوي رپېنګونه معمولا هغه د باوري ښکارېدونکې کتنې شاته قاچاق کوي۔ که سکریپټ د وسیلې له کتلو دمخه پریکړه وکړي چې وسیله ښه ده، هلته ودریږئ۔
بسته شوي بارونه هم وګورئ، ځکه لوستل کېدونکی سرلیک د فایل د نورې برخې په اړه هیڅ نه ثابتوي۔ د فورمې له موضوع څخه د سکریپټ ډاونلوډ کول هغه باوري نه کوي، یوازې د دې لپاره چې نوم یې ریښتینې د کوربه کتنې برخې ته ورته دی۔ ولیکئ چې څوک یې نصب کړ، له کومه ځایه راغی او څنګه به تازه شي۔
grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.shګام 3: هغه هویت وټاکئ چې رپېنګ ترې چلیږي
--csd-user د CSD، TNCC یا HIP پروګرام د اجرا پر مهال امتیازات کموي۔ هغه حساب د ځایي اجرا غونډې برخه ده، نه هغه کارن نوم چې ګیټوی ته سپارل کیږي۔
رپېنګ ته ځانګړی حساب ورکړئ پرته له متقابل شل، پرته له sudo حقونو او پرته له هغو ډلې غړیتوبونو چې ورته اړتیا نه لري۔ سکریپټ او هغه ځانګړي فایلونه چې کتنه یې کوي د لوستلو لاسرسی ورکړئ، بیا د VPN پروفایل له لمس کولو دمخه د امتیاز کمول وازموئ۔ دلته ستونزه موندل د کلینټ دننه موندلو څخه ارزانه دي۔
sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.shد امتیازاتو کمول هغه زیان محدودوي چې بد سکریپټ یې رسولای شي۔ خو دا کوډ نه بیاکتنه کوي، راپور ریښتینی نه کوي، او نه ثابتوي چې د ګیټوی مدیر دا پلي کول د وسیلې تګلارې پوره کول مني۔
ګام 4: بدلون د بیاګرځېدو وړ وساتئ
د سمون دمخه د پروفایل بیک اپ واخلئ، او رپېنګ د نسخې کنټرول لاندې وساتئ ترڅو بېرته ګرځول د کاپي لټولو پرځای پیژندل شوې هش بیرته راولي۔ د سکریپټ لار، هش، د اجرا کارن او اجازه ورکوونکی په یوه ځای ولیکئ۔
د بېرته ګرځولو لپاره انتخاب لرې کړئ، کلینټ بیا پیل کړئ او تایید کړئ چې اصلي تېروتنه بیرته راځي۔ که د بېرته ګرځولو وروسته هم ګیټوی ننوتل ردوي، نو بل څه هم بدل شوي، او د هغه توپیر موندل د رپېنګ بیا هڅه کولو دمخه راځي۔ پخوانی کاپي د بدلون د ټولې مودې لپاره وساتئ، چې د ډیرو ټیمونو لپاره د بل ساتنې وخت تر تیریدو پورې معنا لري۔
له بریالۍ ځای پرځای کولو وروسته یو نه، دوه څیزونه وګورئ: تونل پورته راځي، او هغه وسیله چې باید د حالت کتنې کې ناکامه شي لا هم رد کیږي۔ هغه اړیکه چې د هرچا لپاره کار کوي د دې ثبوت نه دی چې ارزونه ستاسو له بدلون څخه ژوندې پاتې شوه۔
هغه لنډې لارې چې دوهمه ستونزه جوړوي
مرستې کوونکي ته مه اجازه ورکړئ پرته له اړینو کتنو چلولو سمونیز حالت راپور ورکړي، او د بل عملیاتي سیسټم سره د سمون لپاره د پلیټ فارم هویت مه بدلوئ۔ د بل پلیټ فارم ادعا د دې ثبوت نه دی چې ریښتینې وسیله تګلاره پوره کوي۔ دا تاسو د هغه کلینټ سره پریږدي چې په هر راتلونکي ننوتلو کې دروغ وایي۔
د سرور تصدیق بندول، زوړ کوکی بیا غږول او د نه کتل شوو سکریپټونو کښېښودل ټول ښکاره ناکامي په نه ښکاره بدلوي۔ که نصب شوی کلینټ نشي کولی ملاتړ شوی جریان بشپړ کړي، د خپل موجود جریان د کږولو پرځای اجازه شوی بدیل وغواړئ۔
OpenConnect لارښود --csd-wrapper او --csd-user په جلا توګه مستند کوي، او دا هغه اشاره ده چې مهمه ده: سکریپټ او هویت دوه پریکړې دي۔ دوی په جلا توګه وګورئ او دواړه ولیکئ۔ بیا د ننوتلو غوښتنلیک هغه معما نه پاتې کیږي چې د کوډ نښلولو سره یې حل کوئ۔