نظرًا للتغييرات في التشريعات المتعلقة بخدمات الثقة ("بشأن خدمات الثقة الإلكترونية" بأوكرانيا) ، فإن الشركة بحاجة إلى العديد من الإدارات للعمل باستخدام المفاتيح الموجودة على الرموز (في الوقت الحالي ، لا يزال السؤال المتعلق بعدد مفاتيح الأجهزة مفتوحًا ).
كأداة بأقل التكاليف (مجانية) ، وقع الاختيار على الفور
أصبح السؤال: كيف نجعل كل شيء يعمل مع كل من لديه أصغر الرقصات ...
جزء أخرق
أنا الخيار. عدة اختصارات لملفات الخفافيش وهي
أ) اتصال مفتاح الوصول.
ب) الانقطاع عن عمد.
فقرة "б"مثير للجدل ، لذلك تقرر إعطاء مقدار الوقت للعمل مع المفتاح في 3 دقائق.
خصوصية عميل usbip هو أنه بعد إطلاقه ، يظل معلقًا في وحدة التحكم ، دون مقاطعة جلسة وحدة التحكم ، يمكنك إغلاق الاتصال "تقريبًا" من جانب العميل وأيضًا من جانب الخادم.
إليك ما نجح بالنسبة لنا:
أولا: الاتصال on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
الثاني: الاغلاق قبالة. بات
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
لا تعتمد على وعي المستخدم ، تم دمج البرامج النصية في token.bat
on.bat | off.bat
ماذا يحدث: جميع الملفات موجودة في نفس المجلد ، قم بتشغيل ملف token.bat ، إذا تم إغلاق الاتصال ، فإن المستخدم لديه رسالة على الفور حول عدم توفر المفتاح ، وإلا ، فقط بعد 180 اختبارًا. يمكن تجهيز أسطر الكود أعلاه بـ "ECHO OFF" واتجاه وحدة التحكم إلى "> nul" حتى لا تصدم المستخدم كثيرًا ، ولكن ليس من الضروري إجراء الاختبار. أظهر "التشغيل" الأولي على محرك أقراص USB أن كل شيء كان متوقعًا وموثوقًا وواضحًا. ومن جانب الخادم ، ليست هناك حاجة للتلاعب.
بطبيعة الحال ، عند العمل مباشرة مع الرمز المميز ، لم يسير كل شيء كما هو متوقع: عند الاتصال فعليًا في مدير الجهاز ، يتم تسجيل الرمز المميز كجهازين (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 التي تهمنا أنه يمكن وضع نظام الملفات على محرك رام. تمت إضافة سطر إلى / etc / fstab
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
يتم إنشاء مجلد البرنامج النصي مع البرامج النصية في الجذر: 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
الحصول على قائمة بالأجهزة النشطة 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 النشطة (مع التحسين اللاحق لعرض معرفات المستخدم) 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 باستخدام ارتباط رمزي ، حيث يتم حفظ ملفين نصيين يوضحان حالة خادم usbip.
الجزء التالي: "قبيح في غلاف"
الثاني الخيار. لإرضاء المستخدم قليلاً بواجهة أقل ترويعًا على الأقل. مرتبك من حقيقة أن المستخدمين لديهم إصدارات مختلفة من Windows مع أطر مختلفة وحقوق مختلفة ونهج أقل إشكالية من
تم حل المهام التالية من خلال الواجهة وجزء البرنامج:
- يعرض ما إذا كان الرمز المميز مشغولاً حاليًا.
- في البداية ، يتم الإعداد الأولي مع إنشاء ملفات bat "الصحيحة" التي تنفذ بدء تشغيل الجلسة وانقطاعها باستخدام خادم الرمز المميز. في عمليات الإطلاق اللاحقة ، تنفيذ وضع "الخدمة" بكلمة مرور.
- التحقق من الاتصال بالخادم ، ونتيجة لذلك يتم استطلاع الرأي حول الانشغال أو يتم عرض رسائل حول المشكلات. عند استئناف الاتصال ، يبدأ البرنامج تلقائيًا في العمل في الوضع العادي.
يتم تنفيذ العمل مع خادم WEB عن طريق المعدات الإضافية fphttpclient.
هناك أيضًا استمرار للاعتبارات حول موضوع المقالة ، فضلاً عن الحماس الأولي الجزئي لمنتج VirtualHere بميزاته ...
المصدر: www.habr.com