V súvislosti so zmenami v legislatíve v oblasti dôveryhodných služieb („O elektronických dôveryhodných službách“ Ukrajina) podnik potrebuje, aby niekoľko oddelení pracovalo s kľúčmi umiestnenými na tokenoch (v súčasnosti je stále otvorená otázka počtu hardvérových kľúčov ).
Ako nástroj s najnižšími nákladmi (zadarmo) voľba okamžite padla
Otázka znela: Ako to urobiť s čo najmenším množstvom tanca, aby všetko fungovalo pre všetkých...
Časť je nemotorná
možnosť XNUMX. Niekoľko skratiek k súborom bat, menovite
a) Pripojenie prístupového kľúča.
b) Úmyselné odpojenie.
Odstavec "б» kontroverzné, preto sa rozhodlo dať čas na prácu s kľúčom 3 minúty.
Zvláštnosťou klienta usbip je, že po spustení zostáva visieť v konzole, bez prerušenia relácie konzoly môžete spojenie „približne“ ukončiť zo strany klienta aj zo strany servera.
Tu je to, čo pre nás fungovalo dobre:
prvé: spojenie on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
druhá: vypnutie off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Bez toho, aby sme sa spoliehali na vedomie používateľa, boli skripty spojené do token.bat
on.bat | off.bat
Čo sa stane: všetky súbory sú v rovnakom priečinku, spúšťanom súborom token.bat, ak sa spojenie uzavrie, používateľ okamžite dostane správu o nedostupnosti kľúča, v inom prípade až po 180 pingoch. Vyššie uvedené riadky kódu môžu byť vybavené „@ECHO OFF“ a nasmerovaním konzoly na „> nul“, aby používateľa príliš nešokovali, ale nie je potrebné spustiť testovanie. Počiatočný „beh“ na jednotke USB ukázal, že všetko bolo predvídateľné, spoľahlivé a jasné. Okrem toho nie sú potrebné žiadne manipulácie zo strany servera.
Pri priamej práci s tokenom samozrejme nešlo všetko podľa predstáv: pri fyzickom pripojení v správcovi zariadení je token zaregistrovaný ako 2 zariadenia (WUDF a smart karta), pri sieťovom pripojení len ako WUDF (aj keď to stačí na vyžiadanie PIN kódu).
Ukazuje sa tiež, že brutálna „taskkill“ nie je taká vážna a zatvorenie spojenia na klientovi je problematické a ak aj bolo úspešné, nezaručuje mu to zatvorenie na serveri.
Po obetovaní všetkých konzol na klientovi dostal druhý skript podobu:
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
aj keď jeho účinnosť je nižšia ako 50%, pretože server tvrdohlavo naďalej považoval pripojenie za otvorené.
Problémy s pripojením viedli k úvahám o aktualizácii servera.
Serverová časť
Čo budete potrebovať:
- Odpojte neaktívnych používateľov zo služby.
- Pozrite sa, kto práve používa (alebo si stále požičiava) token.
- Skontrolujte, či je token pripojený k samotnému počítaču.
Tieto problémy boli vyriešené pomocou služieb crontab a apache. Diskrétny charakter prepisovania stavu výsledkov monitorovania bodov 2 a 3, ktorý nás zaujíma, naznačuje, že súborový systém môže byť umiestnený na ramdrive. Pridaný riadok do /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
V koreňovom adresári bol vytvorený priečinok skriptov so skriptami: odpojenie-pripojenie tokenu 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
získanie zoznamu aktívnych zariadení 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
získanie zoznamu aktívnych adries IP (s následnou úpravou na zobrazenie ID používateľov) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
samotný crontab vyzerá takto:
*/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)
Takže máme: každých 5 minút sa môže pripojiť nový používateľ bez ohľadu na to, kto s tokenom pracoval. Priečinok /ramdrive je pripojený k serveru http pomocou symbolického odkazu, v ktorom sú uložené 2 textové súbory zobrazujúce stav servera usbip.
Ďalšia časť: „Škaredá v obale“
Možnosť II. Trochu potešiť používateľa aspoň nejakým menej zastrašujúcim rozhraním. Zmätený tým, že používatelia majú rôzne verzie Windowsu s rôznymi frameworkami, inými právami, menej problematickým prístupom ako
Rozhraním a softvérom boli vyriešené nasledujúce úlohy:
- Zobrazuje, či je token momentálne zaneprázdnený.
- Pri prvom spustení počiatočné nastavenie zahŕňa vygenerovanie „správnych“ bat súborov, ktoré implementujú spustenie a prerušenie relácie s tokenovým serverom. Pri následných štartoch implementácia „servisného“ režimu pomocou hesla.
- Kontrola prítomnosti spojenia so serverom, v dôsledku čoho sa pýta, či je zaneprázdnený alebo zobrazuje správy o problémoch. Po obnovení komunikácie program automaticky začne pracovať v normálnom režime.
Práca s WEB serverom je implementovaná pomocou dodatočného modulu fphttpclient.
sú tu aj ďalšie úvahy k téme článku, ako aj čiastočné prvotné nadšenie z produktu VirtualHere s jeho funkciami...
Zdroj: hab.com