در ارتباط با تغییرات در قوانین مربوط به خدمات اعتماد ("درباره خدمات اعتماد الکترونیکی" اوکراین)، این شرکت به چندین بخش برای کار با کلیدهای واقع در نشانه ها نیاز دارد (در حال حاضر سؤال تعداد کلیدهای سخت افزاری هنوز باز است. ).
به عنوان ابزاری با کمترین هزینه (رایگان)، انتخاب بلافاصله روی آن افتاد
سوال این بود: چگونه می توانم با کمترین رقص این کار را انجام دهم تا همه چیز برای همه کار کند...
قسمت دست و پا چلفتی است
انتخاب 1. چند میانبر برای فایل های bat، یعنی
الف) اتصال کلید دسترسی.
ب) قطع عمدی.
پاراگراف "б» بحث برانگیز است، بنابراین تصمیم گرفته شد که مدت زمان کار با کلید در 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 نشان داد که همه چیز قابل پیش بینی، قابل اعتماد و واضح است. علاوه بر این، هیچ دستکاری از سمت سرور مورد نیاز نیست.
به طور طبیعی، هنگام کار مستقیم با توکن، همه چیز مطابق انتظار پیش نرفت: با اتصال فیزیکی در مدیر دستگاه، توکن به عنوان 2 دستگاه (WUDF و یک کارت هوشمند) و با اتصال شبکه فقط به عنوان WUDF ثبت می شود (اگرچه این برای درخواست یک کد پین کافی است).
همچنین مشخص میشود که «تکلیف» بیرحمانه چندان شدید نیست و بستن اتصال روی کلاینت مشکلساز است و حتی در صورت موفقیتآمیز بودن، بستن آن را در سرور برای او تضمین نمیکند.
اسکریپت دوم با فدا کردن تمام کنسولها روی کلاینت به شکل زیر در آمد:
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
یک پوشه اسکریپت با اسکریپت در ریشه ایجاد شده است: unmounting-mounting 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
خود کرونتاب به شکل زیر است:
*/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 را نشان می دهد.
قسمت بعدی: «زشت در لفاف»
گزینه دوم برای خوشحال کردن کاربر با حداقل یک رابط کاربری کمتر ترسناک. متعجب از این واقعیت که کاربران نسخه های مختلف ویندوز با چارچوب های مختلف، حقوق متفاوت، رویکردی کمتر مشکل ساز دارند.
وظایف زیر توسط رابط و نرم افزار حل شد:
- نشان می دهد که آیا توکن در حال حاضر مشغول است یا خیر.
- در اولین راهاندازی، راهاندازی اولیه شامل تولید فایلهای bat "درست" است که راهاندازی و قطع یک جلسه با سرور رمز را اجرا میکند. در شروع های بعدی، اجرای حالت "سرویس" با استفاده از رمز عبور.
- بررسی وجود اتصال با سرور، در نتیجه نظرسنجی میکند که آیا مشغول است یا پیامهایی درباره مشکلات نمایش میدهد. هنگامی که ارتباط از سر گرفته می شود، برنامه به طور خودکار در حالت عادی شروع به کار می کند.
کار با سرور وب با استفاده از اضافی fphttpclient snap-in پیاده سازی می شود.
همچنین ملاحظات بیشتری در مورد موضوع مقاله و همچنین اشتیاق اولیه جزئی برای محصول VirtualHere با ویژگی های آن وجود دارد ...
منبع: www.habr.com