Нэг мөрөөр л ялгаатай хоёр профайл нэг хост дээр хоёр дахь клиент эхлэх тэр мөчид өөрөөр ажиллана. Нэг нь nobind агуулж, цөмийн өгсөн дурын локал портыг авна; нөгөө нь 1194-ийг нөөцөлж, хоёр дахь хувилбар нь аль хэдийн ашиглагдаж буй хаягтай үхнэ. Тэр мөр нь эх портыг хэн сонгохыг шийдэж, энэ нь эргээд профайл машины өөр зүйлтэй хамт оршин тогтнох эсэхийг шийднэ. Гурван асуулт үүнийг шийдэж, эхнийх нь бусад хоёрт хүрэхээс өмнө ихэнх профайлд хариулна.

nobind үнэндээ юуг алгасдаг вэ

Анхдагчаар клиент холбогдохын өмнө локал сокетыг уяж, профайл өөрөөр заагаагүй бол локал порт 1194 байна. nobind тэр нөөцийг арилгаж, стек холболтын үед ашиглагдаагүй порт хуваарилна. Энэ нь анхдагч биш, онцгой тохиолдол бөгөөд мөргүй клиент 1194-ийг барьж, тээглээгүй хоёр дахь хувилбар яг ийм учраас мөргөлддөг. Түгээсэн клиент профайлуудын ихэнх нь энэ шалтгаанаар зааварчилгааг агуулдаг бөгөөд жишээ файл ямар нэгэн зүйл хийх нь механизм анхдагчаар үүнийг хийхтэй ижил биш юм.

Өөрчлөгдөхгүй зүйл бол алсын тал. Сервер профайлын заасан газарт сонсож, тохиргооны очих порт нь очих порт хэвээр байна. Динамик эх порт таны өөрийн сокетын буцах хаягийг өөрчилдөг бөгөөд серверийн сокетод юу ч хийхгүй.

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

Үүнийг шийдэх гурван нөхцөл

Нэг асуулт бусад хоёрыг шийддэг тул ямар нэгэн зүйл засахын өмнө түүнд хариулна уу. Хэрэв түнш гадагш холбогддог бол үлдсэн асуултууд аль хэдийн гаргасан шийдвэрийг л нарийвчилна. Хэрэв энэ нь орж ирэх холболтыг хүлээж авбал локал портыг хэрхэн тохируулсан ч хүрэх боломжтой болохгүй.

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

Зам эх портоор шүүдэг үү? Нэг мэдэгдэж буй портод зориулж бичсэн хатуу дүрэм тодорхой локал портыг шаардаж, профайл аль дүрмийг хангаж байгааг бүртгэх ёстой. Ихэнх сүлжээ зөвхөн очих газраар шүүдэг тул энэ нөхцөл эхнийхээс ховор. Хэрэгжих газарт энэ нь динамик портын давуу талыг дарж байна.

Хэд хэдэн хувилбар хост хуваалцдаг уу? Нэг тогтмол порт тэдний хоёрт үйлчилж чадахгүй бөгөөд дахин эхлүүлсэн хувилбар 1194-ийг хаагдах төлөвт байгааг олж болно. Динамик портууд бусад юуг ч өөрчлөхгүйгээр тэр зөрчилгүй болгоно. Хэрэв та үүнд итгэлтэй хариулж чадахгүй бол тийм гэж үзээд цөмд сонгуулна уу.

Тээглэсэн порт зөв хариулт болох газар

Зарим сүлжээ очих газраас гадна эх портоор ч шүүдэг тул оператор зөвхөн нэг мэдэгдэж буй портоос урсгал нэвтрүүлэх дүрэм бичсэн байж болно. Тэгвэл локал портыг тээглэх нь зөв бөгөөд профайл хангаж буй дүрмийг нэрлэсэн тайлбар агуулах ёстой. Серверийн порттой тэгш хэмийн төлөө тээглэх нь шалтгаан болохгүй, учир нь тэр хоёр тоо бие биетэйгээ ямар ч хамаагүй. Хэрэв тээглэлт зөвхөн загварт байсан учраас оршиж байгаа бол устгана уу.

Эс бөгөөс тээглэсэн порт бэрхшээл худалдаж авна: нэг машин дээрх хоёр клиент хоёулаа 1194-ийг барьж чадахгүй, хоёр дахь нь профайлыг биш портыг заасан алдаатай бүтэлгүйтнэ. Хурдан дахин эхэлдэг контейнер ижил хананд мөргөлдөнө. Залруулга нь түгээсэн профайлуудад аль хэдийн байсан зааварчилгаа.

Сервер ба клиент тэгш хэмтэй биш

OpenVPN 2.6 гарын авлага ийг nobind ийн хажууд lport байрлуулж, энэ нь нэг мөрөнд байх үндэслэл юм: нэг сонголт цөм сонгоно гэж хэлдэг, нөгөө нь та сонгоно гэж хэлдэг. Динамик локал порт нь гадагш холбогддог түншид л ажиллана, учир нь хариу өгөх тал портыг урьдчилан мэдэж чадахгүй. Тиймээс клиент профайлыг сервер дээр хуулах нь хэнд ч хүрэх боломжгүй сонсогчийг үүсгэдэг.

Олон сүлжээний интерфэйс бүхий хост дээр хаяг нь портоос тусдаа шийдвэр. Тодорхой локал хаягийг уях, тодорхой портыг уях нь хоёр өөр тохиргоо бөгөөд хоёр дээд холбоостой сервер ихэвчлэн хоёуланг нь тээглэдэг. Хоёуланг нь тээглэсэн клиент ямар ч ашиггүйгээр ижил хатуу байдлыг хүлээсэн.

Дүгнэлт нь үүргийн тухай, аюулгүй байдлын тухай биш: гадагш холбогддог хүн өөрийн эх сурвалжийн талаар уян хатан байж болно, хариу өгдөг хүн болохгүй. Аль ч сонголт нөгөө тал таны хувийн байдлын талаар мэдэхийг өөрчлөхгүй. Тиймээс энэ зааварчилгаа клиент жишээнд гарч, сервер жишээнд бараг хэзээ ч гарахгүй.

Цөмийн сонгосон портыг шалгана уу

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

ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn

nobind клиент өндөр локал порт болон тохируулсан алсын портыг харуулж, энэ нь хүлээгдэж буй хэлбэр юм. Сервер өөрийн тохируулсан порт дээр сонсож буй сокетыг харуулж, хэрэв тэр сокет байхгүй бол профайл нь сонсогч биш эсвэл уяж чадаагүй. Урсгал байгаа ч пакет буцаж ирэхгүй бол профайлыг засахаас өмнө сонгосон эх портыг зам дахь аль ч портын шүүлтүүртэй харьцуулна уу. Нэг зүйлийг өөрчилж, дахин холбогдоод сокетыг дахин уншина уу.

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