Güven hizmetlerine ilişkin mevzuattaki değişikliklerle bağlantılı olarak (“Elektronik güven hizmetleri hakkında” Ukrayna), işletmenin jetonlar üzerinde bulunan anahtarlarla çalışacak birkaç departmanın ihtiyacı vardır (şu anda donanım anahtarlarının sayısı sorusu hala açıktır) ).
En düşük maliyetli (ücretsiz) bir araç olarak seçim hemen düştü
Soru şuydu: Her şeyin herkes için işe yaraması için bunu en az dansla nasıl yapabilirim?
Bölüm beceriksiz
seçenek XNUMX. Yarasa dosyalarına çeşitli kısayollar, yani
a) Erişim anahtarını bağlama.
b) Kasıtlı olarak bağlantıyı kesmek.
paragraf "б» tartışmalı olduğundan, anahtarla çalışma süresinin 3 dakika olarak verilmesine karar verildi.
USBip istemcisinin özelliği, başlatıldıktan sonra konsolda asılı kalmasıdır; konsol oturumunu kesmeden, bağlantıyı istemci tarafından ve ayrıca sunucu tarafından "kabaca" kapatabilirsiniz.
İşte bizim için iyi sonuç veren şey:
ilk: bağlantı on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
ikincisi: kapatma kapalı.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Kullanıcının bilincine güvenilmeden, komut dosyaları birleştirildi belirteç.bat
on.bat | off.bat
Ne olur: tüm dosyalar token.bat dosyası tarafından başlatılan aynı klasörde bulunur; bağlantı kapatılırsa kullanıcı hemen anahtarın kullanılamadığına dair bir mesaj alır; başka bir durumda, yalnızca 180 ping'den sonra. Yukarıdaki kod satırları, kullanıcıyı çok fazla şaşırtmamak için “@ECHO OFF” ve konsol yönü “>nul” olarak donatılabilir, ancak test çalıştırmaya gerek yoktur. USB sürücüsündeki ilk "çalıştırma" her şeyin öngörülebilir, güvenilir ve net olduğunu gösterdi. Üstelik sunucu tarafında herhangi bir manipülasyon yapılmasına gerek yoktur.
Doğal olarak, doğrudan belirteçle çalışırken her şey beklendiği gibi gitmedi: cihaz yöneticisindeki fiziksel bağlantıyla belirteç 2 cihaz (WUDF ve akıllı kart) olarak ve ağ bağlantısıyla yalnızca WUDF olarak kaydedildi (gerçi bu bir PIN kodu istemek için yeterlidir).
Ayrıca, acımasız "görev öldürmenin" o kadar şiddetli olmadığı ve istemcideki bağlantıyı kapatmanın sorunlu olduğu ve başarılı olsa bile, sunucuda onun adına kapatılmasını garanti etmediği ortaya çıktı.
İstemcideki tüm konsolları feda ettikten sonra ikinci komut dosyası şu şekli aldı:
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
Etkinliği %50'den az olmasına rağmen sunucu inatla bağlantıyı açık olarak görmeye devam etti.
Bağlantıyla ilgili sorunlar, sunucu tarafının yükseltilmesiyle ilgili düşüncelere yol açtı.
Sunucu kısmı
Size gerekenler:
- Etkin olmayan kullanıcıların hizmetle bağlantısını kesin.
- Şu anda jetonu kimin kullandığını (veya hala ödünç aldığını) görün.
- Belirtecin bilgisayara bağlı olup olmadığına bakın.
Bu sorunlar crontab ve apache hizmetleri kullanılarak çözüldü. Bizi ilgilendiren 2. ve 3. noktaların izleme sonuçlarının durumunu yeniden yazmanın ayrık doğası, dosya sisteminin ramdrive'da bulunabileceğini gösterir. /etc/fstab dosyasına satır eklendi
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
Kökte komut dosyaları içeren bir komut dosyası klasörü oluşturuldu: usb_restart.sh belirtecinin bağlantısının kesilmesi-takılması
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 etkin cihazların listesini alma
usbip list -r 127.0.0.1 | grep ':' |awk -F ":" '{print $1}'| sed s/' '//g | grep -v "^$" > /ram_drive/usb_id.txt
aktif IP'lerin bir listesinin elde edilmesi (daha sonra kullanıcı kimliklerini görüntülemek için yapılan değişikliklerle) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt
crontab'ın kendisi şöyle görünü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)
Yani elimizde: jetonla kimin çalıştığına bakılmaksızın her 5 dakikada bir yeni bir kullanıcı bağlanabilir. /ramdrive klasörü, usbip sunucusunun durumunu gösteren 2 metin dosyasının kaydedildiği bir sembolik bağlantı kullanılarak http sunucusuna bağlanır.
Sonraki bölüm: “Paketlenmiş çirkin”
Seçenek II. Kullanıcıyı en azından daha az korkutucu bir arayüzle biraz memnun etmek. Kullanıcıların farklı çerçevelere, farklı haklara ve daha az sorunlu bir yaklaşıma sahip farklı Windows sürümlerine sahip olması beni şaşırttı.
Aşağıdaki görevler arayüz ve yazılım tarafından çözüldü:
- Belirtecin şu anda meşgul olup olmadığını görüntüler.
- İlk başlatmada, ilk kurulum, belirteç sunucusuyla bir oturumun başlatılmasını ve kesilmesini sağlayan "doğru" yarasa dosyalarının oluşturulmasını içerir. Sonraki başlatmalarda, "hizmet" modunun bir şifre kullanılarak uygulanması.
- Sunucuyla bir bağlantının varlığının kontrol edilmesi, bunun sonucunda meşgul olup olmadığının sorgulanması veya sorunlarla ilgili mesajların görüntülenmesi. İletişim yeniden başlatıldığında program otomatik olarak normal modda çalışmaya başlar.
WEB sunucusuyla çalışma, ek fphttpclient ek bileşeni kullanılarak gerçekleştirilir.
Makalenin konusuyla ilgili başka değerlendirmeler ve VirtualHere ürününün özellikleriyle ilgili başlangıçtaki kısmi heyecan da var...
Kaynak: habr.com