Zbog promjena u zakonodavstvu koje se odnose na usluge povjerenja („O elektronskim uslugama povjerenja“ Ukrajina), kompanija ima potrebu za nekoliko odjela za rad s ključevima koji se nalaze na tokenima (trenutno je još uvijek otvoreno pitanje broja hardverskih ključeva ).
Kao alat sa najnižim troškovima (besplatan), izbor je odmah pao
Pitanje je glasilo: Kako učiniti da sve radi za svakoga uz najmanje plesove...
Dio nespretan
I opcija. Nekoliko prečica do bat fajlova, naime
a) Veza sa pristupnim ključem.
b) Namjerno gašenje.
paragraf "б” je kontroverzna, pa je odlučeno da se količina vremena za rad s ključem da za 3 minute.
Posebnost usbip klijenta je u tome što nakon pokretanja ostaje da visi u konzoli, bez prekida sesije konzole, možete zatvoriti vezu „grubo“ sa strane klijenta, ali i sa strane servera.
Evo šta nam je pošlo za rukom:
prvo: veza on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
drugo: gašenje off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
ne oslanjajući se na svijest korisnika, skripte su objedinjene u token.bat
on.bat | off.bat
Šta se dešava: svi fajlovi su u istom folderu, pokreću se pomoću datoteke token.bat, ako je veza prekinuta, korisnik odmah ima poruku o nedostupnosti ključa, inače tek nakon 180 pingova. Gornje linije koda mogu biti opremljene sa “@ECHO OFF” i smjerom konzole na “> nul” kako ne bi previše šokirali korisnika, ali nije potrebno pokrenuti testiranje. Prvobitno "trčanje" na USB drajvu pokazalo je da je sve bilo predvidljivo, pouzdano i jasno. A sa strane servera nisu potrebne nikakve manipulacije.
Naravno, kada se radi direktno sa tokenom, sve nije išlo kako se očekivalo: kada se fizički poveže u upravitelju uređaja, token se registruje kao 2 uređaja (WUDF i pametna kartica), a kada je povezan na mrežu, samo kao WUDF (iako ovo je dovoljno da zatražite PIN kod).
Ispostavilo se i da okrutni "taskkill" nije tako ozbiljan, a zatvaranje veze na klijentu je problematično, a čak i ako je uspjelo, ne garantuje mu zatvaranje na serveru.
Nakon što je žrtvovao sve konzole na klijentu, druga skripta je dobila oblik:
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
iako su njegove performanse manje od 50%, pošto je server tvrdoglavo nastavio da smatra vezu otvorenom.
Problemi sa vezom doveli su do razmišljanja o nadogradnji pozadi.
Serverski dio
Šta vam treba:
- Isključite neaktivne korisnike sa usluge.
- Pogledajte ko trenutno koristi (ili još drži) token.
- Pogledajte da li je token povezan sa samim računarom.
Ovi zadaci su riješeni korištenjem crontab i apache servisa. Diskretnost ponovnog pisanja stanja rezultata praćenja tačaka 2 i 3 koje nas zanimaju sugeriše da se sistem datoteka može nalaziti na ram drajvu. Dodata linija u /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
Fascikla skripti sa skriptama je kreirana u korijenu: unmount-mount 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
dobijanje liste aktivnih uređaja 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
dobivanje liste aktivnih IP-ova (sa naknadnim preciziranjem za prikaz korisničkih ID-ova) 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 ovako:
*/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)
Dakle, imamo: svakih 5 minuta novi korisnik se može povezati, bez obzira na to ko je radio sa tokenom. Fascikla /ramdrive je povezana sa http serverom pomoću simbolične veze, u kojoj su sačuvane 2 tekstualne datoteke koje pokazuju status usbip servera.
Sljedeći dio: "Ružno u omotu"
II opcija. Da malo ugodim korisniku barem nekim manje zastrašujućim sučeljem. Zbunjeni činjenicom da korisnici imaju različite verzije Windowsa sa različitim okvirima, različitim pravima, manje problematičnim pristupom od
Interfejs i softverski dio su riješili sljedeće zadatke:
- Prikazuje da li je token trenutno zauzet.
- Pri prvom startu, početno podešavanje sa generisanjem „ispravnih“ bat fajlova koji implementiraju pokretanje i prekid sesije sa token serverom. Prilikom narednih pokretanja, implementacija "servisnog" moda po lozinki.
- Provjera veze sa serverom, uslijed čega se provjerava zauzetost ili se prikazuju poruke o problemima. Kada se veza nastavi, program automatski počinje da radi u normalnom režimu.
Rad sa WEB serverom se realizuje uz pomoć dodatne opreme fphttpclient.
tu je i nastavak razmatranja na temu članka, kao i djelomično početno oduševljenje VirtualHere proizvodom sa njegovim karakteristikama...
izvor: www.habr.com