I samband med förändringar i lagstiftningen om förtroendetjänster ("Om elektroniska förtroendetjänster" Ukraina) har företaget ett behov av att flera avdelningar arbetar med nycklar som finns på tokens (för närvarande är frågan om antalet hårdvarunycklar fortfarande öppen ).
Som ett verktyg med lägst kostnad (kostnadsfritt) föll valet direkt på
Frågan var: Hur kan jag göra det med minsta möjliga dans så att allt fungerar för alla...
Delen är klumpig
Alternativ XNUMX. Flera genvägar till bat-filer, nämligen
a) Ansluter åtkomstnyckeln.
b) Avsiktligt koppla bort.
Paragraf "б» kontroversiellt, så det beslutades att ge den tid att arbeta med nyckeln på 3 minuter.
Det speciella med usbip-klienten är att efter att den har startat förblir den hängande i konsolen; utan att avbryta konsolsessionen kan du stänga anslutningen "ungefär" från klientsidan och även från serversidan.
Här är vad som fungerade bra för oss:
först: anslutning on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
andra: avstängning off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Utan att förlita sig på användarens medvetande, kombinerades skripten till token.bat
on.bat | off.bat
Vad händer: alla filerna finns i samma mapp, lanserade av filen token.bat, om anslutningen stängs får användaren omedelbart ett meddelande om att nyckeln inte är tillgänglig, i ett annat fall först efter 180 pingar. Ovanstående kodrader kan utrustas med "@ECHO OFF" och konsolriktningen till "> nul" för att inte chocka användaren för mycket, men det är inte nödvändigt att köra testning. Den första "körningen" på en USB-enhet visade att allt var förutsägbart, pålitligt och tydligt. Dessutom krävs inga manipulationer från serversidan.
Naturligtvis, när man arbetade direkt med token, gick allt inte som förväntat: med en fysisk anslutning i enhetshanteraren registreras token som 2 enheter (WUDF och ett smartkort), och med en nätverksanslutning endast som WUDF (även om detta räcker för att begära en PIN-kod).
Det visar sig också att den brutala "taskkillen" inte är så allvarlig, och att stänga anslutningen på klienten är problematiskt och även om det lyckades, garanterar det inte att det stängs på servern för det.
Efter att ha offrat alla konsoler på klienten tog det andra skriptet formen:
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
även om dess effektivitet är mindre än 50 %, eftersom servern envist fortsatte att betrakta anslutningen som öppen.
Problem med anslutningen ledde till tankar om att uppgradera serversidan.
Server del
Vad du behöver:
- Koppla bort inaktiva användare från tjänsten.
- Se vem som för närvarande använder (eller fortfarande lånar) token.
- Se om token är ansluten till själva datorn.
Dessa problem löstes med hjälp av tjänsterna crontab och apache. Den diskreta karaktären av att skriva om tillståndet för övervakningsresultaten i punkterna 2 och 3 som intresserar oss indikerar att filsystemet kan lokaliseras på ramenheten. Lade till rad till /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
En skriptmapp med skript har skapats i roten: avmontering-montering av 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
få en lista över aktiva enheter 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
erhålla en lista över aktiva IP-adresser (med efterföljande ändring för att visa användar-ID) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
själva crontab ser ut så här:
*/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)
Så vi har: var 5:e minut kan en ny användare ansluta, oavsett vem som arbetade med token. /ramdrive-mappen är ansluten till http-servern med en symbollänk, i vilken 2 textfiler sparas, som visar statusen för usbip-servern.
Del nästa: "Ugly in a wrapper"
Alternativ II. För att tillfredsställa användaren lite med åtminstone något mindre skrämmande gränssnitt. Förbryllad över det faktum att användare har olika versioner av Windows med olika ramverk, olika rättigheter, ett mindre problematiskt tillvägagångssätt än
Följande uppgifter löstes av gränssnittet och programvaran:
- Visar om token för närvarande är upptagen.
- Vid den första lanseringen innebär den initiala installationen att generera de "korrekta" bat-filerna som implementerar lanseringen och avbrottet av en session med tokenservern. Vid efterföljande start, implementering av "service" -läget med hjälp av ett lösenord.
- Kontrollera närvaron av en anslutning till servern, som ett resultat av vilken den frågar om den är upptagen eller visar meddelanden om problem. När kommunikationen återupptas, börjar programmet automatiskt att fungera i normalt läge.
Arbetet med WEB-servern implementeras med hjälp av den extra snapin-modulen fphttpclient.
det finns också ytterligare överväganden om ämnet för artikeln, såväl som delvis initial entusiasm för VirtualHere-produkten med dess funktioner...
Källa: will.com