Σε σχέση με τις αλλαγές στη νομοθεσία σχετικά με τις υπηρεσίες εμπιστοσύνης ("Σχετικά με τις υπηρεσίες ηλεκτρονικής εμπιστοσύνης" Ουκρανία), η επιχείρηση χρειάζεται πολλά τμήματα να εργαστούν με κλειδιά που βρίσκονται σε μάρκες (προς το παρόν, το ζήτημα του αριθμού των κλειδιών υλικού είναι ακόμα ανοιχτό ).
Ως εργαλείο με το χαμηλότερο κόστος (δωρεάν), η επιλογή έπεσε αμέσως
Το ερώτημα ήταν: Πώς μπορώ να το κάνω με τον ελάχιστο χορό, ώστε όλα να λειτουργούν για όλους...
Το κομμάτι είναι αδέξιο
Επιλογή XNUMX. Αρκετές συντομεύσεις για αρχεία bat, συγκεκριμένα
α) Σύνδεση του κλειδιού πρόσβασης.
β) Σκόπιμη αποσύνδεση.
Παράγραφος "б» αμφιλεγόμενο, γι' αυτό αποφασίστηκε να δοθεί ο χρόνος εργασίας με το κλειδί στα 3 λεπτά.
Η ιδιαιτερότητα του προγράμματος-πελάτη usbip είναι ότι μετά την εκκίνησή του παραμένει κρεμασμένος στην κονσόλα· χωρίς να διακόψετε τη συνεδρία της κονσόλας, μπορείτε να κλείσετε τη σύνδεση «κατά προσέγγιση» από την πλευρά του πελάτη αλλά και από την πλευρά του διακομιστή.
Να τι λειτούργησε καλά για εμάς:
πρώτο: σύνδεση on.bat
usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "
δεύτερο: διακοπή λειτουργίας off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F
Χωρίς να βασίζονται στη συνείδηση του χρήστη, τα σενάρια συνδυάστηκαν σε συμβολικό.ρόπαλο
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
Ένας φάκελος σεναρίου με σενάρια έχει δημιουργηθεί στο root: 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
το ίδιο το 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.
Επόμενο μέρος: "Άσχημο σε περιτύλιγμα"
Επιλογή II. Για να ευχαριστήσουμε λίγο τον χρήστη με τουλάχιστον κάποια λιγότερο εκφοβιστική διεπαφή. Απορώτοι από το γεγονός ότι οι χρήστες έχουν διαφορετικές εκδόσεις των Windows με διαφορετικά πλαίσια, διαφορετικά δικαιώματα, μια λιγότερο προβληματική προσέγγιση από
Οι ακόλουθες εργασίες επιλύθηκαν από τη διεπαφή και το λογισμικό:
- Εμφανίζει εάν το διακριτικό είναι απασχολημένο αυτήν τη στιγμή.
- Κατά την πρώτη εκκίνηση, η αρχική ρύθμιση περιλαμβάνει τη δημιουργία των «σωστών» αρχείων bat που υλοποιούν την εκκίνηση και τη διακοπή μιας περιόδου λειτουργίας με τον διακομιστή διακριτικών. Στις επόμενες εκκινήσεις, υλοποίηση της λειτουργίας «υπηρεσία» με χρήση κωδικού πρόσβασης.
- Έλεγχος ύπαρξης σύνδεσης με τον διακομιστή, με αποτέλεσμα να ελέγχει εάν είναι απασχολημένος ή εμφανίζει μηνύματα σχετικά με προβλήματα. Όταν επαναληφθεί η επικοινωνία, το πρόγραμμα ξεκινά αυτόματα να λειτουργεί σε κανονική λειτουργία.
Η εργασία με τον διακομιστή WEB υλοποιείται χρησιμοποιώντας το πρόσθετο συμπληρωματικό πρόγραμμα fphttpclient.
Υπάρχουν επίσης περαιτέρω σκέψεις σχετικά με το θέμα του άρθρου, καθώς και μερικός αρχικός ενθουσιασμός για το προϊόν VirtualHere με τα χαρακτηριστικά του...
Πηγή: www.habr.com