Роутер VPN-ийг өөрөө дуусгадаг ч, хуучин дамжуулалтын дүрэм ижил UDP портыг LAN дахь машин руу илгэсээр байна. Тэдгээрийн зөвхөн нэг нь л жинхэнэ төгсгөлийн цэг байж чадна, цөм нь тэдний хооронд шийдвэр гаргахгүй. Очих газрын орчуулга нь локал үйлчилгээнээс асуухаас өмнө пакетыг дахин бичдэг тул VPN процесс өөр газар илгээгдсэн урсгалыг хүлээдэг. Даалгавар нь порт хэнд хамаарахыг шийдэх, дараа нь дүрмүүдийг зохицуулах юм.

Нэг порт, хоёр шаардсан эзэмшигч

Роутерын дотор ажиллаж буй VPN серверт өөрийн сокет руу хөтлөх орж ирэх зөвшөөрөл хэрэгтэй. Ижил портын очих газрын NAT бичлэг огт өөр газар хөтөлдөг: LAN хаяг ба дамжуулалтын шийдвэр. Эдгээр нь өөр өөр бүртгэл, өөр өөр алдааны горим бүхий тусдаа төгсгөлийн цэгүүд юм. Ердийн шинж нь нэг хаягийн гэр бүл ажиллаж, нөгөө нь ажиллахгүй байх нь юм, учир нь үлдсэн бичлэг нэг гэр бүлд зориулагдсан бөгөөд хэзээ ч дахин хянагдаагүй.

Засварын өмнө шаардлагыг бичнэ үү: гэр бүл, гадаад хаяг, тээвэр, порт болон орчуулсан зорилт.

Орчуулга локал шалгалтаас өмнө явагдана

Очих газрын NAT нь цөм локал хүргэлт ба дамжуулалтын хооронд сонголт хийхээс өмнө, чиглүүлэлтийн өмнөх үе шатанд пакетын зорилтыг өөрчилдөг. Зорилт LAN хост болмогц пакет дамжуулалтын замд ордог. Роутерын өөрийн сокетын оролтын дүрмүүдийг хэзээ ч авч үздэггүй, тиймээс клиент хүлээж байх хооронд VPN бүртгэл хоосон хэвээр байна.

Intended local entry:
WAN UDP 1194 -> router local socket -> input path

Conflicting old entry:
WAN UDP 1194 -> DNAT 192.168.50.10:1194 -> forward path

Энэ дараалал нь бүх механизм бөгөөд төхөөрөмжийн интерфейсүүд үүнийг өөрчлөхгүйгээр чагт хайрцагны цаана нуудаг. Пакет аль замаар явахыг очих газрын эзэмшигч л шийдсээр байна.

Хэрэв LAN хост нь зорьсон төгсгөлийн цэг бол дамжуулалт зөв бөгөөд роутер мөн тэр порт дээр сонсох ёсгүй.

Нэг зураглалыг үлдээж, нөгөөг устга

Тэр порт ба гэр бүлийн NAT бичлэгүүдийг жагсааж, үлдэгчийг сонгоно уу:

sudo iptables -t nat -S | grep 1194
sudo ss -lunp | grep :1194

Ижил дугаартай TCP бичлэг нь UDP-ийн алдаанд хамаагүй бөгөөд тэдгээрийг нэг объект гэж үзэх нь буруу дүрмийг устгахад хүргэдэг. Локал сокет ялах ёстой үед зөрчилдөж буй зураглалын эзэмшигч тэр нэг бичлэгийг устгах эсвэл дахин бичнэ, роутерын өөрийн портын орж ирэх зөвшөөрөл байрандаа үлдэнэ. Холбоогүй дамжуулалт, удирдлагын зам, дүрмийн багцын хуулбар бүгд өөрчлөлтийг даван туулах ёстой.

Хэрэв VPN тусдаа хост дээр амьдардаг бол дамжуулалт нь зөв объект юм. Контейнер эсвэл виртуал машин дахь үйлчилгээнд хайрцгийг роутер гэж нэрлэсэн ч нийтэлсэн порт хэрэгтэй байж болно, тиймээс корпус дээрх шошгыг биш, сокет ба түүний нэрийн орон зайг дагаарай.

Эзэмшигчийг гаднаас баталгаажуулна уу

Гэр бүл бүрийг тусад нь шалгана уу, учир нь роутер дээр дуусах IPv6 холболт нь хуучин дүрмийн дахин чиглүүлж буй IPv4 холболтын талаар юу ч хэлэхгүй. Аль төгсгөлийн цэг хариу үйлдсэнийг харахын тулд хүлээн авагч үйлчилгээний бүртгэлийг уншиж, клиентийн амжилтын мэдээг сул нотолгоо гэж үзээрэй. Утга учиртай туршилтад шинэ урсгал шаардлагатай. Гадаад хостноос nc -zvu 203.0.113.7 1194 ашиглан проб илгээж, ялагчийн бүртгэлийг journalctl -u openvpn@server -n 20 ашиглан уншина уу. Роутерын сонсогч холболтыг өөрөө бүртгэдэг бол LAN хост үүнийг өөрийн үйлчилгээнд бүртгэдэг.

Холболтын хяналт нь одоо байгаа урсгалуудыг анхны зураглал дээр нь үлдээдэг тул тогтсон сессия таны дөнгөж зассан дүрмээс илүү удаан амьдарч чадна.

Зорьсон төгсгөлийн цэг өөрийн ердийн таних шалгалтаар хариулсны дараа туннелийн цаана байгаа хувийн нөөцийг шалгана уу. Гадаад сонсогчид хүрэх нь зөвхөн эхний алхам; дотоод чиглүүлэлт ба програмын зөвшөөрөл нь тусдаа үр дүн юм.

Холбоотой нийтлэлүүд