Seoses usaldusteenuseid puudutavate õigusaktide muudatustega (Ukraina elektrooniliste usaldusteenuste kohta) on ettevõttel vajadus mitme osakonna järele, mis töötaksid žetoonidel asuvate võtmetega (hetkel on riistvaravõtmete arvu küsimus veel lahtine ).
Kõige odavama tööriistana (tasuta) langes valik koheselt
Küsimus oli: Kuidas ma saan seda teha kõige vähema tantsuga, et kõik toimiks kõigile...
Osa on kohmakas
valik XNUMX. Mitu otseteed nahkhiirte failidele, nimelt
a) Pääsuvõtme ühendamine.
b) Ühenduse tahtlik katkestamine.
Lõik "б» vastuoluline, mistõttu otsustati võtmega töötamise ajaks anda 3 minutit.
Usbip-kliendi eripära on see, et pärast käivitamist jääb see konsooli rippuma, konsooli seanssi katkestamata saab ühenduse “umbes” sulgeda nii kliendi kui ka serveri poolelt.
Siin on see, mis meie jaoks hästi töötas:
esiteks: ühendus on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
teine: väljalülitamine off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Kasutaja teadvusele lootmata ühendati skriptid üheks märk.nahkhiir
on.bat | off.bat
Mis juhtub: kõik failid on samas kaustas, mille käivitab fail token.bat, kui ühendus katkeb, saab kasutaja kohe teate võtme kättesaamatuse kohta, muul juhul alles pärast 180 pingi. Antud koodiread võib varustada tähisega “@ECHO OFF” ja konsooli suunaga “> nul”, et kasutajat mitte liigselt šokeerida, kuid testima hakata pole vaja. USB-draivi esialgne "töötamine" näitas, et kõik oli etteaimatav, usaldusväärne ja selge. Lisaks pole serveri poolelt mingeid manipuleerimisi vaja.
Otse tokeniga töötades ei läinud loomulikult kõik ootuspäraselt: seadmehalduris oleva füüsilise ühenduse korral registreeritakse token kahe seadmena (WUDF ja kiipkaart) ning võrguühendusega ainult WUDF-ina (ehkki sellest piisab PIN-koodi küsimiseks).
Selgub ka, et jõhker "taskkill" polegi nii ränk ning kliendi peal ühenduse sulgemine on problemaatiline ja isegi kui see õnnestus, ei garanteeri see tema jaoks selle sulgemist serveris.
Olles ohverdanud kõik kliendi konsoolid, võttis teine skript järgmiselt:
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
kuigi selle efektiivsus on alla 50%, kuna server pidas kangekaelselt ühendust avatuks.
Probleemid ühendusega tekitasid mõtteid serveri poole uuendamisest.
Serveri osa
Mida on vaja:
- Ühendage mitteaktiivsed kasutajad teenusest lahti.
- Vaadake, kes praegu märki kasutab (või laenab).
- Vaadake, kas token on arvutiga ühendatud.
Need probleemid lahendati teenuste crontab ja apache abil. Meid huvitava punktide 2 ja 3 jälgimistulemuste oleku ümberkirjutamise diskreetsus näitab, et failisüsteem võib asuda ramdrive'il. Lisati rida faili /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
Juures on loodud skriptide kaust skriptidega: märgi lahtiühendamine-monteerimine 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
aktiivsete seadmete loendi hankimine 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
aktiivsete IP-de loendi hankimine (koos hilisemate muudatustega kasutaja ID-de kuvamiseks) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
crontab ise näeb välja selline:
*/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)
Nii et meil on: iga 5 minuti järel saab ühenduse luua uus kasutaja, olenemata sellest, kes tokeniga töötas. Kaust /ramdrive on ühendatud http-serveriga sümlingi abil, kuhu on salvestatud 2 tekstifaili, mis näitavad usbip-serveri olekut.
Järgmine osa: "Kole ümbrises"
II variant. Et kasutajale natukenegi meeldida vähemalt mõne vähem hirmutava liidesega. Hämmeldunud asjaolust, et kasutajatel on erinevad Windowsi versioonid erinevate raamistikega, erinevate õigustega, vähem problemaatiline lähenemine kui
Liidese ja tarkvara abil lahendati järgmised ülesanded:
- Näitab, kas märk on hetkel hõivatud.
- Esmakordsel käivitamisel hõlmab esialgne seadistus "õigete" nahkhiirfailide genereerimist, mis käivitavad ja katkestavad seansi tokenserveriga. Järgnevatel käivitamistel "teenindus" režiimi rakendamine parooli abil.
- Serveriga ühenduse olemasolu kontrollimine, mille tulemusena küsib see, kas see on hõivatud, või kuvab teateid probleemide kohta. Kui side jätkub, hakkab programm automaatselt tööle tavarežiimis.
Veebiserveriga töötamine toimub täiendava fphttpclient lisandmooduli abil.
Samuti on artikli teemal täiendavaid kaalutlusi, samuti osalist esialgset entusiasmi VirtualHere'i toote ja selle funktsioonide vastu...
Allikas: www.habr.com