Πώς να γράψετε σενάριο για σύνδεση AnyConnect σε Linux και macOS
Το δυαδικό vpn διαβάζει απαντήσεις από την τυπική είσοδο με τη σειρά των προτροπών. Χτίστε την ακολουθία, βάλτε τη μία φορά σε εισαγωγικά, κρατήστε τη έξω από τη λίστα διεργασιών και δοκιμάστε πρώτα έναν πόρο.
Το σενάριο τερματίζει με μηδέν, η σήραγγα εμφανίζεται και η επόμενη εκτέλεση απορρίπτεται πριν καν ζητήσει κωδικό πρόσβασης. Ή η ίδια εντολή λειτουργεί σε τερματικό και αποτυγχάνει από προγραμματισμένη εργασία με σφάλμα «το συμβάν δεν βρέθηκε» που δεν ονομάζει τίποτα χρήσιμο. Και τα δύο είναι η συζήτηση της τυπικής εισόδου του πελάτη AnyConnect που πάει στραβά, όχι βλάβη δικτύου. Αντιμετωπίστε τη σύνδεση ως γραπτή ερώτηση και απάντηση και οι αποτυχίες γίνονται προβλέψιμες και μικρές.
Γιατί η ίδια εντολή αποτυγχάνει μέσα σε σενάριο
Ο πελάτης διαβάζει τις απαντήσεις του από την τυπική είσοδο, μία γραμμή ανά προτροπή, με τη σειρά που τις ζητά η πύλη. Οτιδήποτε αλλάζει τον αριθμό των προτροπών, όπως ένα νέο πανό, ένας επιλογέας ομάδας ή μια πρόκληση δεύτερου παράγοντα, μετατοπίζει κάθε επόμενη απάντηση κατά μία γραμμή. Έπειτα ο πελάτης διαβάζει όνομα χρήστη εκεί που περίμενε κωδικό πρόσβασης και αναφέρει αποτυχία που δεν δείχνει σε κανένα από τα δύο.
Ένας κωδικός πρόσβασης που περιέχει θαυμαστικό προσθέτει μια πιο ήσυχη δεύτερη αποτυχία. Μέσα σε διπλά εισαγωγικά το κέλυφος τον επεκτείνει πολύ πριν ο πελάτης δει οτιδήποτε.
Βάλτε το φορτίο σε απλά εισαγωγικά και ο χαρακτήρας ταξιδεύει άθικτος. Αυτή είναι όλη η διόρθωση και εξηγεί μια ολόκληρη κατηγορία αναφορών όπου τα ίδια διαπιστευτήρια λειτουργούν όταν πληκτρολογούνται και αποτυγχάνουν όταν αποθηκεύονται. Ελέγξτε τι έκανε το κέλυφος πριν ελέγξετε την πύλη: εκτυπώστε το φορτίο μέσα από ένα περιτύλιγμα που δείχνει τα ακριβή byte και μετρήστε τις γραμμές. Οι περισσότερες τέτοιες έρευνες τελειώνουν εκεί.
Γράψτε τις απαντήσεις με τη σειρά που τις ζητά ο πελάτης
Εκτελέστε τον πελάτη διαδραστικά μία φορά και σημειώστε κάθε προτροπή με σειρά. Ένας επιλογέας ομάδας εμφανίζεται μόνο όταν η πύλη δημοσιεύει πολλά προφίλ, και μια προτροπή πανό εμφανίζεται μόνο όταν έχει ρυθμιστεί ένα. Το αρχείο απαντήσεων πρέπει να ταιριάζει με την πύλη στην οποία πραγματικά στοχεύετε, όχι με αυτή της τεκμηρίωσης.
Έπειτα χτίστε το αρχείο με αυτήν την ακριβή ακολουθία, μία απάντηση ανά γραμμή. Το ευρετήριο ομάδας είναι ο αριθμός που παραθέτει ο πελάτης, όχι η θέση ενός προφίλ σε ένα έγγραφο. Δεχτείτε το πανό μόνο αν η πύλη σας στέλνει ένα και προσθέστε μια γραμμή για κάθε επιπλέον ερώτηση που είναι γνωστό ότι κάνει αυτή η πύλη. Ξεκινήστε τον πελάτη με τη σημαία μη διαδραστικής λειτουργίας ώστε να καταναλώνει το αρχείο αντί να περιμένει τερματικό.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtΗ ίδια ακολουθία μπορεί να φτάσει μέσω σωλήνα όταν προτιμάτε να μην κρατάτε αρχείο στον δίσκο. Οι κανόνες εισαγωγικών εξακολουθούν να κρίνουν αν θα επιβιώσει.
Κρατήστε τα διαπιστευτήρια έξω από τη λίστα διεργασιών
Ένα όρισμα στη γραμμή εντολών είναι αναγνώσιμο από κάθε τοπικό χρήστη για όλη τη ζωή της διεργασίας, άρα ο κωδικός πρόσβασης ανήκει σε αρχείο ή σωλήνα και ποτέ στη λίστα ορισμάτων. Κάντε αυτό το αρχείο αναγνώσιμο μόνο από τον λογαριασμό που εκτελεί το σενάριο και διαγράψτε το όταν τελειώσει η εργασία. Στο macOS το δυαδικό βρίσκεται συνήθως στην ίδια διαδρομή όπως στο Linux, αλλά επιβεβαιώστε την εγκατεστημένη θέση αντί να την υποθέσετε. Ένα περιτύλιγμα που ελέγχει και τις δύο διαδρομές είναι συντομότερο από την αναφορά του περιστατικού.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleΜην αφήνετε ούτε το σενάριο να επαναλαμβάνει για πάντα. Ένα αλλαγμένο πανό ή ένας κωδικός που έληξε μέσα στη νύχτα μετατρέπουν ένα σταθερό αρχείο απαντήσεων σε βρόχο επαναλήψεων, και αυτός ο βρόχος κλειδώνει τον λογαριασμό.
Αποτύχετε μία φορά, εκτυπώστε το δικό του κείμενο σφάλματος του πελάτη και βγείτε. Μια προγραμματισμένη εργασία χρειάζεται την ίδια εξέταση ταυτότητας και διαθεσιμότητας διαπιστευτηρίων όπως κάθε άλλη εργασία χωρίς επιτήρηση, γιατί ένα διαπιστευτήριο που λήγει σιωπηλά δεν ξεχωρίζει από μια διακοπή στις τρεις τα ξημερώματα.
Επιβεβαιώστε τη συνεδρία πριν εμπιστευτείτε τον κωδικό εξόδου
Μια συνδεδεμένη κατάσταση αποδεικνύει ότι η σήραγγα υπάρχει και τίποτα πέρα από αυτό. Δοκιμάστε έναν πόρο που πρέπει να είναι προσβάσιμος μέσω αυτής πριν το σενάριο αρχίσει πραγματική δουλειά, και αντιμετωπίστε μια αποτυχία εκεί ως διαφορετική βλάβη από μια αποτυχημένη σύνδεση. Αλλιώς θα επαναλάβετε μια απολύτως καλή σύνδεση που απλώς δεν μπορεί να φτάσει στον προορισμό της.
Ζητήστε από τον πελάτη την κατάστασή του πριν και μετά την αποσύνδεση, γιατί μια παρωχημένη συνεδρία μπορεί να αρνηθεί την επόμενη σύνδεση ενώ το σενάριό σας αναφέρει επιτυχία.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectΚαταγράψτε την έξοδο κατάστασης δίπλα στον κωδικό εξόδου, αφού ένας κωδικός μόνος του δεν μπορεί να ξεχωρίσει μια απορριφθείσα σύνδεση από μια συνεδρία που δεν έκλεισε ποτέ. Όταν η πύλη απαιτεί δεύτερο παράγοντα ή διαδραστική έγκριση, σταματήστε να γράφετε αυτό το βήμα ως σενάριο και χρησιμοποιήστε τον μηχανισμό που υποστηρίζει ο πελάτης. Ένα σταθερό αρχείο απαντήσεων είναι ευκολία για διαπιστευτήρια που ελέγχετε, όχι τρόπος να παρακάμψετε ένα βήμα ταυτοποίησης που δεν ελέγχετε. Κρατήστε το πεδίο τόσο στενό και αυτό παραμένει ένα σύντομο σενάριο.
Πότε ένα σταθερό αρχείο απαντήσεων είναι το λάθος εργαλείο
Ένας δεύτερος παράγοντας ή μια προτροπή έγκρισης ανατρέπουν εντελώς το μοτίβο, και αυτό είναι όριο σχεδιασμού και όχι γρίφος σεναρίου. Χρησιμοποιήστε όποιον μηχανισμό υποστηρίζει ο πελάτης για αυτό το βήμα αντί να μαντέψετε την απάντηση εκ των προτέρων. Ένα σταθερό αρχείο λειτουργεί μόνο για διαπιστευτήρια που μένουν ίδια μεταξύ εκτελέσεων.
Δύο παλαιότερα στυλ διαπιστευτηρίων επίσης μπερδεύονται με το AnyConnect. Ένα προφίλ vpnc μιλά άλλο πρωτόκολλο και θέλει το όνομα ομάδας ως αναγνωριστικό IPSec, μετά ένα κοινό μυστικό ομάδας και μετά τα δικά σας στοιχεία λογαριασμού.
Επειδή τα πρωτόκολλα διαφέρουν, το vpnc δεν μπορεί να φτάσει σε πύλη που δημοσιεύει μόνο προφίλ AnyConnect, και η συνηθισμένη ανοιχτή εναλλακτική για αυτή την υπηρεσία είναι το openconnect με επιλεγμένο το πρωτόκολλο anyconnect. Ένα αρχείο pcf ανήκει στον παλιό πελάτη Cisco και, αν και ο κεντρικός υπολογιστής, το όνομα ομάδας και ο κωδικός ομάδας του μπορούν να ξαναεισαχθούν σε πελάτη που μιλά ακόμη Cisco IPsec, το αρχείο δεν μεταφέρεται μεταξύ πελατών. Μια ασυνήθιστη θύρα ή μια μη τυπική λειτουργία σήραγγας χάνεται συνήθως σε αυτή τη μεταφορά. Αποφασίστε ποιο πρωτόκολλο προσφέρει η πύλη πριν διαλέξετε εργαλείο.