host-only اډاپټرې یو محلي مجازي شبکه جوړوي، او روټ شوي TUN ټنلونه د پتې ترمنځ IP پاکټونه وړي۔ د دوی له جملې کوم یو بل ته پله نه ده، نو ځکه یو کارکوونکی ترتیب باید ووایي چې څوک مخته وړي او د بېرته ستنېدو روټ د چا دی۔ که دا دوه دندې بدلې شي، مېلمه ټنل ته د هغه سرچینې سره ځواب ورکوي چې د ټنل پېرودونکي هېڅکله نه وه غوښتې۔ لاندې ډیزاین دواړه مخکښې جلا ساتي او د بېرته ستنېدو لار څرګندوي۔

دوه شبکې، دوه مخکښې

د ټنل حوض او host-only شبکې ته بېلې مخکښې ورکړئ او هېڅکله یوه د بل لپاره مه کاروئ۔ په دې بېلګه کې د VPN حوض 10.44.0.0/24 دی او د host-only شبکه 192.168.99.0/24 ده، کوربه پر 192.168.99.1 او یو مېلمه پر 192.168.99.20 دی۔ یوه مخکښه هم TUN وسیلې ته او هم host-only اډاپټر ته ورکول دوی نه یوځای کوي۔ دا پر یوه پتې حد دوه ادعاوې جوړوي، او د روټ جدول بیا د هغې ادعا په ګټه ځواب ورکوي چې ناڅاپه یې ساتلې وه۔

host-only اډاپټر پر کوربه او د مېلمه په داخل کې دواړه شته، او پخپله ماشین ته د وتلو لار نه لري۔ بریج او NAT اړیکې بېل خطر لري، او یوې مېلمه خدمت ته د رسېدو لپاره بریج حالت ته تلل شرط نه دی۔

کوربه لا دمخه لار لري

وګورئ چې څه شته، مخکې له دې چې څه اضافه کړئ۔ کوربه په host-only شبکه کې یو انټرفېس او د هغې مخکښې لپاره یو روټ لري، دواړه هغه وخت جوړ شول چې اډاپټر پورته شو۔

ip -br addr show
ip route show 192.168.99.0/24
sysctl net.ipv4.ip_forward

دریمه کرښه هغه میکانیزم دی چې کوربه یو ټوپ جوړوي۔ پرته له هغې، له ټنل څخه راغلی پاکټ هغې شبکې ته پته اخلي چې کوربه ورته رسېدلی شي خو مخته به یې نه وړي۔ مخته وړل اړین دي او بس نه دي۔ د فلټر تګلاره لا هم پرېکړه کوي چې د ټنل انټرفېس او host-only انټرفېس ترمنځ یو ځانګړی بهیر اجازه لري که نه، او هغه پرېکړه باید لیکلې وي، نه په هغې تګلارې کې چې چا نه ده لوستلې۔

روټ فشار کړئ، بیا هغه څه فلټر کړئ چې ورته رسېږي

سرور کولی شي host-only مخکښه هغو پېرودونکو ته ورکړي چې فشار شوي روټونه مني، کوم چې د ټنل تر شا د هر بل فرعي شبکې لپاره کارول شوی هماغه میکانیزم دی۔

push "route 192.168.99.0 255.255.255.0"
iptables -A FORWARD -i tun0 -o vboxnet0 -d 192.168.99.20 -p tcp --dport 5432 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o tun0 -s 192.168.99.20 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

دا دوه قاعدې په یو خوا کې یو خدمت او د هغه ځوابونه اجازه کوي۔ هغه روټ چې ټولې مخکښې ته رسېږي او هغه فلټر چې یوه پورټ اجازه کوي یو قصدي ترکیب دی؛ روټ او بېشرطه مننه هغه لار ده چې له مخې یې د لابراتوار خدمت خلاص خدمت کېږي۔ فشار شوی روټ هم اجازه نه ده۔ پېرودونکی یې مني، کوربه یې مخته وړي، او د مېلمه وال او خود خدمت لا هم نظر لري۔

مېلمه اړ دی چې بېرته د تګ لار ولري

هغه مېلمه چې له 10.44.0.x څخه ورته رسېږي باید خپل ځوابونه د کوربه host-only پتې ته واستوي، یا کوربه باید سرچینه وژباړي۔ د VirtualBox DHCP څخه پته ترلاسه کول د دې دواړو ترتیباتو په اړه څه نه وایي۔

ip route add 10.44.0.0/24 via 192.168.99.1 dev enp0s8
ip route get 10.44.0.15

دغه روټ د مېلمه په داخل کې اضافه کول اصلي سرچینه ساتي، کوم چې د هر پېرودونکي تګلاره او لاګونه بامعنا ساتي۔ پر کوربه محدوده سرچینه ژباړه بدیل دی، او کار کوي، خو د دې په بیه چې پټوي کوم پېرودونکی وصل شو۔ یو بل ناکامي حالت نښتی کېدل دي۔ هغه لیرې پېرودونکی چې کورني LAN یې لا دمخه 192.168.99.0/24 کاروي فشار شوی روټ به خپله شبکه ولولي، او د سرور په خوا کې هېڅ بدلون هغه ابهام نه حل کوي۔ یوه خوا بیا نمبر کړئ یا هغه مخکښه وټاکئ چې د ټکر احتمال یې کم دی۔

TUN وسیله IP پاکټونه وړي، نو د مېلمه په داخل کې د ډیفالټ ګېټوې اضافه کول ټنل د host-only اډاپټر سره د ایترنېټ برخه نه جوړوي۔ TAP پلېدل یو بل ډیزاین دی چې خپل پېرودونکي ملاتړ او د پتې مالکیت لري، او دواړه تشریحات یوځای کول هغو ترتیباتو ته رسوي چې هېڅکله نه یوځای کېږي۔

تایید یې کړئ، بیا یې د بیا پیلېدو په وړاندې مقاوم کړئ

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

ss -lntp '( sport = :5432 )'
conntrack -L | grep 192.168.99.20

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

اړوندې مقالې