تاسو باید پریکړه وکړئ چې ستاسو د VPN لابراتوار څومره ماشینري مستحق دی۔ د دوو VirtualBox برخو ترمنځ یو روټ شوی دروازې VM د پتې ژباړه، د بېرته راتلو لاره او د هغه فایر وال موقعیت بیا تولیدوي چې یو ریښتینی کلینټ ترې شاته ناست وي۔ یوه یوازې کوربه برخه تاسو ته یوه کنټرول شوې دروازه درکوي او بل هېڅ نه۔ د دروازې نسخه درې مېلمانه او یوه روټینګ جدول چې تاسو یې ساتئ لګښت لري؛ یوازې کوربه نسخه یو مېلمه او یوه تګلاره لګښت لري۔ درې پوښتنې دوی جلا کوي، او درېیمه پریکړه کوي چې ستاسو ازموینه اصلاً کولای شي بریالۍ شي که نه۔

له هر څه کاپي کولو دمخه د درې پوښتنو ځوابونه ورکړئ

له هغه څه پیل وکړئ چې VPN سرور یې باید مشاهده کړي۔ که سرور باید داسې سرچینې پته وویني چې د ازموینې مېلمه نه وي، نو د دوی ترمنځ باید یو څه ژباړه وکړي، او هغه یو څه باید هغه روټر وي چې تاسو یې کنټرولوئ۔ یوازې کوربه شبکه کوربه ته د مېلمه په برخه کې یو اډاپټر ورکوي، ژباړونکی نه۔ کله چې مېلمه بیا بهر ته د یو څه رسیدو ته اړتیا ولري، تاسو یو NAT اډاپټر نښلوئ، او د VirtualBox خپل NAT انجن ستاسو له پوښتنې پرته سرچینه بیا لیکي۔

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

What the test requiresRouted gateway VMHost-only guest
Server sees a translated source addressYes, from your own MASQUERADE ruleNo, VirtualBox NAT does it instead
The guest has exactly one egressYes, while the second adapter faces the tunnelOnly until a NAT adapter is attached
Policy is testable during a tunnel failureRules live in one placeRules live on each guest

درې رولونه د داخلي شبکو سره ونښلوئ

درې مېلمانه او دوه نوم لرونکې برخې وکاروئ، او دروازه باید یوازینی ماشین وي چې په دواړو کې اډاپټر لري:

VBoxManage modifyvm lab-client --nic1 intnet --intnet1 WAN
VBoxManage modifyvm lab-server --nic1 intnet --intnet1 LAN
VBoxManage modifyvm lab-gw --nic1 intnet --intnet1 WAN --nic2 intnet --intnet2 LAN

د داخلي شبکې لپاره جلا جوړولو مرحله نشته۔ په --intnet1 کې تار پخپله برخه ده: دوه ماشینونه یې یوازې هغه وخت شریکوي چې نوم یې سم سمون ولري، او په کوربه کې هېڅ شی ورسره نه دی نښلول شوی۔ همدا وروستی ځانګړتیا د لابراتوار د پاک تکرار سبب ده، ځکه چې د کوربه لارې، خپل VPN کلینټ او خپل فایر وال نشي کولای په ناڅاپي ډول مېلمنو ته ورسیږي۔ داخلي برخه کې DHCP سرور هم نشته، پرته له دې چې تاسو یو اضافه کړئ، نو ثابتې پتې ترټولو لنډه لاره ده۔

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

زه د VM نومونو ترڅنګ یو متن فایل ساتم چې څلور پتې او دوه برخې نومونه پکې دي، او په هر shell کې یې پیسټوم۔ څو اونۍ وروسته، کله چې د پروفایل بدلون یو څه مات کړي، هماغه فایل د پروفایل ډیبګ کولو او خپلې حافظې ډیبګ کولو ترمنځ توپیر دی۔

د هغې برخې لپاره چې باید ونه څڅي، داخلي یا یوازې کوربه غوره کړئ

یوازې کوربه حالت په خپله کوربه باندې یو مجازي اډاپټر جوړوي، معمولاً vboxnet0، او کوربه ته د مېلمه په برخه کې پته ورکوي۔ دا د ادارې لپاره اسانه او د جلاوالي ازموینې لپاره وژونکی دی، ځکه چې کوربه اوس کولای شي مېلمه ته مستقیم ورسيږي او د کوربه په اړخ کې هر خدمت ممکنه لاره ګرځي۔ داخلي حالت کې د کوربه اډاپټر هیڅ نشته۔ دواړه حالتونه په شبکه تنظیماتو پینل کې په اسانه ګډوډیږي، نو لیبل نه بلکې مستنده توپیر وګورئ (د VirtualBox شبکې تفصیلات پاڼه وګورئ)۔

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

VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0

هغه جلاوالی چې تاسو یې ثابتولای شئ هماغه جلاوالی دی چې تاسو تنظیم کړی۔ یو داخلي اډاپټر، په دروازه کې ډیفالټ لاره او بې NAT اډاپټر لرونکی مېلمه هغه لاره نه لري چې دروازه پریږدي۔ یوازې کوربه اډاپټر او NAT اډاپټر لرونکی مېلمه دوه لارې لري، او یوازې یوه یې هغه لاره ده چې تاسو یې ازمویل غوښتل۔

په دروازه کې روټ او ژباړه وکړئ، بیا یې د بندیدو سره ناکامه کړئ

VirtualBox د برخو ترمنځ فوروارډ نه کوي؛ مېلمه یې کوي۔ کله چې د VPN سرور VM د دروازې شاته وي، فوروارډینګ فعال کړئ او د کلینټ ترافیک ژباړئ کله چې سرور ته وځي:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

په دې قاعده سرور د کلینټ پرځای د دروازې LAN پته ویني، او د اپریټر NAT شاته ریښتینی کلینټ د شبکې سر ته همداسې ښکاري۔ sysctl ارزښت په /etc/sysctl.d/ کې او قاعده په هغه فایر وال خدمت کې وساتئ چې ویش کاروي، که نه بیا پیل لابراتوار په خاموشۍ سره روټ شوي خو نه ژباړل شوي حالت ته بېرته راولي۔

فوروارډینګ اجازه نه ده۔ د ACCEPT د ډیفالټ FORWARD تګلارې لاندې، هغه مېلمه چې ډیفالټ لاره یې دروازې ته اشاره کوي د روټینګ جدول غوره کړي انټرفیس څخه وځي، تونل وي یا نه۔ که دروازه د پیکیجونو نصبولو لپاره NAT اډاپټر هم ولري، هغه اډاپټر د تونل د لویدو په شیبه کې کار کوونکی نه کوډ شوی وتل دی، او ستاسو یوازې-VPN ازموینه هېڅکله یوازې-VPN ازموینه نه وه۔

کله چې سرور لرې وي او تونل پخپله دروازه پای ته رسوي، هماغه پریکړه تونل انټرفیس ته اشاره کوي، نه هغه NIC ته چې انټرنیټ ته رسیږي:

iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

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

لاره له کوربه نه، له مېلمه څخه تایید کړئ

بهر ته کار وکړئ۔ تایید کړئ چې کلینټ د دروازې WAN پتې ته رسیږي، بیا د دروازې له لارې سرور ته، بیا چې د VPN پورټ سره اړیکه وځي او بېرته راځي۔ د دروازې په دواړو انټرفیسونو کې نیول ښیي چې ځواب راځي او د بېرته راتلو په لاره کې غورځول کیږي، کوم چې یوازې په کلینټ کې نیول نشي کولای توپیر کړي:

tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194

بیا وتل ثابت کړئ۔ له مېلمه څخه د پتې انعکاس خدمت وپوښتئ چې کومه سرچینه ویني او هغه د دروازې خپلې وتلو پتې سره پرتله کړئ؛ که ځواب د کوربه پتې سره سمون ولري، د تونل شاوخوا لاره شته۔ وګورئ چې مېلمه واقعاً کوم حل کوونکی کاروي، او IPv6 جلا وګورئ، ځکه چې هغه برخه چې IPv6 پکې فعال دی او تونل یوازې IPv4 وړي په ناڅاپي ډول نه، بلکې په ډیزاین سره څڅیږي۔

په پای کې، په قصد یې مات کړئ۔ تونل ودروئ، یا د هغه بهرنی پورټ بلاک کړئ، او له مېلمه څخه نوی اړیکه پرانیزئ۔ باید ناکامه شي، او دلیل باید هغه وي چې تاسو یې نومولی شئ: لاره نشته، ردولو قاعده شته، یا حل کوونکی مړ دی۔ تونل بیا پیل کړئ او تایید کړئ چې مېلمه د شبکې بیا جوړولو پرته روغیږي۔ که د Hamachi یا ZeroTier په څیر mesh VPN لابراتوار شریکوي، په یاد ولرئ چې پله شوی اډاپټر mesh نه بلکې د اډاپټر نوم تعقیبوي، نو پله باید وروسته له هغه بیا لارښود شي چې کلینټ خپل مجازي اډاپټر نصب کړ۔

VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>

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

اړوندې مقالې