دواړه سایټونه ورته LAN سلسله کاروي، او همغه پوښ وه نه دی چې واقعاً ډیزاین ماتوي۔ هب باید یوازې د منزل پتې له مخې سایټ وټاکي، او دوه ورته منزلونه هغه ته د ټاکلو لپاره هېڅ نه ورکوي۔ د یوه فعال دفتر بیا شمېرنه د تونل د اړتیاوو پوره کولو لپاره معمولاً له دې څخه بدله معامله ده چې هر خپاره شوي خدمت ته جلا پته ورکړل شي چې تونل یې انتقالولی شي۔ لاندې ډیزاین په هره سایټ کې یو HTTPS خدمت خپروي او نور هېڅ نه۔

ولې پوښ وه ریښتینې ستونزه نه ده

WireGuard د منزل له مخې لیږدوي: د یوه peer AllowedIPs ټاکي چې کوم peer پاکټ ترلاسه کوي۔ دوه peer نشي کولی دواړه یوځای 10.10.7.0/24 اعلان کړي پرته له دې چې یو یې هره پوښتنه وګټي۔ دا د peer جدول ځانګړنه ده، نه د تونل، نو ځکه دلته حل لار د پتو پلان دی، نه د لارښوونې چل۔

پلان دا دی چې LAN په بشپړه توګه اعلان نه کړو۔ پرځای یې د هر خدمت لپاره alias اعلان کړئ، په هره سایټ کې یوه پته، او د هر سایټ ګېټوې هغه alias خپل ریښتیني اپلیکیشن ته وژباړي۔

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

هر سایټ ته هغه alias ورکړئ چې کاروونکی یې لارښوونه کولی شي

له هغې سلسلې پتې وټاکئ چې د کاروونکي ماشین، هب یا دواړو LAN سره په هېڅ شي کې ټکر نه لري۔ دلته هب 10.66.0.1 دی، کاروونکی 10.66.0.10، ګېټوې 10.66.0.21 او 10.66.0.22 دي، او دوه alias 10.77.1.20 او 10.77.2.20 دي۔ هب هر alias د هغه peer له لارې خپروي چې مالکیت یې لري، نو یوه alias ته لیږل شوی وتونکی پاکټ یوازې د سمون سایټ له لارې وتلی شي:

[Interface]
Address = 10.66.0.1/32
ListenPort = 51820
PrivateKey = HUB_KEY

[Peer]
PublicKey = USER_PUBLIC_KEY
AllowedIPs = 10.66.0.10/32

[Peer]
PublicKey = SITE_A_PUBLIC_KEY
AllowedIPs = 10.66.0.21/32, 10.77.1.20/32

[Peer]
PublicKey = SITE_B_PUBLIC_KEY
AllowedIPs = 10.66.0.22/32, 10.77.2.20/32

د کاروونکي خوا یوازې دوه alias ته اړتیا لري، چې کلایټ تنظیمات له دواړو LAN پریفکسونو خوندي ساتي۔ په هغه تنظیماتو کې هېڅ هم د کوم ریښتیني LAN یادونه نه کوي:

[Interface]
Address = 10.66.0.10/32
PrivateKey = USER_KEY

[Peer]
PublicKey = HUB_PUBLIC_KEY
Endpoint = hub.example.net:51820
AllowedIPs = 10.77.1.20/32, 10.77.2.20/32
PersistentKeepalive = 25

هره ګېټوې هب او د کاروونکي سرچینه اعلانوي، نور هېڅ نه، نو یو سایټ هېڅکله د بل سایټ LAN نه زده کوي۔ Keepalive د سایټ په پورته لینک کې د NAT نقشه ساتي؛ دا ترافیک ته اجازه نه ورکوي، او فایر وال لا هم ټاکي چې څه ومنل شي۔ د یوې ګېټوې تنظیمات بل ته کاپي کول سم دي، تر هغه چې شخصي کیلي، د انټرفېس پته او alias ټول بدل شي۔

هب باید د خپلو دوه peer ترمنځ څه اجازه ورکړي

هب د خپلو دوو peer ترمنځ پاکټونه لیږدوي، دا په forward زنځیر کې پرېکړه ده، نه د ننوتلو پرېکړه۔ IPv4 لیږد د پلیټفارم د عادي میکانیزم له مخې فعال کړئ، بیا یوازې هغه جوړې اجازه کړئ چې ډیزاین ته اړینې دي۔

لاندې قاعده کاروونکي ته یوه alias او یو پورټ اجازه ورکوي، او د اړیکو تعقیب له لارې بیرته راګرځېدونکي ترافیک ته اجازه ورکوي۔ دا په forward لار کې نور هر څه غورځوي، او همدا خبره ده:

nft add table inet hub_transit
nft add chain inet hub_transit forward '{ type filter hook forward priority 0 ; policy drop ; }'
nft add rule inet hub_transit forward ct state established,related accept
nft add rule inet hub_transit forward iifname wg0 oifname wg0 tcp dport 443 ip saddr 10.66.0.10 ip daddr 10.77.1.20 accept

دوه توضیحات د یادولو وړ دي ځکه دوی غږ نه لرونکي ناکامۍ رامنځته کوي۔ په یوه بنسټیز زنځیر کې accept په بل کې drop نه باطلوي، نو دا له موجوده پالیسۍ سره یوځای کړئ، د هغې ترڅنګ یې مه باروئ۔ او د سرچینې پته وسیله پیژني، نه شخص؛ د اپلیکیشن تصدیق له شبکې منلو څخه جلا وساتئ۔

چېرې چې alias ریښتینې پته کیږي

سایټ A د 10.77.1.20 لپاره غوښتنه ترلاسه کوي، منزل ریښتیني اپلیکیشن ته بیا لیکي، او سرچینه خپلې LAN پتې ته بیا لیکي ترڅو ځواب پرته له تونل ته لارې بیرته راشي۔ دواړه ژباړې په یوه ځای کول پاتې شبکه د alias په اړه ناخبره ساتي۔ لاندې قواعد بشپړ میکانیزم دي:

nft add table ip site_a_nat
nft add chain ip site_a_nat pre '{ type nat hook prerouting priority -100 ; policy accept ; }'
nft add chain ip site_a_nat post '{ type nat hook postrouting priority 100 ; policy accept ; }'
nft add rule ip site_a_nat pre iifname wg0 tcp dport 443 ip saddr 10.66.0.10 ip daddr 10.77.1.20 dnat to 10.10.7.20:443
nft add rule ip site_a_nat post iifname wg0 oifname lan0 tcp dport 443 ip saddr 10.66.0.10 ip daddr 10.10.7.20 snat to 10.10.7.2

بیا د سایټ A forward پالیسي باید ژباړل شوی بهیر د تونل انټرفېس څخه LAN انټرفېس ته، او د بیرته راستنېدو لوري ته اجازه ورکړي۔ forward hook منزل د منزل ژباړې وروسته او د سرچینې بیا لیکلو مخکې ویني، نو ځکه قاعده د ریښتیني اپلیکیشن پته نوموي۔ کله چې یوه قاعده د هېڅ شي سره سمه نه ښکاري، هغه دوه hook په همدې ترتیب ولولئ۔ د alias پر ضد لیکل شوې forward قاعده هېڅکله سمه نشي، ځکه alias په هغه hook کې نور نشته۔

سایټ B دا د خپل alias او خپل کیلي سره تکراروي۔ دا باید د سایټ A شخصي کیلي بیا ونه کاروي، ځکه دوه peer چې یوه پیژندنه شریکوي د تنظیماتو تېروتنه ده چې لیدل یې سخت او د فایل کاپي کولو سره یې جوړول اسانه دي۔ دواړه ګېټوې اسناد پرته له هغو ارزښتونو چې باید توپیر ولري یو شان وساتئ، ترڅو په بیاکتنه کې توپیر څرګند شي۔ کاپي شوی فایل د هغې نیمګړتیا عادي سرچینه ده۔

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

څنګه ثابت کړو چې دواړه خپاره شوي نومونه ځواب ورکوي

هر alias ته DNS نوم ورکړئ او اپلیکیشن او سند د هغه نوم لپاره تنظیم کړئ، ځکه ژباړه بیا لارښوونې یا دننه شوي مطلق URL نه لیکي۔ په هره سایټ کې یو نوم وکاروئ ترڅو د سند ناسمونې هېڅکله د لارښوونې خرابۍ سره مغشوشه نه شي۔

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

wg show wg0 allowed-ips
sudo nft list ruleset
curl -sS -o /dev/null -w "%{http_code}\n" https://site-a.example.net/

په لومړي حکم کې تش یا ناڅاپي alias یعنې د فایر وال له کومې قاعدې دمخه peer ټاکنه غلطه ده۔ که alias سم وي او نوم لا هم ناکام شي، ستونزه DNS او سندونو ته تللې ده۔ کله چې دواړه نومونه ځواب ووایي او دریم پورټ بند پاتې شي، ډیزاین هغه څه کوي چې ادعا یې کوي: په تنګه توګه خپاره شوي دوه خدمتونه، نه یوځای شوي دوه LAN۔

اړوندې مقالې