由於信託服務立法的變化(「關於電子信託服務」烏克蘭),企業需要多個部門來處理位於代幣上的密鑰(目前,硬體密鑰的數量問題仍然懸而未決) )。
作為成本最低(免費)的工具,選擇立刻就落在了
問題是:我怎麼能用最少的舞蹈來做到這一點,以便一切都適合每個人......
該部分很笨拙
選項XNUMX。 bat檔的幾個快捷方式,分別是
a) 連線存取密鑰。
b) 故意斷開連線。
段落 ”б» 有爭議,因此決定將金鑰的使用時間定為 3 分鐘。
usbip 用戶端的特點是,啟動後,它仍然掛在控制台中;在不中斷控制台會話的情況下,您可以從客戶端和伺服器端「粗略地」關閉連線。
這對我們來說效果很好:
第一:連接 蝙蝠
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
第二:關機 關閉蝙蝠
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
不依賴使用者的意識,將腳本組合成 令牌.bat
on.bat | off.bat
會發生什麼事:所有檔案都位於同一個資料夾中,由token.bat 檔案啟動,如果連線關閉,使用者會立即收到有關金鑰不可用的訊息,在另一種情況下,僅在180 次ping後才會收到訊息。 上述幾行程式碼可以配備“@ECHO OFF”並將控制台方向設為“> nul”,以免對使用者造成太大衝擊,但不需要執行測試。 在 USB 驅動器上的初始「運行」表明一切都是可預測的、可靠且清晰的。 此外,伺服器端不需要任何操作。
當然,當直接使用令牌時,一切都不會按預期進行:透過裝置管理員中的實體連接,令牌被註冊為 2 個裝置(WUDF 和智慧卡),並且僅作為 WUDF 進行網路連接(儘管這足以請求PIN 碼)。
事實證明,殘酷的「taskkill」並沒有那麼嚴重,在客戶端關閉連線是有問題的,即使成功了,也不能保證在伺服器上為他關閉。
犧牲了客戶端上的所有控制台後,第二個腳本採用了以下形式:
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
儘管其有效性低於 50%,因為伺服器頑固地繼續認為連線已開啟。
連線問題引發了升級伺服器端的想法。
伺服器部分
你所需要的:
- 中斷非活動用戶與服務的連線。
- 查看誰目前正在使用(或仍在藉用)該代幣。
- 查看令牌是否連接到電腦本身。
使用 crontab 和 apache 服務解決了這些問題。 重寫我們感興趣的點2和3的監控結果的狀態的離散性表明檔案系統可以位於ramdrive上。 已將行新增至 /etc/fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
根目錄下已經建立了一個包含腳本的腳本資料夾:卸載-掛載令牌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
取得活動設備清單 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
取得活動 IP 清單(隨後進行修改以顯示使用者 ID) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
crontab 本身看起來就是這樣:
*/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)
所以我們有:每 5 分鐘就有一個新用戶可以連接,無論誰使用了該令牌。 /ramdrive資料夾使用符號連結連接到http伺服器,其中保存了2個文字文件,顯示了usbip伺服器的狀態。
下一部分:“包裝紙裡的醜陋”
選項二。 至少用一些不那麼令人生畏的介面來取悅用戶。 令人困惑的是,使用者擁有不同版本的 Windows,具有不同的框架、不同的權限,以及問題較少的方法
透過介面和軟體解決了以下任務:
- 顯示令牌目前是否忙碌。
- 首次啟動時,初始設定涉及產生「正確的」bat 文件,這些文件實現與令牌伺服器的會話的啟動和中斷。 在隨後的啟動中,使用密碼執行「服務」模式。
- 檢查與伺服器的連線是否存在,結果是輪詢伺服器是否繁忙或顯示有關問題的訊息。 當通訊恢復時,程式自動開始在正常模式下運作。
使用 WEB 伺服器是透過使用附加的 fphttpclient 管理單元來實現的。
還有對文章主題的進一步考慮,以及對 VirtualHere 產品及其功能的部分最初熱情...
來源: www.habr.com