Usbip-д суурилсан хэрэглэгчдийн хооронд криптограф токеныг сүлжээгээр хуваалцах

Итгэлцлийн үйлчилгээний талаархи хууль тогтоомжид өөрчлөлт орсонтой холбогдуулан ("Цахим итгэлцлийн үйлчилгээний тухай" Украин) аж ахуйн нэгж токен дээр байрлах түлхүүрүүдтэй ажиллах хэд хэдэн хэлтэс шаардлагатай байна (одоогоор техник хангамжийн түлхүүрүүдийн тоо нээлттэй хэвээр байна. ).

Хамгийн бага зардалтай (үнэгүй) хэрэгсэл болохын хувьд сонголт нь шууд унав usbip. Нийтлэлийн ачаар Ubintu 18.04 дээрх сервер ажиллаж эхэлсэн USB/IP тайлах хэд хэдэн флаш диск дээр амжилттай туршиж үзсэн (тухайн үед жетон байхгүй байсан). Тухайн үед монополь өмчлөхөөс (хэрэглэгчийн захиалга) өөр ямар ч онцгой асуудал илрээгүй. Хэд хэдэн хэрэглэгчдэд (хамгийн багадаа хоёр) хандалтыг зохион байгуулахын тулд тэдний хандалтыг цаг хугацаанд нь хувааж, ээлжлэн ажиллахыг албадах нь тодорхой байна.

Асуулт нь: Бүх зүйл хүн бүрт тохирсон байхын тулд би яаж үүнийг хамгийн бага бүжиглэж чадах вэ?

Хэсэг нь болхи юм

Usbip-д суурилсан хэрэглэгчдийн хооронд криптограф токеныг сүлжээгээр хуваалцах
Сонголт 1. Бат файлуудын хэд хэдэн товчлол, тухайлбал
a) Хандалтын түлхүүрийг холбох.
б) Санаатайгаар салгах.

Догол мөр "б» маргаантай тул түлхүүртэй ажиллах хугацааг 3 минутаар өгөхөөр шийдсэн.

Usbip клиентийн онцлог нь түүнийг ажиллуулсны дараа консолд өлгөөтэй хэвээр байгаа бөгөөд консолын сессийг тасалдуулахгүйгээр та холболтыг үйлчлүүлэгч болон сервер талаас "ойролцоогоор" хааж болно.

Бидний хувьд сайн ажилласан зүйл энд байна:

нэгдүгээрт: холболт on.bat

usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "

хоёрдугаарт: унтрах off.bat

ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F

Хэрэглэгчийн ухамсарт найдахгүйгээр скриптүүдийг нэгтгэсэн токен.бат

on.bat | off.bat

Юу болох вэ: token.bat файлаар эхлүүлсэн бүх файлууд нэг хавтсанд байгаа бөгөөд хэрэв холболт хаагдсан бол хэрэглэгч түлхүүрийг ашиглах боломжгүй гэсэн мессежийг шууд хүлээн авдаг, өөр тохиолдолд зөвхөн 180 пингийн дараа. Дээрх кодын мөрүүд нь хэрэглэгчийг хэт цочирдуулахгүйн тулд “@ECHO OFF” болон консолын чиглэлийг “> nul” гэсэн тэмдэгтээр тоноглож болох боловч туршилт хийх шаардлагагүй. USB драйв дээрх анхны "ажиллуулах" нь бүх зүйл урьдчилан таамаглах боломжтой, найдвартай, ойлгомжтой болохыг харуулсан. Түүнээс гадна сервер талаас ямар нэгэн заль мэх шаардлагагүй.

Usbip-д суурилсан хэрэглэгчдийн хооронд криптограф токеныг сүлжээгээр хуваалцах

Мэдээжийн хэрэг, жетонтой шууд ажиллах үед бүх зүйл санаснаар болоогүй: төхөөрөмжийн менежерт физик холболттой бол токен нь 2 төхөөрөмж (WUDF ба ухаалаг карт), сүлжээний холболттой бол зөвхөн WUDF (гэхдээ) Энэ нь ПИН код хүсэхэд хангалттай).

Usbip-д суурилсан хэрэглэгчдийн хооронд криптограф токеныг сүлжээгээр хуваалцах

Түүнчлэн харгис хэрцгий "даалгавар" нь тийм ч ноцтой биш бөгөөд үйлчлүүлэгчийн холболтыг хаах нь асуудалтай бөгөөд амжилттай болсон ч түүнийг сервер дээр хаах баталгаа болохгүй.

Үйлчлүүлэгч дээрх бүх консолыг золиосолсны дараа хоёр дахь скрипт нь дараах хэлбэртэй байв.

ping 127.0.0.1 -n 180 > nul
taskkill /IM usbip.exe /F /T  > nul
ping 127.0.0.1 -n 10 > nul
taskkill /IM conhost.exe /F /T  > nul

Хэдийгээр сервер нь холболтыг нээлттэй гэж үзсээр байгаа тул түүний үр ашиг 50% -иас бага байна.

Холболттой холбоотой асуудал нь серверийн талыг шинэчлэх талаар бодоход хүргэсэн.

Серверийн хэсэг

Танд хэрэгтэй зүйл:

  1. Идэвхгүй хэрэглэгчдийг үйлчилгээнээс салгах.
  2. Токеныг хэн ашиглаж байгааг (эсвэл зээлсэн хэвээр) хараарай.
  3. Токен өөрөө компьютерт холбогдсон эсэхийг харна уу.

Эдгээр асуудлыг crontab болон apache үйлчилгээг ашиглан шийдсэн. Бидний сонирхож буй 2 ба 3-р цэгүүдийн хяналтын үр дүнгийн төлөвийг дахин бичих салангид шинж чанар нь файлын системийг ramdrive дээр байрлуулж болохыг харуулж байна. /etc/fstab-д мөр нэмсэн

tmpfs   /ram_drive      tmpfs   defaults,nodev,size=64K         0       0

Үндэс дотор скрипт бүхий скрипт хавтас үүсгэгдсэн: token-ыг салгах-холбох usb_restart.sh

usbip unbind -b 1-2
sleep 2
usbip bind -b 1-2
sleep 2
usbip attach --remote=localhost --busid=1-2
sleep 2
usbip detach --port=00

usblist_id.sh идэвхтэй төхөөрөмжүүдийн жагсаалтыг авах

usbip list -r 127.0.0.1 | grep ':' |awk -F ":" '{print $1}'| sed s/' '//g | grep -v "^$" > /ram_drive/usb_id.txt

идэвхтэй IP-ийн жагсаалтыг авах (дараа нь хэрэглэгчийн ID-г харуулахын тулд өөрчилсөн) usbip_client_ip.sh

netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt

crontab өөрөө иймэрхүү харагдаж байна:

*/5 * * * * /!script/usb_restart.sh > /dev/null 2>&1
* * * * * ( sleep 30 ; /!script/usblist_id.sh > /dev/null)
* * * * * (sleep 10 ; /!script/usbip_client_ip.sh > /dev/hull)

Тиймээс бидэнд: 5 минут тутамд шинэ хэрэглэгч токен дээр ажиллаж байсан хүнээс үл хамааран холбогдох боломжтой. /ramdrive хавтас нь http сервертэй сим холбоос ашиглан холбогдсон бөгөөд үүнд usbip серверийн статусыг харуулсан 2 текст файл хадгалагдана.

Дараагийн хэсэг: "Боодолтой муухай"

Сонголт II. Хэрэглэгчийг ядаж сүрдмээргүй интерфейсээр бага зэрэг баярлуулах. Хэрэглэгчид өөр өөр хүрээтэй, өөр өөр эрхтэй, асуудал багатай арга барилтай Windows-ийн өөр хувилбартай байдаг нь гайхширч байна. Лазар Би үүнийг олсонгүй (мэдээж би C#-д зориулагдсан, гэхдээ энэ тохиолдолд биш). Та сарьсан багваахай файлуудыг арын дэвсгэр дээр интерфэйсээс ажиллуулж болно, гэхдээ зохих шалгалтгүйгээр би хувьдаа үзэж байна: хэрэглэгчийн сэтгэл ханамжгүй байдлыг цуглуулахын тулд та үүнийг дүрслэн харуулах хэрэгтэй.

Usbip-д суурилсан хэрэглэгчдийн хооронд криптограф токеныг сүлжээгээр хуваалцах

Дараах ажлуудыг интерфэйс болон програм хангамжаар шийдсэн.

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

WEB сервертэй ажиллах нь нэмэлт fphttpclient snap-in-ийг ашиглан хэрэгждэг.


Энд үйлчлүүлэгчийн одоогийн хувилбарын холбоос байх болно

Мөн нийтлэлийн сэдвийн талаар цаашид анхаарах зүйлс, түүнчлэн VirtualHere бүтээгдэхүүний онцлог шинж чанаруудтай хэсэгчилсэн анхны урам зориг байдаг ...

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

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