د OpenVPN DNS د SIGKILL وروسته پاتې کېږي: لومړی مالک وګورئ
SIGKILL د OpenVPN down هک چلولی نه شي، خو systemd-resolved بیا هم د هرې اړیکې DNS غورځولی شي. پرېکړه وکړئ څه ووتل، ریزولور د چا دی او څه پاتې دي.
د OpenVPN کلاینټ له وژل کېدو وروسته DNS حل کول بندوي، او لومړی غریزه دا ده چې /etc/resolv.conf بیا ولیکل شي۔ دا بدلون کولای شي یو فعال ریزولور مات کړي، حال دا چې ریښتینی زوړ حالت بل ځای کې دی۔ لومړی دې پوښتنه حل شي چې د تونل لخوا نصب شوې DNS ترتیبات د چا دي، او آیا هغه وتل چې پاکوالی یې پرېښود واقعاً مهم وو۔
درې شرطونه ترمیم ټاکي: هغه سیګنال چې پروسه پای ته ورسوله، د ریزولور هغه برخه چې ترتیبات یې ترلاسه کړل، او آیا د تونل اړیکه لا هم شته۔ په همدې ترتیب ځواب ورکړئ او سمون معمولاً پرته له دې چې کوم نړیوال فایل ته لاس ووهي راځي۔
پرېکړه وکړئ چې کوم ډول وتل شوی
د Community نسخه کې OpenVPN لپاره SIGINT او SIGTERM دواړه د ارام وتلو غوښتنې دي۔ SIGKILL نه نیول کېږي: نه بلاک کېدای شي نه پروسس، نو هیڅ د بندولو روتین د چلېدو چانس نه ترلاسه کوي۔ په مخکیني ټرمینل کې نورمال Ctrl+C د SIGINT تولیدوي، خو هغه څارونکی چې انتظار پرېږدي معمولاً SIGKILL ته لوړېږي۔ توپیر مهم دی ځکه یوازې دوهم حالت تضمینوي چې هکونه پرېښودل شوي۔
په screen یا tmux کې دننه چلول بدلوي نه چې Ctrl+C کوم سیګنال لېږي۔ وګورئ چې پروسې واقعاً څه ترلاسه کړل، نه هغه څه چې ټرمینل معمولاً کوي۔
کله چې یوه خدمت یا د اړیکو مدیر تونل چلوي، هغه یوه اړیکه د هغې د مالک له لارې ودروئ نه دا چې pid ووژنئ۔ مدیر کولای شي پروسه بیا پورته کړي، او تاسو ته نوی تونل او ګډوډ ریزولور حالت پاتې شي۔ جلا پروسه یوازې عادي د پای غوښتنې ته اړتیا لري ترڅو پاکوالی چل شي۔
پرېکړه وکړئ چې ریزولور د چا دی
systemd-resolved، د resolvconf سټایل سکریپټ او ساده د فایل بیا لیکل درې بېلابېل مالکان دي۔ لومړی د هرې اړیکې ترتیبات په حافظه کې ساتي او کله چې انټرفیس ورک شي هغه غورځوي۔ دوهم هغه ریکارډونه ساتي چې تر هغې پاتې وي چې څه یې لرې کړي۔ درېیم فایل لیکي او بیا رغونه پر هغه چا پرېږدي چې لیکلی یې دی۔
د ترمیم حکم له غوره کولو دمخه مالک وپېژنئ۔ ورته نښه درې بېلابېل سم ځوابونه لري، پورې اړه لري چې کوم یې کارېږي۔
د NetworkManager لخوا اداره شوی VPN کېدای شي لا دمخه د ریزولور بدلونونو مالک وي۔ پر سر یې دوهم مرستندوی اضافه کول دوه مالکان جوړوي چې د یوې اړیکې لپاره سیالي کوي، او د بایلونکي حالت په راتلونکي بیا اړیکه کې بیا ښکاري۔ که مدیر مسؤل وي، ترتیب په سکریپټ کې نه، په مدیر کې سم کړئ۔
down هک څه کولای شي او څه نه شي
سکریپټ down د TUN/TAP وسیلې له بندېدو وروسته یو ځل چلېږي۔ اضافه کول یې down-pre هغه ترتیب اړوي او سکریپټ هغه وخت چلوي چې وسیله لا شته، چې ژوندي اړیکې ته اړ مرستندویان یې غواړي۔
هیڅ لارښوونه هک د SIGKILL وروسته نه چلوي۔ امتیازات هم د down-pre له لارې نه بیا رغېږي: که ډیمون user یا group ته ښکته شي یا chroot ته ننوځي، هک له هغه لاسرسي سره چلېږي چې دا ورته پرېږدي۔ بلل شوی هک بیا هم کېدای شي ریزولور تازه کړي نه شي۔ د OpenVPN حواله سیګنالونه او د کال بیک د ژوند دوره پوښي۔
د پروسې د وتلو حالت ترڅنګ د هک خپله تېروتنه وګورئ۔ ورک پاکوالی او ناکام پاکوالی په ریزولور کې ورته او په لاګونو کې بېل ښکاري۔
هغه حالت وګورئ چې واقعاً پاتې دی
په هغه سیستم کې چې systemd-resolved کاروي، resolvectl status ښیي چې کومه اړیکه لا هم د VPN DNS سرورونه یا د لارښوونې ډومینونه وړي۔ هغه اړیکه کېدای شي د وتلې اړیکې وي، یا د بل تونل چې لا پورته دی۔
هغه انټرفیس چې ورک شي خپل د هرې اړیکې ترتیب له ځان سره وړي، نو پرېښودل شوی هک کولای شي د پاک DNS سره یوځای وي۔ که اړیکه لا ثبت وي او یوازې د درول شوې اړیکې ملکیت وي، مالک مدیر دې لرې کړي۔ که یو زوړ سکریپټ نړیوال ریزولور فایل بیا لیکلی وي، پر ځای یې د هغه سکریپټ مستند بیا رغونې ګام وپلټئ۔
پرته له دې چې بله اړیکه غلا کړئ بیا رغوئ
کله چې د هرې اړیکې ترتیبات ستاسو په اداره کې وي، resolvectl revert د اړیکې نوم اخلي او د هغه انټرفیس لپاره د چلېدو وخت DNS ترتیب پاکوي۔ دا د چلېدو وخت عمل دی نه د پروفایل سمون، نو دوامداره د اړیکې ترتیب نه لاس وهل کېږي۔ که غلط اړیکه ونومئ، د یو فعال تونل DNS پاکوئ، ځکه نوم د حالت له وتلو څخه اخیستل کېږي۔
د سمون دمخه ډاډه شئ چې /etc/resolv.conf یوه اداره شوې سمبولیکه اړیکه ده، بیا کلاینټ یو ځل نور هم نورمال ودروئ او بیا DNS وګورئ۔ که دوهم ځل درول پاک کړي، پخوانی ستونزه ترتیب نه و، زورواکې وتل وو۔