له client-connect سکریپټ څخه د پتې بیرته راګرځول داسې ښکاري چې باید د پیرودونکي IP وټاکي۔ خو نه ټاکي: د هک یوازینی کانال سرور ته یو موقتي فایل دی چې لار یې د سکریپټ وروستی دلیل په توګه راځي، او پته باید هلته د ifconfig-push په ترکیب ولیکل شي۔ هغه سکریپټ چې پته چاپوي یا پرته له دې چې څه ولیکي په صفر ووځي، له زېرمې څخه د پتې سره یو نښلول شوی پیرودونکی جوړوي، او د سرور لاګ بشپړ روغ ښکاري.

ګډوډي سمه ده، ځکه چې څو نور هکونه واقعاً د وتلو کوډونو یا د چاپېریال متغیرونو له لارې ځواب ورکوي. دا هک خپل قرارداد لري، او قرارداد د فایل له نوم پیلېږي.

هک فایل لیکي، نه د بیرته راګرځولو ارزښت

اعلان دوه کرښې دي: د غوښتنې اجازه ورکولو لپاره script-security 2، بیا client-connect /etc/openvpn/server/assign-address.sh۔ کله چې پیرودونکی تصدیق شي، سرور هغه سکریپټ د جوړ شوي فایل لارې سره د وروستي دلیل په توګه چلوي، کوم چې یوازې هغه وخت $1 وي چې اعلان خپل اضافي دلیلونه ونه لېږي۔ هر څه چې پر هغه پیرودونکي پلي کېږي په هغه فایل کې د عادي لارښوونو په توګه، په هر کرښه کې یوه، سم لکه څنګه چې په یوه ترتیباتو کې ښکارېدل، لیکل کېږي۔ خپل پارامیټرونه زیاتوونکی پوښ ځای بدلوي، او کلاسیکه نښه هغه سکریپټ دی چې د --verbose په څېر ښکارېدونکي لارې ته لیکي.

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

دوه لارښوونې د پام وړ دي ځکه چې له نورو ټولو سره تعامل کوي۔ ifconfig-push پته ټاکي، پداسې حال کې چې لېږل شوې route پیرودونکي ته وایي چې د تونل له لارې څه ته رسېدل ممکن دي؛ لومړی بیرته راوګرځوه او دوهم هېر کړه، نو په پته خو بې منزله پیرودونکی ترلاسه کوې۔ په فایل کې ترتیب مهم نه دی، خو بشپړتیا مهمه ده۔ هغه هک چې د هغې مخکښې لپاره لار لېږي چې هېڅ همکار ورته نشي رسېدلی، له بلې خوا لیدل شوې هماغه تېروتنه ده.

ننوتل د چاپېریال متغیرونو له لارې راځي: common_name، trusted_ip، ifconfig_pool_remote_ip او نور۔ له دوی ټولو سره د سرور له باندې د تارونو په توګه چلند وکړئ، هیڅکله د شیل ټوټو په توګه نه.

د پتو نقشه کول یوه تګلاره ده، نه ریاضي

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

څوک چې نوم کنټرولوي پته کنټرولوي، نو پریکړه وکړئ چې common_name په دې ځای پرځای کولو کې واقعاً څه استازیتوب کوي۔ کله چې username-as-common-name فعال وي، هویت ننوتل دي نه د سند موضوع۔ هیڅکله هغه ارزښت د شیل ارزونې ته مه لېږئ، او هیڅکله مه پرېږدئ چې پیرودونکی په فایل لاره اغېزه وکړي.

د راجستر پر بنسټ تخصیص کوونکی باید هممهالېدو ته دوام ورکړي۔ پته په اتومي ډول خوندي کړئ، ناکام لیکل د نیمګړي ترتیبات شوي پیرودونکي له منلو پرته مدیریت کړئ، او هر تخصیص د هغې اړیکې سره نښه کړئ چې مالک یې ده، تر څو د پخوانۍ ناستې ناوخته قطع کول هغه پته آزاده نه کړي چې نوی ناسته یې مخکې نیولې ده۔ یو زېرمه شریکولو څو سرور نسخې دا غوښتنه تېزه کوي نه اختیاري.

ټوپولوژي ټاکي چې ifconfig-push څه معنا لري

په 10.77.0.0/24 باندې د topology subnet سره، ifconfig-push 10.77.0.20 255.255.255.0 یوه پته او د هغې شبکه ماسک دی۔ د topology net30 لاندې دوهم دلیل هېڅ ماسک نه دی بلکې د همکار پته ده، نو د فرعي شبکې بڼه net30 سرور ته کاپي کول تاسو ته هغه پیرودونکی درکوي چې نښلېږي خو ترافیک نشي تېرولی۔ ټوپولوژي په قصد بدله کړئ، هیڅکله د دې لپاره نه چې بېلګه سره سمه ښکاره شي۔ هغه سرور چې لا دمخه net30 چلوي په زوړ پتې ادرس کې ژوندي پیرودونکي لري، نو بدلون د ساتنې کړکۍ سره مهاجرت دی، نه د یوې کرښې سمون.

ثابتې پتې باید د متحرک زېرمې څخه بهر او د هر بل ثابت تخصیص څخه بهر وي، په شمول هغه چې د عادي client-config-dir فایلونو له لارې ورکول کېږي۔ که دوه میکانیزمونه وکولی شي یوه پته د جلا پیرودونکو لپاره تولید کړي، یو به یې بالاخره هماغه وکړي.

تر هغه چې باور وکړئ څلور حالتونه وآزمویئ

هماغه ازموینې په نقشه شوې هویت، نه نقشه شوې، بیا نښلولو او د راجستر simulated ناکامۍ باندې چل کړئ۔ openvpn --config client.ovpn --verb 4 په push ځواب کې ټاکل شوې پته ښیي، او په سرور باندې grep -A2 PUSH_REPLY /var/log/openvpn/openvpn.log تاییدوي چې واقعاً څه ولېږل شول۔ د نه نقشه شوې هویت لپاره تمه شوې پایله رد شوې اړیکه ده، نه د زېرمې پته.

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

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

اړوندې مقالې