OpenVPN push-peer-info: хандалт өгөхгүйгээр клиентүүдийг шошголох
UV_ талбар баталгаажсан туннелээр явдаг ч утга нь клиентийн мэдэгдэл хэвээр байна. Үүнийг холбож, юу ирснийг шалгаж, зөвшөөрлийг сервер талд байлгаарай.
Байршуулалтын шошгууд нь хүмүүс энэ боломжийг ашиглах нийтлэг шалтгаан юм: холболт бүр сайт эсвэл дүр гэх мэт зүйлийг авч явах ёстой бөгөөд сервер нь хоёр дахь итгэмжлэлийн форматыг зохиохгүйгээр түүнийг унших ёстой. Нийгэмлэгийн OpenVPN-д энэ механизм аль хэдийн бий бөгөөд жижиг юм. Өвдөлттэй хэсэг нь хүлээлт юм. Клиентийн профайлд энгийн хувьсагч тохируулах нь серверт юу ч хийдэггүй, ирсэн утга нь клиент түүнийг илгээснийг л батална.
Энэ бол ажиллаж буй зам, юу үнэхээр ирснийг харуулах баталгаажуулалтын алхам, хагас тохируулсан кукиг үлдээдэггүй буцаалтын гарын авлага юм. Энд юу ч шинэ гэрчилгээ, шинэ залгаас эсвэл протоколын өргөтгөл шаарддаггүй.
Хувьсагчийг тохируулж замыг идэвхжүүлнэ
Клиентийн профайлд хоёр мөр ажлыг хийдэг бөгөөд хоёулаа шаардлагатай. Эхнийхгүйгээр илгээх зүйл байхгүй; хоёр дахьгүйгээр клиент хамтрагчийн мэдээллийг огт санал болгодоггүй. Дараалал хамаагүй бөгөөд үүнийг мэдэх нь зүйтэй, учир нь хоёр мөр ихэвчлэн үүсгэсэн профайлын өөр өөр хэсэгт ордог. Чухал зүйл нь клиент уншихаас өмнө профайлыг дахин бичдэг бүхнээс хоёулаа амьд үлдэх ёстой.
setenv UV_DEPLOY field-support
push-peer-info
UV_ угтвар нь чимэглэл биш. Энгийн DEPLOY хувьсагч нь клиентийн процесс дотор локал байх бөгөөд хэзээ ч дамжуулагдахгүй, харин угтвартай хэлбэр нь протоколын хэрэглэгчийн тодорхойлсон талбаруудад зориулж хадгалдаг нэрийн орон зай юм. Батлагдсан профайлын үлдсэн хэсгийг хөндөхгүй байлгаж, байршуулахаас өмнө байршуулж буй клиентийн бүтэц хоёр зааврыг хоёуланг нь дэмждэг эсэхийг шалгаарай.
Нэг практик шалгалт эцэст нь биш, энд хамаарна: заавар нь клиентийн хоёртын файлд хүрч, ямар нэг боодол үүнийг залгихгүй байгаа эсэхийг шалгаарай. Өөрийн командын мөрийг үүсгэдэг график клиент эсвэл хадгалсан профайлыг дахин ачаалдаг удирдлагын интерфейс танихгүй мөрүүдийг хаяж болно. Хэрэв сервер юу ч харж чадахгүй бол энэ нь хамгийн түрүүнд харах газар юм.
Талбарыг серверийн кукаас уншина
Серверийн талд хүлээн авсан хамтрагчийн мэдээллийг баталгаажуулж, холболтын ажлын урсгалын орчинд оруулдаг бөгөөд энэ нь таны талаас протоколын ажилгүйгээр кукаас унших боломжтой болгодог. Серверт хяналтын сувгийг шинжлэх эсвэл таны өмнөөс ямар нэг зүйл хадгалах шаардлагагүй; холболт тогтох үед утга зүгээр л байдаг. Баталгаажсан нэрийн хажууд шошгыг бүртгэдэг хамгийн бага client-connect скрипт иймэрхүү харагдана.
#!/bin/sh
# /etc/openvpn/server/hooks/label.sh
printf '%s %s\n' "$common_name" "${UV_DEPLOY:-unset}" \
>> /var/log/openvpn/deploy-labels.log
Хувьсагчийг логийг шинжлэхийн оронд орчны замаар уншиж, түүнд үргэлж өгөгдмөл утга өгөөрэй. ${UV_DEPLOY:-unset} талбарыг хэзээ ч илгээдэггүй клиентүүдэд скриптийг ажиллах чадвартай байлгадаг бөгөөд энэ нь үе шаттай байршуулалтын үеийн хэвийн байдал юм. Нэрийг олохын тулд бүх орчныг логид асгаж болохгүй; тэнд шошгоноос хамаагүй илүү зүйл байдаг, хадгалахаар төлөвлөөгүй утгуудыг оролцуулан.
Скриптийг гараар ажиллуулбал бүх зүйлд unset гэж мэдээлнэ, учир нь гарын бүрхүүл холболтын орчинг авч явдаггүй. Энэ нь скриптийн алдаа биш бөгөөд талбар байхгүй гэсэн нотолгоо ч биш. Үүнийг хувьсагч байдаг цорын ганц нөхцөл болох бодит холболтоор шалгаарай.
Юу үнэхээр ирснийг шалгана
Нэг клиентийг шошготой, нөгөөг нь шошгогүй холбож, дараа нь файлыг уншина. Хос нь шалгалт: нэг мөр утгыг, нөгөө нь өгөгдмөл утгыг авч явах ёстой бөгөөд хоёулаа таны хүлээж буй ижил баталгаажсан таних тэмдгийг нэрлэх ёстой.
tail -n 5 /var/log/openvpn/deploy-labels.log
# field-support deployed-client-07
# unset legacy-laptop-02
Тэдгээр тайлбарын мөрүүд нь гаралтын хэлбэр бөгөөд таны серверийн хуулбар биш; өөрийн файлыг уншина уу. Хэрэв хоёр дахь клиент мөн утга харуулж байвал хувьсагч орчны өөр газарт тохируулагдсан бөгөөд та хамтрагчийн талбарыг биш, хуучирсан тохиргоог уншиж байна.
Холболтын серверийн логийг мөн шалгаарай. Хамтрагчийн мэдээлэл тэнд гарч болох бөгөөд энэ нь дибаг хийхэд тохиромжтой, утгуудыг уйтгартай байлгах шалтгаан юм: хүмүүсийн нэргүй, тасалбарын дугааргүй, логийг уншигч харвал танд муухай санагдах зүйлгүй.
Шошгыг мэдэгдэл гэж үзэж, таних тэмдэг гэж бүү үз
Клиентийн профайлыг засах боломжтой хэн ч шошгыг өөрчилж чадна, туннель баталгаажсан байх нь шошгыг эрх мэдэлтэй болгодоггүй. Тээвэр нь утгыг замд хамгаалдаг; энэ нь мэдэгдлийг гэрчилдэггүй. Зөвшөөрөл нь баталгаажсан таних тэмдэг болон серверийн эзэмшдэг бүртгэлийн бичлэгт хамаарах хэвээр бөгөөд шаардлагатай үед шошгыг тэр бичлэгтэй харьцуулдаг.
Энэ ялгаа нь шошгыг хаана ашиглаж болохыг тодорхойлно. Сайн хэрэглээ бол сессийг зөв лог файл руу чиглүүлэх, хяналтын самбарт харуулах бүлэг сонгох, эсвэл хүн дараа нь олж чадахын тулд дэмжлэгийн сессийг шошголох юм. Муу хэрэглээ бол төхөөрөмжийг дэд сүлжээнд оруулах, галт ханын бодлого сонгох, эсвэл сесс ямар харилцагчийн өгөгдлийг уншиж болохыг шийдэх юм.
Утгыг зам, асуулга эсвэл бүрхүүлийн команд руу хүрэхээс өмнө баталгаажуулна уу. Хүлээгдэж буй мөрүүдийн зөвшөөрөгдсөн жагсаалт байршуулалтын шошгонд хангалттай бөгөөд юу ч зарцуулдаггүй. Хамтрагчийн өгсөн мөрийг бүрхүүлийн командын мөрөнд хэзээ ч бүү оруул, хадгалсан аливаа ажиглалтыг дараагийн клиент дахин ашиглах туннелийн хаяг руу биш, сессээр хязгаарла.
case "${UV_DEPLOY:-}" in
field-support|field-qa|lab) : ;;
*) UV_DEPLOY=unknown ;;
esac
Цэвэрхэн буцаана
Боломжийг хасах нь хоёр устгалт ба нэг шалгалт юм. Клиентийн профайлаас setenv ба push-peer-info мөрүүдийг хасч, дараа нь сервер дээрх куки болон түүний лог зорилтыг хасна эсвэл идэвхгүй болгоно.
grep -rn 'UV_DEPLOY\|push-peer-info' /etc/openvpn/
tail -n 3 /var/log/openvpn/deploy-labels.log
Үүний дараа нэг клиентийг дахин холбож, лог мөр гарч эхлэхээ болихыг баталгаажуулаарай. Профайл өөрчлөгдсөний дараа ч ажилласаар байгаа куки нь ихэвчлэн туршилтын төхөөрөмж дээр байршуулагдсан хоёр дахь профайл байдаг бөгөөд үүнийг одоо олох нь аудитын үеэр олохоос хямд.
Эцэст нь үлдэх зүйл нь гарал үүсэл нь баримтлагдсан сессийн мета өгөгдлийн жижиг, хязгаарлагдмал хэсэг юм: клиент үүнийг мэдэгдэж, сервер үүнийг бүртгэдэг бөгөөд хандалтын талаар юу ч үүнээс хамаардаггүй. Энэ нь боломжийн ашигтай хувилбар бөгөөд тэнд хүрэхийн тулд шинэ итгэмжлэл шаардлагагүй.