یو vpnc پروفایل له رومینګ وروسته پاک بیا نښلي؛ درې یې پر نوبت د یو بل ساکټونه، لارې او د حل کوونکي حالت ماتوي۔ د بنډل سره راغلی بیا نښلولو سکریپټ د یو تونل لپاره لیکل شوی، نو هرکله چې له دوی څخه یو ښکته وي هغه هر پروفایل بیا پیلوي۔ د دې سمولو لپاره درې شیان ته اړتیا ده: جلا محلي پورټونه، یوه ازموینه چې د هر پروفایل لپاره ریښتینی خدمت ازموي، او یو منظم ځنځیر چې هیڅکله دوه نښلونې یوځای نه چلوي۔

هر پروفایل ته خپل محلي پورټ ورکړئ

د تلواله محلي پورټ په سر پرېښودل شوی vpnc پروفایل له مخکې روان پروفایل سره سیالي کوي۔ دوهمه نښلونه ناکامه کیږي کله چې لومړی پورټ نیسي، او د لاګ کرښه د ګیټوې ستونزه ښکاري نه د محلي ټکر۔ پر ځای یې د هر پروفایل فایل لپاره یوه کرښه کیږدئ:

Local Port 0

صفر کرنل ته اجازه ورکوي چې لنډمهاله پورټ وټاکي، نو دوه پروفایلونه کولی شي یوځای جوړ شي۔ هر فایل د هغه ګیټوې او ګروپ په نوم ونوموئ چې خدمت یې کوي، یوازې د root لپاره لوستلو وړ یې وساتئ، او همیشه د شریک تلواله پر ځای د سم پروفایل سره ونښلوئ۔ شریک تلواله فایل هغه لاره ده چې سکریپټ له یو کس لخوا د پروفایل د نوم بدلولو وروسته غلط تونل بیا نښلوي۔

پروفایل فایلونه اعتبارنامې لري، نو اجازې د ډیزاین برخه ده، نه د کور کار۔ /etc/vpnc لاندې د ټولو لپاره لوستلو وړ فایل د ګروپ راز هر محلي کاروونکي ته ورکوي۔ حالت 0600 وساتئ او مالک root وي، او سکریپټونو ته اجازه ورکړئ فایل د root په توګه ولولي، نه دا چې رازونه په دلیلونو کې کاپي کړي۔ له همدې امله ازموینې سکریپټ باید هیڅکله د فایل منځپانګه په لاګ کې ونه ليکي۔

د هر پروفایل لپاره یو خدمت وازموئ، نه د تونل پته

د تونل خپلې پتې ته لیږل شوې ایکو غوښتنه ډېره دا ثابتوي چې انټرفیس شته۔ دا هېڅ نه وایي چې د هغې شاته کوربه لا هم هغه اپلیکیشن ته رسیږي چې تونل توجیه کوي۔ انټرفیس کولی شي پورته وي پداسې حال کې چې له هغې هاخوا لاره لا تللې وي۔

د هر پروفایل لپاره یو خدمت د لنډ TCP مهلت سره وازموئ او یوازې هغه پروفایل بیا ونښلوئ چې ازموینه یې ناکامه شوې۔ دوه ثانیې مړه لاره له ورو لارې بېلوې، او TCP ازموینه په دې تکیه نه کوي چې ICMP په لاره کې چیرې اجازه لري۔ د پروفایلونو ترمنځ یوازې هدف او د ترتیباتو نوم بدل کړئ:

#!/bin/bash
set -eu
if ! nc -z -w 2 10.63.7.20 8443; then
  /usr/sbin/vpnc-connect ops.conf
fi

هغه د /usr/local/bin/ensure-vpn-ops.sh په نوم وساتئ، د چلولو وړ یې کړئ، او د هر پروفایل لپاره یې یوازې د ازموینې هدف او د ترتیباتو نوم بدل کړئ۔ هغه ازموینه چې د پروتوکول پوښتنې ځواب ورکوي، له هغو ګیټوېونو ژغورل کیږي چې ایکو غورځوي خو بیا هم هغه خدمتونه لیږدوي چې کاروونکو ته مهم دي۔

ازموینې په ځنځیر کې ونښلوئ ترڅو هیڅکله سیالي ونه کړي

د بنډل بیا نښلولو سکریپټ کولی شي ستاسو ازموینې په ترتیب سره وبللې، او ترتیب ټوله خبره ده۔ دوه vpnc-connect غوښتنې چې یوځای چلیږي د لارښوونې جدول په داسې ترتیب بیا لیکي چې هیڅوک یې کنټرول نه کوي، او همداسې روغ پروفایل خپله لاره له لاسه ورکوي۔

غوښتنې په مخکینۍ برخه کې وساتئ، د لاندې انټرفیس لپاره لنډه ارامه ځنډ اضافه کړئ، او ځنځیر د root د cron جدول څخه مهال ویش کړئ، ځکه یوازې root کولی شي د تونل لارې بیا ولیکي:

#!/bin/bash
sleep 20
/usr/local/bin/ensure-vpn-ops.sh
/usr/local/bin/ensure-vpn-lab.sh

ترتیب د بوت سکریپټ او cron ننوتلو ترمنځ یو شان وساتئ، ځکه هغه ځنځیر چې د بوت پر مهال په بل ترتیب چلیږي په عمل کې بل پروګرام دی۔ کله چې یو پروفایل د بل پر لارو تکیه وي، تکیه لومړی کیږدئ او اجازه ورکړئ وروستې ازموینه بې زیانه ناکامه شي پداسې حال کې چې پخوانی تونل لا پورته کیږي۔

لاګ وګورئ، بیا په قصد یو مات کړئ

د هر چلند لپاره یوه کرښه ولیکئ — پروفایل، د ازموینې هدف، پایله او اخیستل شوی ګام۔ پرته له دې، هغه تونل چې هرې دقیقې ښورېږي بالکل هغه څوک ښکاري چې هیڅکله نه دی لوېدلی، او د ازموینې تېروتنه له ګیټوې بندېدو څخه نه جلا کیږي۔ لاګ دا هم ثابتوي چې ځنځیر یوازې هغه پروفایل ته لاس ورکړ چې ناکام شو۔ هغه په داسې ځای ولیکئ چې له بیا پیل وروسته هم پاتې شي، که نه نو شواهد له پروسې سره ځي۔

بیا په قصد یو تونل مات کړئ او وګورئ څه پېښیږي۔ یوازې یو پروفایل ودروئ او تایید کړئ چې کومې پروسې او لارې لا شته:

pgrep -a vpnc
ip -4 route show | grep -E '10[.]63|10[.]90'
tail -n 5 /var/log/ensure-vpn.log

یوازې درول شوی پروفایل باید بیا ونښلول شي، او نورې غونډې باید دواړه پروسې او لارې وساتي۔ که دوه پروفایلونه بیا پیل شي، ستاسو ځنځیر چېرې موازي روان دی چې تاسو تمه نه لرله۔

څه چې ساتونکی باید ونه کړي

هغه ساتونکی چې هرکله یو څه ناکام شي هر څه بیا پیلوي، په ازموینه کې روغ ښکاري او د ساتنې په کړکۍ کې بندېدل رامنځته کوي۔ د هر پروفایل لپاره بیا پیل کړئ، هیڅکله نړیوال نه۔

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

اړوندې مقالې