V zvezi s spremembami zakonodaje glede storitev zaupanja (»O elektronskih storitvah zaupanja« Ukrajina) ima podjetje potrebo po več oddelkih za delo s ključi, ki se nahajajo na žetonih (trenutno je vprašanje števila ključev strojne opreme še vedno odprto). ).
Kot orodje z najnižjimi stroški (brezplačno) je izbira takoj padla
Vprašanje je bilo: Kako naj naredim to z najmanjšo količino plesa, da bo vse delovalo za vse ...
Del je neroden
Možnost 1. Več bližnjic do datotek bat, in sicer
a) Priključitev ključa za dostop.
b) Namerno prekinitev povezave.
Odstavek "б» sporno, zato je bilo odločeno, da se čas dela s ključem dodeli 3 minutam.
Posebnost odjemalca usbip je v tem, da po zagonu ostane viseti v konzoli, brez prekinitve seje konzole lahko povezavo prekinete “grobo” tako s strani odjemalca kot tudi s strani strežnika.
Tukaj je tisto, kar je pri nas dobro delovalo:
prvi: povezava on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
drugič: zaustavitev off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Brez zanašanja na zavest uporabnika so skripte združili v token.bat
on.bat | off.bat
Kaj se zgodi: vse datoteke so v isti mapi, sproži jih datoteka token.bat, če je povezava prekinjena, uporabnik takoj prejme sporočilo o nedosegljivosti ključa, v drugem primeru šele po 180 pingih. Dane vrstice kode lahko opremimo z “@ECHO OFF” in smerjo konzole na “> nul”, da uporabnika ne šokiramo preveč, ni pa nujno, da začnemo s testiranjem. Začetni »zagon« na USB pogonu je pokazal, da je vse predvidljivo, zanesljivo in jasno. Poleg tega s strani strežnika niso potrebne nobene manipulacije.
Seveda pri neposrednem delu z žetonom ni šlo vse po pričakovanjih: pri fizični povezavi v upravitelju naprav je žeton registriran kot 2 napravi (WUDF in pametna kartica), pri omrežni povezavi pa le kot WUDF (čeprav to je dovolj za zahtevo po kodi PIN).
Izkazalo se je tudi, da brutalni "taskkill" ni tako hud, zapiranje povezave na odjemalcu pa je problematično in tudi če je bilo uspešno, mu ne zagotavlja zapiranja na strežniku.
Po žrtvovanju vseh konzol na odjemalcu je drugi skript dobil obliko:
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
čeprav je njegova učinkovitost manjša od 50%, saj je strežnik vztrajno še naprej menil, da je povezava odprta.
Težave s povezavo so vodile k razmišljanju o nadgradnji strežniške strani.
Strežniški del
Kaj potrebujete:
- Odklopite neaktivne uporabnike iz storitve.
- Oglejte si, kdo trenutno uporablja (ali si še izposoja) žeton.
- Preverite, ali je žeton povezan s samim računalnikom.
Te težave smo rešili s storitvama crontab in apache. Diskretna narava ponovnega zapisovanja stanja rezultatov spremljanja točk 2 in 3, ki nas zanimajo, kaže, da je datotečni sistem mogoče najti na pogonu ram. Dodana vrstica v /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
V korenu je bila ustvarjena mapa s skripti: odpenjanje-montaža žetona 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
pridobivanje seznama aktivnih naprav 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
pridobitev seznama aktivnih IP-jev (z naknadno spremembo za prikaz uporabniških ID-jev) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
sam crontab izgleda takole:
*/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)
Tako imamo: vsakih 5 minut se lahko poveže nov uporabnik, ne glede na to, kdo je delal z žetonom. Mapa /ramdrive je s simbolno povezavo povezana s http strežnikom, v kateri sta shranjeni 2 tekstovni datoteki, ki prikazujeta stanje usbip strežnika.
Naslednji del: “Grd v ovoju”
Možnost II. Da uporabnika malo razveselimo z vsaj kakšnim manj zastrašujočim vmesnikom. Zmedeno nad dejstvom, da imajo uporabniki različne različice sistema Windows z različnimi ogrodji, različnimi pravicami, manj problematičnim pristopom kot
Z vmesnikom in programsko opremo smo rešili naslednje naloge:
- Prikaže, ali je žeton trenutno zaseden.
- Pri prvem zagonu začetna nastavitev vključuje generiranje "pravilnih" datotek bat, ki izvajajo zagon in prekinitev seje s strežnikom žetonov. Pri naslednjih zagonih izvedba "storitvenega" načina z uporabo gesla.
- Preverjanje prisotnosti povezave s strežnikom, zaradi česar vpraša, ali je zaseden, ali prikaže sporočila o težavah. Ko se komunikacija nadaljuje, program samodejno začne delovati v običajnem načinu.
Delo s spletnim strežnikom je izvedeno z dodatnim snap-inom fphttpclient.
obstajajo tudi nadaljnji premisleki o temi članka, pa tudi delno začetno navdušenje nad izdelkom VirtualHere s svojimi funkcijami ...
Vir: www.habr.com