Эхний сесс ялна: OpenVPN-ийн нэвтрэлтийг зайлуулахаас өмнө хязгаарлах
Дараагийн нэвтрэлтийг татгалзах нь хуучныг солихтой ижил биш. Шийдвэрийг ижил нэртэй зайлуулахаас өмнө гаргах ёстой, слот шалгалт нь атомын байх ёстой.
Нэг бүртгэлд нэг сесс зөвшөөрдөг бодлого хоёр дахь нэвтрэлт ирэх хүртэл шийдэгдсэн мэт харагдана. Хоёр үр дүн боломжтой: шинээр ирсэн нь одоогийн сессийг орлуулах, эсвэл одоогийн сесс слотыг хадгалж, шинээр ирсэн нь татгалзагдана. Зөвхөн хоёр дахь нь эхний сесс ялна гэсэн бодлого. Ихэнх хүмүүсийн сонгодог клиентийн тохиргоо зэрэгцээ ажиллагааг идэвхжүүлдэг тул энэ үр дүнг өгдөггүй.
Нэг тохиргооны ард хоёр гэрээ нуугдаж байна
Зэрэгцээ ажиллагаа унтраалттай үед ижил гэрчилгээний нэртэй хоёр дахь холболт ажиллаж буй сессийг шахаж гаргаж болно. Зэрэгцээ ажиллагааг асаавал олон сессийг нэгэн зэрэг зөвшөөрдөг бөгөөд энэ нь хязгаарлалтын эсрэг юм. Аль ч төлөв татгалзах бодлого биш тул шийдвэрийг огт өөр газарт гаргах ёстой.
Ямар нэгэн зүйл хэрэгжүүлэхийн өмнө гэрээг бичээрэй: хэнийг татгалзах, ямар нотолгоо одоогийн сессийг таних, цэвэр салгалтгүйгээр сесс үхвэл юу болох. Хэн ч ингэж томьёолоогүй бодлогыг дараа нь шалгах боломжгүй.
Зайлуулалт нь таны холболтын дэгээнээс өмнө болдог
2.6 серверийн кодын замд зэрэгцээ ажиллагаа унтраалттай үед шинэ клиентийн эрт бэлтгэл ижил нэртэй одоо байгаа хувилбаруудыг устгадаг. Энэ устгал нь холболтын боловсруулагчдын гинжин хэлхээ ажиллахаас өмнө болдог. Тиймээс давхардлыг анзаарч алдаа буцаадаг скрипт нь одоогийн сессийг аль хэдийн хаясны дараа шинээр ирсэнийг татгалздаг - бодлогын урьдчилан сэргийлэх ёстой байсан үр дүн яг энэ. Upstream хэрэгжүүлэлт дэх callback-ийн дараалал таны бүтээцэд итгэх цорын ганц хариулт.
| Stage | Who can still refuse | Effect on the incumbent |
|---|---|---|
| Certificate check | Server trust configuration | None |
| Authentication decision | The authentication controller | None, because establishment has not run |
| Connect handler | A profile script | Already evicted in the same-name case |
| Post-establishment | Status tooling, monitoring | Both sessions already exist or one is gone |
Төлөвийн файлыг санал асуулга хийх нь бас хаалга биш. Хамт ирсэн хоёр оролдлого хоёулаа хоосон слотыг харж болно, нэг нь баталгаажуулахаас өмнө, хоёулаа үргэлжилнэ.
Шийдвэрийг баталгаажуулалт руу шилжүүлээрэй
Гэрчилгээг шалгасны дараа удирдлагын интерфейс баталгаажуулалтын шийдвэрийг хүлээж авч болно. Энэ зохион байгуулалтад хянагч нь ажиглагч биш: холбогдож буй клиент бүрийн хувилбарыг хүлээн авч, тэр хувилбар үргэлжлүүлж болох эсэхийг хариулна. Хариулт нь тогтоохоос өмнө ирдэг тул татгалзалт одоогийн сессийг хөндөхгүй орхино. Мөн суваг салгалтын талаар мэдээлдэг бөгөөд хянагч слот хууль ёсоор чөлөөлөгдсөнийг ингэж мэддэг.
Шинэ хувилбар бүр энэ хаалгаар орох ёстой, дахин холболт болон асуултгүйгээр дахин баталгаажуулдаг аливаа зам орно. Зарим хувилбар хэзээ ч хүрдэггүй хаалга юуг ч хамгаалахгүй бөгөөд хэн нэгэн тойрч гарах замыг турших хүртэл энэ орхигдол үл үзэгдэх болно.
Токенууд хаалганы хажуугаар өнгөрч болно
Токен олгогдсоны дараа сервер түүнийг дотоодоос баталгаажуулж, тухайн холболтын гадаад баталгаажуулалтыг алгасаж болно. Удирдлагын дуудлага хэзээ ч болохгүй тул зөвхөн тэнд хэрэгжүүлсэн слот шалгалт шинэ хувилбарыг хэзээ ч хардаггүй. Энэ зан төлөв хэрэглэгчдэд тав тух, зэрэгцээ ажиллагааны бодлогод нүх юм. Токеноор баталгаажсан холболтыг адилтгах эрх бүхий шалгалтаар дамжуул, эсвэл бодлого холболт бүрт шийдвэр шаарддаг бол токены замыг унтраа.
Үүнийг токен бүрийг болзолгүй хүлээн авч нөхөж болохгүй. Хугацаа дууссан эсвэл хүчингүй токен бүрэн бүтэлгүйтэх ёстой бөгөөд бусад бүхний адил тэр шийдвэрийн цэгээр бүтэлгүйтэх ёстой.
Захиалгыг хувилбарт холбо, хаягт биш
Хаяг нь сул таних тэмдэг: нэг зөөврийн компьютерээс дахин холбогдох нь өөр хаягаас ирж болно, хуулсан итгэмжлэл нь мөн хаягаас ирж болно. Захиалгыг серверийн олгосон клиентийн хувилбарт холбо, ингэснээр аль хэдийн хүлээн авсан хувилбарын дахин баталгаажуулалт эзэмшигчээр танигдана. Шинэ хувилбарын танигч ижил токеныг танилцуулсан ч эхний ялна гэсэн шийдвэрээр өөрийн слотыг авах ёстой.
Зөвхөн бүтэлгүйтсэн оролдлогын захиалгыг чөлөөл. Хуучин оролдлогын хожуу салгалтын үйл явдал шинэ эзэмшигчийн слотыг устгах ёсгүй, тиймээс чөлөөлөлт нь бүртгэлийг биш хувилбарыг нэрлэдэг. Хянагчийг дахин эхлүүлсний дараа хэнийг ч хүлээн авахаас өмнө амьд сессүүдийг тохируулж, бүртгэлд үйлчилдэг гарц бүрт ижил дүрмийг хэрэгжүүл.
Үнэхээр хуучирсан слотыг хэрхэн сэргээхийг тусад нь шийд. Администраторт түүнийг цэвэрлэх баримтжуулсан арга хэрэгтэй бөгөөд тэр зам дахин холбогдох товчийг дарахад хүрэх боломжгүй байх ёстой.
Чухал хосуудыг туршаарай: бараг нэгэн зэрэг хоёр нэвтрэлт, цэвэр салгалтын дараах дахин холболт, одоогийн сессийн дахин баталгаажуулалт, татгалзсан шинээр ирсэн, хянагчийн дахин эхлэл. Аль ч тохиолдолд одоогийн сесс ашиглах боломжтой хэвээр байх ёстой, шинээр ирсэн нь бусад бүртгэлд хохирол учруулахгүйгээр татгалзагдах ёстой.