Pagbabahagi ng network ng isang cryptographic token sa pagitan ng mga user na nakabatay sa usbip

Kaugnay ng mga pagbabago sa batas tungkol sa mga serbisyo ng tiwala ("Tungkol sa mga serbisyo ng elektronikong tiwala" Ukraine), ang negosyo ay nangangailangan ng ilang mga departamento na magtrabaho kasama ang mga susi na matatagpuan sa mga token (sa ngayon, ang tanong ng bilang ng mga susi ng hardware ay bukas pa rin. ).

Bilang isang tool na may pinakamababang halaga (walang bayad), ang pagpipilian ay agad na nahulog sa usbip. Ang server sa Ubintu 18.04 ay nagsimulang gumana salamat sa publikasyon Pag-amin sa USB/IP at matagumpay na nasubok sa ilang mga flash drive (dahil sa kakulangan ng isang token sa oras na iyon). Walang mga espesyal na problema maliban sa monopolyong pagmamay-ari (pagpapareserba para sa user) ang natukoy sa oras na iyon. Malinaw na upang maisaayos ang pag-access para sa ilang mga gumagamit (hindi bababa sa dalawa, upang magsimula), kinakailangan na hatiin ang kanilang pag-access sa oras at pilitin silang magtrabaho nang paisa-isa.

Ang tanong ay: Paano ko ito magagawa sa pinakamababang halaga ng pagsasayaw upang ang lahat ay gumagana para sa lahat...

Clumsy ang part

Pagbabahagi ng network ng isang cryptographic token sa pagitan ng mga user na nakabatay sa usbip
Opsyon 1. Maraming mga shortcut sa mga bat file, ibig sabihin
a) Pagkonekta sa access key.
b) Sinasadyang idiskonekta.

Talata "Π±" ay kontrobersyal, kaya napagpasyahan na bigyan ang dami ng oras upang magtrabaho kasama ang susi sa 3 minuto.

Ang kakaiba ng usbip client ay na pagkatapos na ito ay ilunsad, ito ay nananatiling nakabitin sa console nang hindi nakakaabala sa session ng console, maaari mong isara ang koneksyon "halos" mula sa panig ng kliyente at din mula sa gilid ng server;

Narito kung ano ang nagtrabaho nang maayos para sa amin:

una: koneksyon on.bat

usbip -a 172.16.12.26 4-1
msg * "Подпись/Ρ‚ΠΎΠΊΠ΅Π½ нСдоступны ΠΈΠ»ΠΈ заняты "

pangalawa: shutdown off.bat

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

Nang hindi umaasa sa kamalayan ng gumagamit, ang mga script ay pinagsama sa token.bat

on.bat | off.bat

Ano ang mangyayari: ang lahat ng mga file ay nasa parehong folder, na inilunsad ng token.bat file, kung ang koneksyon ay sarado ang user ay agad na makakatanggap ng mensahe tungkol sa key na hindi magagamit, sa ibang kaso, pagkatapos lamang ng 180 ping. Ang mga ibinigay na linya ng code ay maaaring nilagyan ng "@ECHO OFF" at ang direksyon ng console sa "> nul" upang hindi masyadong mabigla ang user, ngunit hindi kinakailangan na magpatakbo ng pagsubok. Ang unang "run" sa isang USB drive ay nagpakita na ang lahat ay predictable, maaasahan, at malinaw. Bukod dito, walang kinakailangang manipulasyon mula sa panig ng server.

Pagbabahagi ng network ng isang cryptographic token sa pagitan ng mga user na nakabatay sa usbip

Naturally, kapag direktang nagtatrabaho sa token, ang lahat ay hindi napunta gaya ng inaasahan: na may pisikal na koneksyon sa device manager, ang token ay nakarehistro bilang 2 device (WUDF at isang smart card), at may koneksyon sa network lamang bilang WUDF (bagaman ito ay sapat na upang humiling ng PIN code).

Pagbabahagi ng network ng isang cryptographic token sa pagitan ng mga user na nakabatay sa usbip

Lumalabas din na ang brutal na "taskkill" ay hindi gaanong malala, at ang pagsasara ng koneksyon sa kliyente ay may problema at kahit na ito ay matagumpay, hindi nito ginagarantiyahan ang pagsasara nito sa server para dito.

Ang pagkakaroon ng sakripisyo sa lahat ng mga console sa kliyente, ang pangalawang script ay kinuha ang form:

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

kahit na ang pagiging epektibo nito ay mas mababa sa 50%, dahil ang server ay matigas ang ulo na patuloy na isaalang-alang ang koneksyon na bukas.

Ang mga problema sa koneksyon ay humantong sa mga pag-iisip tungkol sa pag-upgrade sa panig ng server.

Bahagi ng server

Ano ang kailangan mo:

  1. Idiskonekta ang mga hindi aktibong user mula sa serbisyo.
  2. Tingnan kung sino ang kasalukuyang gumagamit (o humihiram pa rin) ng token.
  3. Tingnan kung ang token ay konektado sa computer mismo.

Nalutas ang mga problemang ito gamit ang mga serbisyo ng crontab at apache. Ang discrete na katangian ng muling pagsusulat ng estado ng mga resulta ng pagsubaybay ng mga puntos 2 at 3 na interesado sa amin ay nagpapahiwatig na ang file system ay matatagpuan sa ramdrive. Nagdagdag ng linya sa /etc/fstab

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

Isang script folder na may mga script ay ginawa sa root: unmounting-mounting the 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

pagkuha ng listahan ng mga aktibong device 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

pagkuha ng listahan ng mga aktibong IP (na may kasunod na pagbabago para ipakita ang mga user ID) usbip_client_ip.sh

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

ang crontab mismo ay ganito ang hitsura:

*/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)

Kaya mayroon kaming: bawat 5 minuto ay maaaring kumonekta ang isang bagong user, hindi alintana kung sino ang nagtrabaho gamit ang token. Ang /ramdrive folder ay konektado sa http server gamit ang isang symlink, kung saan 2 text file ang nai-save, na nagpapakita ng katayuan ng usbip server.

Susunod na bahagi: "Pangit sa isang balot"

Pagpipilian II. Upang pasayahin ang user nang kaunti na may hindi bababa sa hindi gaanong nakakatakot na interface. Nalilito sa katotohanan na ang mga gumagamit ay may iba't ibang mga bersyon ng Windows na may iba't ibang mga balangkas, magkakaibang mga karapatan, isang hindi gaanong problemang diskarte kaysa Pulubi Hindi ko ito nakita (siyempre para ako sa C#, ngunit hindi sa kasong ito). Maaari mong patakbuhin ang mga file ng bat mula sa interface sa background, pinaliit, ngunit nang walang wastong pagsubok, ako mismo ay may opinyon: kailangan mong mailarawan ito upang mangolekta ng hindi kasiyahan ng gumagamit.

Pagbabahagi ng network ng isang cryptographic token sa pagitan ng mga user na nakabatay sa usbip

Ang mga sumusunod na gawain ay nalutas ng interface at software:

  1. Ipinapakita kung kasalukuyang abala ang token.
  2. Sa unang paglunsad, ang paunang pag-setup ay kinabibilangan ng pagbuo ng "tama" na mga bat file na nagpapatupad ng paglulunsad at pagkaantala ng isang session sa token server. Sa kasunod na pagsisimula, ang pagpapatupad ng mode na "serbisyo" gamit ang isang password.
  3. Sinusuri ang pagkakaroon ng isang koneksyon sa server, bilang isang resulta kung saan ito ay nag-poll kung ito ay abala o nagpapakita ng mga mensahe tungkol sa mga problema. Kapag ipinagpatuloy ang komunikasyon, awtomatikong magsisimulang gumana ang programa sa normal na mode.

Ang pakikipagtulungan sa WEB server ay ipinatupad gamit ang karagdagang fphttpclient snap-in.


narito ang isang link sa kasalukuyang bersyon ng kliyente

mayroon ding mga karagdagang pagsasaalang-alang sa paksa ng artikulo, pati na rin ang bahagyang paunang sigasig para sa produkto ng VirtualHere kasama ang mga tampok nito...

Pinagmulan: www.habr.com

Magdagdag ng komento