Сүлжээг нэг L2 сүлжээнд нэгтгэхийн тулд OpenVPN-ээс WireGuard руу шилжиж байна

Сүлжээг нэг L2 сүлжээнд нэгтгэхийн тулд OpenVPN-ээс WireGuard руу шилжиж байна

Би газарзүйн хувьд алслагдсан гурван орон сууцны сүлжээг нэгтгэж, OpenWRT чиглүүлэгчийг гарц болгон ашиглаж, нэг нийтлэг сүлжээнд оруулсан туршлагаа хуваалцахыг хүсч байна. Бүх сүлжээний зангилаа нэг дэд сүлжээнд байх үед L3-ыг дэд сүлжээний чиглүүлэлттэй, L2-ийг гүүртэй холбох аргыг сонгохдоо тохируулахад илүү төвөгтэй боловч илүү их боломжийг олгодог хоёр дахь аргыг илүүд үздэг. Wake-on-Lan болон DLNA-г үүсгэн байгуулж буй сүлжээнд технологийн ил тод хэрэглээг төлөвлөсөн.

1-р хэсэг: Суурь мэдээлэл

Энэ даалгаврыг хэрэгжүүлэх протокол болгон OpenVPN-ийг анх сонгосон, учир нь нэгдүгээрт, энэ нь гүүрэн дээр ямар ч асуудалгүйгээр нэмж болох цорго төхөөрөмж үүсгэж чаддаг, хоёрдугаарт, OpenVPN нь TCP протоколоор ажиллахыг дэмждэг бөгөөд энэ нь бас чухал байсан, учир нь байхгүй байсан. Эдгээр орон сууц нь тусгай IP хаягтай байсан бөгөөд миний үйлчилгээ үзүүлэгч ямар нэг шалтгаанаар сүлжээнээсээ ирж буй UDP холболтыг блоклодог бол TCP протокол нь VPN серверийн портыг SSH ашиглан түрээсэлсэн VPS рүү дамжуулах боломжийг надад олгосон тул би STUN-г ашиглах боломжгүй болсон. Тиймээ, өгөгдөл нь хоёр удаа шифрлэгдсэн тул энэ арга нь ихээхэн ачаалал өгдөг, гэхдээ би VPS-ийг хувийн сүлжээндээ нэвтрүүлэхийг хүсээгүй, учир нь гуравдагч этгээд үүнийг хянах эрсдэлтэй хэвээр байсан тул ийм төхөөрөмжтэй байх болно. Миний гэрийн сүлжээнд маш их тааламжгүй байсан бөгөөд аюулгүй байдлын төлбөрийг их хэмжээний зардал гаргахаар шийдсэн.

Серверийг байрлуулахаар төлөвлөж байсан чиглүүлэгч дээрх портыг дамжуулахын тулд sshtunnel програмыг ашигласан. Би түүний тохиргооны нарийн ширийнийг тайлбарлахгүй - энэ нь маш амархан хийгдсэн, би түүний даалгавар бол TCP порт 1194-ийг чиглүүлэгчээс VPS руу дамжуулах явдал байсныг тэмдэглэх болно. Дараа нь OpenVPN серверийг br-lan гүүртэй холбосон tap0 төхөөрөмж дээр тохируулсан. Зөөврийн компьютерээс шинээр үүсгэсэн сервертэй холболтыг шалгасны дараа порт дамжуулах санаа үндэслэлтэй болох нь тодорхой болсон бөгөөд миний зөөврийн компьютер нь чиглүүлэгчийн сүлжээний гишүүн болсон хэдий ч энэ нь бие махбодийн хувьд ороогүй байна.

Зөвхөн нэг жижиг зүйл л үлдлээ: 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 клиентүүдийг чиглүүлэгчид тохируулж, хоёуланд нь tap0 төхөөрөмжийг br-lan гүүрэнд нэмсэн. Энэ үе шатанд бүх гурван сүлжээ бие биенээ харж, нэг хүн шиг ажиллах боломжтой болсон тул бүх зүйл сайхан байсан. Гэсэн хэдий ч тийм ч таатай биш зүйл гарч ирэв: заримдаа төхөөрөмжүүд нь чиглүүлэгчээсээ бус IP хаягийг хүлээн авах боломжтой бөгөөд үүнээс үүдэн гарах бүх үр дагаварт хүргэдэг. Зарим шалтгааны улмаас нэг орон сууцны чиглүүлэгчид DHCPDISCOVER-д цаг тухайд нь хариу өгөх цаг байгаагүй бөгөөд төхөөрөмж нь зориулаагүй хаягийг хүлээн авсан. Ийм хүсэлтийг чиглүүлэгч бүр дээр tap0-д шүүж үзэх хэрэгтэйг би ойлгосон боловч 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-г танилцуулж байна

Сүүлийн үед Интернет дэх хүмүүс WireGuard-ийн талаар ярих нь ихсэж, түүний тохиргооны энгийн байдал, дамжуулах өндөр хурд, харьцангуй аюулгүй байдлын бага ping зэргийг биширдэг. Энэ талаар илүү их мэдээлэл хайж байгаа нь гүүрний гишүүнээр ажиллах эсвэл TCP протокол дээр ажиллахыг дэмжээгүй нь тодорхой болсон бөгөөд энэ нь надад OpenVPN-ээс өөр хувилбар байхгүй гэж бодоход хүргэсэн. Тиймээс би WireGuard-тай танилцахаа хойшлуулсан.

Хэдхэн хоногийн өмнө 5.6 хувилбараас эхлэн WireGuard-г Линуксийн цөмд багтаах болно гэсэн мэдээлэл мэдээллийн технологитой холбоотой ямар нэгэн байдлаар тархсан. Мэдээллийн нийтлэлүүд урьдын адил WireGuard-ийг магтсан. Би дахин хуучин OpenVPN-ийг солих арга замыг эрэлхийлэв. Энэ удаад би таарсан энэ нийтлэл. Энэ нь GRE ашиглан L3 дээр Ethernet туннель үүсгэх тухай ярьсан. Энэ нийтлэл надад итгэл найдвар төрүүлэв. UDP протоколтой юу хийх нь тодорхойгүй хэвээр байв. Хайлтын үр дүнд намайг UDP портыг дамжуулахын тулд socat-ийг SSH туннелтэй хамт ашиглах тухай нийтлэлүүд рүү хөтөлсөн боловч энэ арга нь зөвхөн нэг холболтын горимд ажилладаг, өөрөөр хэлбэл хэд хэдэн VPN клиентүүдийн ажил боломжгүй гэдгийг тэмдэглэв. Би VPN серверийг VPS дээр суулгаж, үйлчлүүлэгчдэд зориулсан GRE-г тохируулах санааг олсон боловч GRE нь шифрлэлтийг дэмждэггүй бөгөөд энэ нь гуравдагч этгээд серверт нэвтрэх эрхийг олж авахад хүргэнэ. , миний сүлжээ хоорондын бүх урсгал тэдний гарт байх болно, энэ нь надад огт тохирохгүй байсан.

Дараах схемийг ашиглан VPN-ээр VPN ашиглан дахин шифрлэх шийдвэрийг дахин гаргав.

XNUMX-р түвшний VPN:
VPS Энэ нь сервер 192.168.30.1 дотоод хаягтай
MC Энэ нь үйлчлүүлэгч 192.168.30.2 дотоод хаягтай VPS
MK2 Энэ нь үйлчлүүлэгч 192.168.30.3 дотоод хаягтай VPS
MK3 Энэ нь үйлчлүүлэгч 192.168.30.4 дотоод хаягтай VPS

Хоёр дахь түвшний VPN:
MC Энэ нь сервер гадаад хаяг 192.168.30.2, дотоод 192.168.31.1
MK2 Энэ нь үйлчлүүлэгч MC 192.168.30.2 хаягтай ба дотоод IP 192.168.31.2
MK3 Энэ нь үйлчлүүлэгч MC 192.168.30.2 хаягтай ба дотоод IP 192.168.31.3

* MC - 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 клиент нууц үг асуухгүйгээр хөлддөг. Би энэ компьютерт 22-р портын telnet-ээр холбогдохыг оролдож байгаа бөгөөд холболт хийгдэж байна, SSH сервер хариу өгч байна гэсэн мөрийг харж байна, гэхдээ ямар нэг шалтгааны улмаас энэ нь намайг нэвтрэхийг шаардахгүй байна. in.

$ telnet 192.168.10.110 22
SSH-2.0-OpenSSH_8.1

Би үүнтэй VNC-ээр холбогдож хар дэлгэцийг харах гэж оролдож байна. Асуудал нь алсын компьютерт байгаа гэдэгт би өөрийгөө итгүүлж байна, учир нь би энэ байрнаас чиглүүлэгч рүү дотоод хаягийг ашиглан хялбархан холбогдож чадна. Гэсэн хэдий ч би энэ компьютерийн SSH руу чиглүүлэгчээр холбогдохоор шийдсэн бөгөөд холболт амжилттай болж, алсын компьютер хэвийн ажиллаж байгаа боловч миний компьютерт холбогдож чадахгүй байгааг хараад гайхаж байна.

Би grelan0 төхөөрөмжийг гүүрнээс салгаж, 2-р байрны чиглүүлэгч дээр OpenVPN-г ажиллуулж, сүлжээ дахин санаснаар ажиллаж, холболт тасрахгүй байгаа эсэхийг шалгаарай. Хайлтын үр дүнд би хүмүүс ижил асуудлын талаар гомдоллодог, MTU-г өсгөхийг зөвлөдөг форумуудтай таарч байна. Хэлэхээс өмнө хийсэн. Гэсэн хэдий ч MTU-г хангалттай өндөр болгох хүртэл - gretap төхөөрөмжүүдийн хувьд 7000, эсвэл TCP холболтууд буурсан эсвэл дамжуулах хурд бага байсан. Gretap-ийн MTU өндөр учир Layer 8000 болон Layer 7500 WireGuard холболтын MTU-г тус тус XNUMX ба XNUMX болгож тохируулсан.

Би 3-р байрнаас чиглүүлэгч дээр ижил төстэй тохиргоо хийсэн ба цорын ганц ялгаа нь grelan1 нэртэй хоёр дахь гретап интерфэйсийг серверийн чиглүүлэгч дээр нэмсэн бөгөөд энэ нь мөн br-lan bridge дээр нэмэгдсэн.

Бүх зүйл ажиллаж байна. Одоо та gretap угсралтыг эхлүүлэх боломжтой. Үүний тулд:

Би эдгээр мөрүүдийг 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-ийг тохируулсан байсан) WireGuard ямар нэг шалтгаанаар төгсгөлийн цэгийн маршрут үүсгэж байгааг олж мэдсэн боловч энэ нь буруу байсан. Тиймээс 192.168.30.2-ын хувьд маршрутын хүснэгт нь pppoe-wan интерфейсээр, өөрөөр хэлбэл Интернетээр дамжих замыг зааж өгсөн боловч түүнд хүрэх замыг wg0 интерфэйсээр дамжуулсан байх ёстой. Энэ маршрутыг устгасны дараа холболт сэргээгдсэн. Би WireGuard-г эдгээр маршрутыг үүсгэхгүй байхыг албадах зааврыг хаанаас ч олж чадсангүй. Түүгээр ч барахгүй энэ нь OpenWRT эсвэл WireGuard-ийн онцлог эсэхийг би ойлгосонгүй. Энэ асуудлыг удаан хугацаанд шийдвэрлэх шаардлагагүйгээр би энэ замыг устгасан хугацаатай скрипт дээр хоёр чиглүүлэгчид нэг мөр нэмсэн:

route del 192.168.30.2

Дуусгах

Би OpenVPN-ээс бүрэн татгалзаж амжаагүй байгаа, учир нь би заримдаа зөөврийн компьютер эсвэл утаснаасаа шинэ сүлжээнд холбогдох шаардлагатай болдог бөгөөд тэдгээрт зуучлах төхөөрөмж суулгах нь ерөнхийдөө боломжгүй байдаг, гэхдээ би хурдаараа давуу талтай болсон. Орон сууцны хооронд өгөгдөл дамжуулах, жишээлбэл VNC ашиглах нь тохиромжгүй болсон. Ping бага зэрэг буурсан боловч илүү тогтвортой болсон:

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

Ойролцоогоор 61.5 мс-ийн VPS-ийн өндөр ping нь илүү их нөлөөлдөг

Гэсэн хэдий ч хурд нь мэдэгдэхүйц нэмэгдсэн. Тиймээс, сервер чиглүүлэгчтэй орон сууцанд би интернетийн холболтын хурд 30 Мбит / сек, бусад орон сууцанд 5 Мбит / сек байна. Үүний зэрэгцээ, OpenVPN-г ашиглаж байхдаа би iperf-ийн заалтын дагуу сүлжээнүүдийн хооронд өгөгдөл дамжуулах хурд 3,8 Мбит/сек-ээс ихгүй байсан бол WireGuard үүнийг ижил 5 Мбит/сек хүртэл "өсгөв".

VPS дээрх WireGuard тохиргоо[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 дээрх WireGuard тохиргоо (/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 дээрх WireGuard тохиргоо (/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 дээрх WireGuard тохиргоо (/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 порт руу чиглүүлдэг. Онолын хувьд энэ нь шаардлагагүй, учир нь үйлчлүүлэгч ямар ч үнэгүй эрхгүй портоос холболт үүсгэх болно, гэхдээ би үүнийг хориглох боломжтой болгосон. 0 порт руу ирж буй UDP холболтоос бусад бүх чиглүүлэгчийн wg51821 интерфейс дээрх бүх ирж буй холболтууд.

Нийтлэл хэн нэгэнд хэрэг болно гэж найдаж байна.

PS Мөн миний сүлжээнд шинэ төхөөрөмж гарч ирэх үед WirePusher программ дээр миний утас руу PUSH мэдэгдэл илгээдэг скриптээ хуваалцахыг хүсч байна. Скриптийн холбоос энд байна: github.com/r0ck3r/device_discover.

UPDATE: 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

Би гэрчилгээ үүсгэхийн тулд easy-rsa ашигласан

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх