نيٽ ورڪ کي هڪ L2 نيٽ ورڪ ۾ گڏ ڪرڻ لاءِ OpenVPN کان WireGuard ڏانهن سوئچ ڪرڻ

نيٽ ورڪ کي هڪ L2 نيٽ ورڪ ۾ گڏ ڪرڻ لاءِ OpenVPN کان WireGuard ڏانهن سوئچ ڪرڻ

مان ٽن جغرافيائي طور تي ريموٽ اپارٽمنٽ ۾ نيٽ ورڪ کي گڏ ڪرڻ جو منهنجو تجربو حصيداري ڪرڻ چاهيان ٿو، جن مان هر هڪ راؤٽر استعمال ڪري ٿو OpenWRT سان گڏ گيٽ وي جي طور تي، هڪ عام نيٽ ورڪ ۾. L3 جي وچ ۾ نيٽ ورڪ کي گڏ ڪرڻ لاء هڪ طريقو چونڊيو جڏهن سب نيٽ روٽنگ سان L2 ۽ برجنگ سان LXNUMX، جڏهن سڀ نيٽ ورڪ نوڊس ساڳئي سب نيٽ ۾ هوندا، ترجيح ٻئي طريقي کي ڏني وئي، جنهن کي ترتيب ڏيڻ وڌيڪ ڏکيو آهي، پر وڌيڪ موقعا فراهم ڪري ٿي، ڇاڪاڻ ته ويڪ-آن-لين ۽ ڊي ايل اين اي ٺاهيل نيٽ ورڪ ۾ ٽيڪنالاجيز جي شفاف استعمال جي منصوبابندي ڪئي وئي.

حصو 1: پس منظر

OpenVPN شروعاتي طور تي هن ڪم کي لاڳو ڪرڻ لاء پروٽوڪول طور چونڊيو ويو، ڇاڪاڻ ته، پهريون، اهو هڪ ٽيپ ڊيوائس ٺاهي سگهي ٿو جيڪو پل ۾ شامل ٿي سگهي ٿو بغير ڪنهن مسئلي، ۽ ٻيو، OpenVPN TCP پروٽوڪول تي آپريشن کي سپورٽ ڪري ٿو، جيڪو پڻ اهم هو، ڇاڪاڻ ته ڪو به نه. اپارٽمنٽ جي هڪ وقف IP پتي هئي، ۽ مان STUN استعمال ڪرڻ کان قاصر هوس، ڇاڪاڻ ته منهنجو مهيا ڪندڙ ڪجهه سببن جي ڪري انهن جي نيٽ ورڪن مان ايندڙ UDP ڪنيڪشن کي بلاڪ ڪري ٿو، جڏهن ته TCP پروٽوڪول مون کي اجازت ڏني ته VPN سرور بندرگاهه کي SSH استعمال ڪندي ڪرائي تي ڏنل VPS ڏانهن. ها، هي طريقو هڪ وڏو لوڊ ڏئي ٿو، ڇاڪاڻ ته ڊيٽا ٻه ڀيرا انڪرپٽ ٿيل آهي، پر مان پنهنجي نجي نيٽ ورڪ ۾ هڪ VPS متعارف ڪرائڻ نه ٿي چاهيو، ڇاڪاڻ ته اڃا تائين ٽين ڌرين جو ان تي ڪنٽرول حاصل ڪرڻ جو خطرو هو، تنهن ڪري، اهڙي ڊوائيس هجڻ گهرجي. منهنجي گهر جي نيٽ ورڪ تي انتهائي ناپسنديده هو ۽ اهو فيصلو ڪيو ويو ته سيڪيورٽي لاء ادا وڏي مٿي سان.

روٽر تي بندرگاهن کي اڳتي وڌائڻ لاء، جنهن تي اهو سرور کي ترتيب ڏيڻ جي منصوبابندي ڪئي وئي هئي، sshtunnel پروگرام استعمال ڪيو ويو. مان ان جي تشڪيل جي پيچيدگين کي بيان نه ڪندس - اهو بلڪل آساني سان ڪيو ويو آهي، مان صرف اهو نوٽ ڪندس ته ان جو ڪم روٽر کان VPS ڏانهن TCP پورٽ 1194 کي اڳتي وڌائڻ هو. اڳيون، OpenVPN سرور کي tap0 ڊوائيس تي ترتيب ڏنو ويو، جيڪو br-lan پل سان ڳنڍيل هو. ليپ ٽاپ مان نئين ٺاهيل سرور سان ڪنيڪشن چيڪ ڪرڻ تي، اهو واضح ٿي ويو ته پورٽ فارورڊنگ جو خيال صحيح آهي ۽ منهنجو ليپ ٽاپ روٽر جي نيٽ ورڪ جو ميمبر بڻجي ويو، جيتوڻيڪ اهو جسماني طور تي ان ۾ نه هو.

ڪرڻ لاءِ صرف هڪ ننڍڙي شيءِ بچي وئي هئي: اهو ضروري هو ته IP پتي کي مختلف اپارٽمنٽ ۾ ورهايو وڃي ته جيئن اهي تڪرار نه ڪن ۽ روٽرز کي OpenVPN ڪلائنٽ طور ترتيب ڏين.
ھيٺ ڏنل روٽر IP پتي ۽ DHCP سرور جي حدن کي چونڊيو ويو:

  • 192.168.10.1 حد سان 192.168.10.2 - 192.168.10.80 سرور لاء
  • 192.168.10.100 حد سان 192.168.10.101 - 192.168.10.149 اپارٽمنٽ نمبر 2 ۾ روٽر لاءِ
  • 192.168.10.150 حد سان 192.168.10.151 - 192.168.10.199 اپارٽمنٽ نمبر 3 ۾ روٽر لاءِ

اهو پڻ ضروري هو ته اهي ايڊريس مڪمل طور تي OpenVPN سرور جي ڪلائنٽ راؤٽرز کي ان جي ترتيب ۾ لائن شامل ڪندي:

ifconfig-pool-persist /etc/openvpn/ipp.txt 0

۽ هيٺيون لائينون شامل ڪندي /etc/openvpn/ipp.txt فائل ۾:

flat1_id 192.168.10.100
flat2_id 192.168.10.150

جتي flat1_id ۽ flat2_id ڊوائيس جا نالا بيان ڪيا ويا آهن جڏهن OpenVPN سان ڳنڍڻ لاء سرٽيفڪيٽ ٺاهي رهيا آهن

اڳيون، OpenVPN ڪلائنٽ روٽرز تي ترتيب ڏني وئي، ٻنهي تي ٽيپ0 ڊوائيسز شامل ڪيا ويا br-lan پل ۾. هن اسٽيج تي، سڀ ڪجهه ٺيڪ ٿي رهيو آهي جيئن ته سڀئي ٽي نيٽ ورڪ هڪ ٻئي کي ڏسي سگهن ٿا ۽ هڪ طور ڪم ڪري سگهن ٿا. بهرحال، هڪ تمام خوشگوار تفصيل ظاهر نه ٿيو: ڪڏهن ڪڏهن ڊوائيسز هڪ IP پتو وصول ڪري سگھن ٿيون نه انهن جي روٽر کان، سڀني ايندڙ نتيجن سان. ڪجهه سببن لاء، هڪ اپارٽمنٽ ۾ روٽر وقت ۾ DHCPDISCOVER کي جواب ڏيڻ جو وقت نه هو ۽ ڊوائيس هڪ پتو ملي ٿو جيڪو ارادو نه هو. مون محسوس ڪيو ته مون کي هر روٽر تي ٽيپ0 ۾ اهڙين درخواستن کي فلٽر ڪرڻ جي ضرورت آهي، پر جيئن اهو نڪتو، iptables ڊوائيس سان ڪم نٿو ڪري سگهي جيڪڏهن اهو هڪ پل جو حصو آهي ۽ ebtables منهنجي مدد لاء اچڻ گهرجن. منهنجي افسوس سان، اهو منهنجي فرم ویئر ۾ نه هو ۽ مون کي هر ڊوائيس لاء تصويرون ٻيهر ٺاهڻ گهرجن. ائين ڪرڻ سان ۽ انهن لائينن کي هر روٽر جي /etc/rc.local ۾ شامل ڪرڻ سان، مسئلو حل ٿي ويو:

ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP

اها ترتيب ٽن سالن تائين برقرار رهي.

حصو 2: وائر گارڊ جو تعارف

تازو، انٽرنيٽ تي ماڻهن تي WireGuard جي باري ۾ ڳالهائڻ شروع ڪيو آهي، ان جي ترتيب جي سادگي، تيز ٽرانسميشن جي رفتار، نسبتا سيڪيورٽي سان گهٽ پنگ. ان جي باري ۾ وڌيڪ معلومات جي ڳولا ڪندي اهو واضح ڪيو ته نه هڪ پل ميمبر جي حيثيت سان ڪم ڪرڻ ۽ نه ئي TCP پروٽوڪول تي ڪم ڪرڻ ان جي حمايت ڪئي هئي، جنهن مون کي سوچيو ته اڃا تائين مون لاء OpenVPN جو ڪو متبادل ناهي. تنهن ڪري مون WireGuard کي ڄاڻڻ کان روڪي ڇڏيو.

ڪجهه ڏينهن اڳ، خبرون وسيلن ۾ پکڙيل آهن هڪ طريقو يا ٻيو IT سان لاڳاپيل آهي ته وائر گارڊ آخرڪار لينڪس ڪنيل ۾ شامل ڪيو ويندو، ورزن 5.6 سان شروع ٿيندي. خبرون آرٽيڪل، هميشه وانگر، WireGuard جي ساراهه ڪئي. مان وري ڳولھيو ويو طريقن جي ڳولا ۾ سٺن پراڻي OpenVPN کي تبديل ڪرڻ جي. هن ڀيري مان اندر ڀڄي ويس اهو مضمون. اهو GRE استعمال ڪندي L3 مٿان هڪ Ethernet سرنگ ٺاهڻ بابت ڳالهايو. هن مضمون مون کي اميد ڏني. اهو واضح ناهي ته UDP پروٽوڪول سان ڇا ڪجي. ڳولا مون کي يو ڊي پي بندرگاهن کي اڳتي وڌائڻ لاءِ SSH سرنگ سان ملائي ساڪٽ استعمال ڪرڻ بابت مضمونن ڏانهن راغب ڪيو ، جڏهن ته ، انهن نوٽ ڪيو ته اهو طريقو صرف سنگل ڪنيڪشن موڊ ۾ ڪم ڪري ٿو ، اهو آهي ، ڪيترن ئي وي پي اين ڪلائنٽ جو ڪم ناممڪن هوندو. مون کي هڪ VPS تي VPN سرور نصب ڪرڻ ۽ گراهڪن لاءِ GRE ترتيب ڏيڻ جو خيال آيو، پر جيئن ته اهو نڪتو، GRE انڪرپشن کي سپورٽ نٿو ڪري، جيڪا حقيقت جي اڳواڻي ڪندي ته جيڪڏهن ٽئين پارٽيون سرور تائين رسائي حاصل ڪن. ، منهنجي نيٽ ورڪن جي وچ ۾ سڀ ٽريفڪ انهن جي هٿن ۾ هوندي، جيڪا مون کي بلڪل به مناسب نه هئي.

هڪ ڀيرو ٻيهر، فيصلو ڪيو ويو بيڪار انڪرپشن جي حق ۾، هيٺ ڏنل اسڪيم کي استعمال ڪندي وي پي اين مٿان وي پي اين استعمال ڪندي:

سطح XNUMX VPN:
VPS اهو آهي سرور اندروني ايڊريس سان 192.168.30.1
MS اهو آهي گراهڪ اندروني پتي سان VPS 192.168.30.2
MK2 اهو آهي گراهڪ اندروني پتي سان VPS 192.168.30.3
MK3 اهو آهي گراهڪ اندروني پتي سان VPS 192.168.30.4

ٻيو سطح VPN:
MS اهو آهي سرور خارجي پتي سان 192.168.30.2 ۽ اندروني 192.168.31.1
MK2 اهو آهي گراهڪ MS ايڊريس سان گڏ 192.168.30.2 ۽ اندروني IP 192.168.31.2 آهي
MK3 اهو آهي گراهڪ MS ايڊريس سان گڏ 192.168.30.2 ۽ اندروني IP 192.168.31.3 آهي

* MS - اپارٽمنٽ 1 ۾ روٽر سرور، MK2 - اپارٽمنٽ 2 ۾ روٽر، MK3 - اپارٽمنٽ 3 ۾ روٽر
* ڊيوائس جون ترتيبون مضمون جي آخر ۾ اسپيلر ۾ شايع ٿيل آهن.

۽ ائين، پنگ نيٽ ورڪ نوڊس 192.168.31.0/24 جي وچ ۾ هلي رهيا آهن، اهو وقت آهي GRE سرنگ قائم ڪرڻ لاءِ. ان کان اڳ، روٽرن تائين پهچ نه وڃائڻ لاءِ، پورٽ 22 کي VPS ڏانهن فارورڊ ڪرڻ لاءِ SSH سرنگون قائم ڪرڻ جي قابل آهي، ته جيئن مثال طور، اپارٽمينٽ 10022 کان روٽر VPS جي پورٽ 2 تي پهچندو، ۽ اپارٽمنٽ 11122 کان روٽر اپارٽمينٽ 3 کان پورٽ XNUMX روٽر تي پهچندو. اهو ساڳيو sshtunnel استعمال ڪندي فارورڊنگ کي ترتيب ڏيڻ لاءِ بهترين آهي، ڇاڪاڻ ته اهو سرنگ کي بحال ڪندو جيڪڏهن اهو ناڪام ٿيو.

سرنگ ترتيب ڏني وئي آهي، توهان فارورڊ پورٽ ذريعي SSH سان ڳنڍي سگهو ٿا:

ssh root@МОЙ_VPS -p 10022

اڳيون توھان کي بند ڪرڻ گھرجي OpenVPN:

/etc/init.d/openvpn stop

هاڻي اچو ته اپارٽمنٽ 2 کان روٽر تي هڪ GRE سرنگ قائم ڪريون:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set grelan0 up

۽ پل ۾ ٺاهيل انٽرفيس شامل ڪريو:

brctl addif br-lan grelan0

اچو ته سرور روٽر تي ساڳيو عمل انجام ڏيو:

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set grelan0 up

۽ پل ۾ ٺهيل انٽرفيس پڻ شامل ڪريو:

brctl addif br-lan grelan0

هن لمحي کان شروع ٿي، پنگ ڪاميابي سان نئين نيٽ ورڪ ڏانهن وڃڻ شروع ڪيو ۽ مان، اطمينان سان، ڪافي پيئڻ لاء وڃان ٿو. پوء، جائزو وٺڻ لاء ڪيئن نيٽ ورڪ لائن جي ٻئي پڇاڙيء تي ڪم ڪري رهيو آهي، آئون اپارٽمنٽ 2 ۾ ڪمپيوٽرن مان هڪ ۾ SSH ڪرڻ جي ڪوشش ڪريان ٿو، پر ssh ڪلائنٽ بغير پاسورڊ لاء اشارو ڪرڻ کان سواء منجمد ٿي ويو آهي. مان هن ڪمپيوٽر سان ڳنڍڻ جي ڪوشش ڪري رهيو آهيان telnet ذريعي پورٽ 22 تي ۽ مون کي هڪ لائن نظر اچي رهي آهي جنهن مان مان سمجهي سگهان ٿو ته ڪنيڪشن قائم ٿي رهيو آهي، SSH سرور جواب ڏئي رهيو آهي، پر ڪجهه سببن جي ڪري اهو صرف مون کي لاگ ان ٿيڻ جو اشارو نٿو ڏئي. ۾

$ telnet 192.168.10.110 22
SSH-2.0-OpenSSH_8.1

مان ان سان ڳنڍڻ جي ڪوشش ڪري رهيو آهيان VNC ذريعي ۽ هڪ ڪارو اسڪرين ڏسو. مان پاڻ کي يقين ڏيان ٿو ته اهو مسئلو ريموٽ ڪمپيوٽر سان آهي، ڇاڪاڻ ته آئون آساني سان هن اپارٽمنٽ مان روٽر سان ڳنڍي سگهان ٿو اندروني ايڊريس استعمال ڪندي. بهرحال، مان روٽر ذريعي هن ڪمپيوٽر جي SSH سان ڳنڍڻ جو فيصلو ڪريان ٿو ۽ اهو ڏسي حيران آهيان ته ڪنيڪشن ڪامياب آهي، ۽ ريموٽ ڪمپيوٽر عام طور تي ڪم ڪري ٿو، پر اهو پڻ منهنجي ڪمپيوٽر سان ڳنڍي نٿو سگهي.

مان گريلان0 ڊيوائس کي پل تان هٽايو ۽ اپارٽمنٽ 2 ۾ روٽر تي OpenVPN هلايو ۽ پڪ ڪريو ته نيٽ ورڪ ٻيهر توقع جي مطابق ڪم ڪري ٿو ۽ ڪنيڪشن نه ڇڏيا ويا آهن. ڳولڻ سان آئون انهن فورمن ۾ اچي ٿو جتي ماڻهو ساڳين مسئلن بابت شڪايت ڪن ٿا، جتي انهن کي MTU بلند ڪرڻ جي صلاح ڏني وئي آهي. نه چيو جلد کان وڌيڪ. بهرحال، جيستائين MTU ڪافي اعليٰ مقرر نه ڪيو ويو - 7000 گريٽاپ ڊوائيسز لاءِ، يا ته ٽي سي پي ڪنيڪشن ختم ڪيا ويا يا گهٽ منتقلي جي شرح ڏٺي وئي. گريٽاپ لاءِ اعليٰ MTU جي ڪري، ليئر 8000 ۽ پرت 7500 وائر گارڊ ڪنيڪشن لاءِ MTUs ترتيبوار XNUMX ۽ XNUMX تي مقرر ڪيا ويا.

مون اپارٽمنٽ 3 کان روٽر تي ساڳيو سيٽ اپ ڪيو، فرق صرف اهو آهي ته هڪ ٻيو گريپپ انٽرفيس نالي grelan1 سرور روٽر ۾ شامل ڪيو ويو، جيڪو پڻ br-lan پل ۾ شامل ڪيو ويو.

سڀ ڪجهه ڪم ڪري رهيو آهي. ھاڻي توھان شروع ڪري سگھوٿا گريٽاپ اسيمبليءَ کي. ان لاءِ:

مون اپارٽمينٽ 2 ۾ روٽر تي /etc/rc.local ۾ اهي لائينون رکيا آهن:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

اپارٽمنٽ 3 ۾ روٽر تي هن کي شامل ڪيو /etc/rc.local:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

۽ سرور روٽر تي:

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

ip link add grelan1 type gretap remote 192.168.31.3 local 192.168.31.1
ip link set dev grelan1 mtu 7000
ip link set grelan1 up
brctl addif br-lan grelan1

ڪلائنٽ روٽرز کي ريبوٽ ڪرڻ کان پوء، مون دريافت ڪيو ته ڪجهه سببن لاء اهي سرور سان ڳنڍيل نه هئا. انهن جي SSH سان ڳنڍڻ (خوشقسمتي سان، مون اڳ ۾ ئي ترتيب ڏني هئي sshtunnel ان لاءِ)، اهو دريافت ڪيو ويو ته وائر گارڊ ڪجهه سببن لاءِ آخري پوائنٽ لاءِ رستو ٺاهي رهيو هو، پر اهو غلط هو. تنهن ڪري، 192.168.30.2 لاءِ، روٽ ٽيبل pppo-وان انٽرفيس ذريعي هڪ رستو ڏيکاريو آهي، يعني انٽرنيٽ ذريعي، جيتوڻيڪ ان جو رستو wg0 انٽرفيس ذريعي وڃڻ گهرجي ها. ھن رستي کي ختم ڪرڻ کان پوء، ڪنيڪشن بحال ڪيو ويو. مان ڪٿي به هدايتون ڳولي نه سگهيس ته ڪيئن وائر گارڊ کي مجبور ڪيو وڃي ته اهي رستا نه ٺاهي. ان کان علاوه، مون کي اهو به سمجهه ۾ نه آيو ته اهو OpenWRT يا WireGuard جي هڪ خاصيت آهي. گهڻي وقت تائين هن مسئلي سان معاملو ڪرڻ جي بغير، مون صرف هڪ لائن شامل ڪئي ٻنهي روٽرن کي هڪ ٽائيم اسڪرپٽ ۾ جيڪو هن رستي کي ڊاهي ڇڏيو:

route del 192.168.30.2

ويٺو آهي

مون اڃا تائين OpenVPN جي مڪمل خاتمي حاصل نه ڪئي آهي، ڇاڪاڻ ته مون کي ڪڏهن ڪڏهن هڪ ليپ ٽاپ يا فون مان نئين نيٽ ورڪ سان ڳنڍڻ جي ضرورت آهي، ۽ انهن تي گريپ ٽاپ ڊيوائس قائم ڪرڻ عام طور تي ناممڪن آهي، پر ان جي باوجود، مون کي رفتار ۾ فائدو حاصل ڪيو. اپارٽمنٽ جي وچ ۾ ڊيٽا جي منتقلي ۽، مثال طور، VNC استعمال ڪرڻ هاڻي تڪليف نه آهي. پنگ ٿورڙو گھٽجي ويو، پر وڌيڪ مستحڪم ٿيو:

OpenVPN استعمال ڪندي:

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=133 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=125 ms

--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19006ms
rtt min/avg/max/mdev = 124.722/126.152/136.907/3.065 ms

جڏهن WireGuard استعمال ڪندي:

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=124 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=124 ms
--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19003ms
rtt min/avg/max/mdev = 123.954/124.423/126.708/0.675 ms

اهو VPS ڏانهن اعلي پنگ کان وڌيڪ متاثر ٿيو آهي، جيڪو تقريبا 61.5 ايم ايس آهي.

تنهن هوندي به، رفتار تمام گهڻو وڌي چڪو آهي. تنهن ڪري، هڪ اپارٽمنٽ ۾ سرور روٽر سان، مون وٽ انٽرنيٽ ڪنيڪشن جي رفتار 30 Mbit/sec آهي، ۽ ٻين اپارٽمنٽ ۾ اها 5 Mbit/sec آهي. ساڳئي وقت، OpenVPN استعمال ڪرڻ دوران، مان 3,8 Mbit/sec کان وڌيڪ نيٽ ورڪن جي وچ ۾ ڊيٽا جي منتقلي جي رفتار حاصل ڪرڻ جي قابل نه ٿي سگهيو آهيان iperf ريڊنگز جي مطابق، جڏهن ته WireGuard ان کي ساڳئي 5 Mbit/sec تائين وڌايو.

وي پي ايس تي وائر گارڊ جي ترتيب[Interface] Address = 192.168.30.1/24
ListenPort = 51820
PrivateKey = <ЗАКРЫТЫЙ_КЛЮЧ_ДЛЯ_VPS>

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_1_МС>
AllowedIPs = 192.168.30.2/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2>
AllowedIPs = 192.168.30.3/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3>
AllowedIPs = 192.168.30.4/32

MS تي وائر گارڊ جي ترتيب (شامل ڪئي وئي /etc/config/network)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.2/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МС'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option route_allowed_ips '1'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - сервер
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option listen_port '51821'
        list addresses '192.168.31.1/24'
        option auto '1'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list allowed_ips '192.168.31.2'

config wireguard_wg1ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3

        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list allowed_ips '192.168.31.3'

MK2 تي وائر گارڊ جي ترتيب (شامل ڪئي وئي /etc/config/network)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.3/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК2'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - клиент
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list addresses '192.168.31.2/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

MK3 تي وائر گارڊ جي ترتيب (شامل ڪئي وئي /etc/config/network)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.4/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК3'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - клиент
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list addresses '192.168.31.3/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

ٻئي سطح جي VPN لاءِ بيان ڪيل ترتيبن ۾، مان WireGuard ڪلائنٽ کي پورٽ 51821 ڏانهن اشارو ڪريان ٿو. نظريي ۾، اهو ضروري ناهي، ڇو ته ڪلائنٽ ڪنهن به مفت غير مراعات يافته بندرگاهه کان ڪنيڪشن قائم ڪندو، پر مون ان کي ٺاهيو ته جيئن منع ڪرڻ ممڪن هجي. سڀ ايندڙ ڪنيڪشن سڀني روٽرز جي wg0 انٽرفيس تي آهن سواءِ انڪمنگ UDP ڪنيڪشن جي پورٽ 51821 ڏانهن.

مون کي اميد آهي ته مضمون ڪنهن لاء مفيد ٿيندو.

پي ايس انهي سان گڏ، مان پنهنجي اسڪرپٽ کي شيئر ڪرڻ چاهيان ٿو جيڪو مون کي موڪلي ٿو PUSH نوٽيفڪيشن منهنجي فون تي وائر پشر ايپليڪيشن ۾ جڏهن منهنجي نيٽ ورڪ تي هڪ نئين ڊوائيس ظاهر ٿئي ٿي. هتي اسڪرپٽ جي لنڪ آهي: github.com/r0ck3r/device_discover.

تازه: OpenVPN سرور ۽ ڪلائنٽ جي ترتيب

OpenVPN سرور

client-to-client

ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpn-server.crt
dh /etc/openvpn/server/dh.pem
key /etc/openvpn/server/vpn-server.key

dev tap
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
keepalive 10 60
proto tcp4
server-bridge 192.168.10.1 255.255.255.0 192.168.10.80 192.168.10.254
status /var/log/openvpn-status.log
verb 3
comp-lzo

OpenVPN ڪلائنٽ

client
tls-client
dev tap
proto tcp
remote VPS_IP 1194 # Change to your router's External IP
resolv-retry infinite
nobind

ca client/ca.crt
cert client/client.crt
key client/client.key
dh client/dh.pem

comp-lzo
persist-tun
persist-key
verb 3

مون سرٽيفڪيٽ ٺاهڻ لاءِ آسان-rsa استعمال ڪيو

جو ذريعو: www.habr.com

تبصرو شامل ڪريو