Linux र macOS मा AnyConnect लगइन कसरी स्क्रिप्ट गर्ने
vpn बाइनरीले प्रम्प्टको क्रममा मानक इनपुटबाट उत्तरहरू पढ्छ। क्रम बनाउनुहोस्, एकपटक उद्धरणमा राख्नुहोस्, प्रक्रिया सूचीबाहिर राख्नुहोस् र पहिले एउटा स्रोत परीक्षण गर्नुहोस्।
स्क्रिप्ट शून्यसँग अन्त्य हुन्छ, सुरुङ देखिन्छ, र अर्को रन पासवर्ड माग्नुअघि नै अस्वीकार गरिन्छ। वा त्यही आदेश टर्मिनलमा काम गर्छ र तालिकाबद्ध कामबाट «घटना फेला परेन» भन्ने केही उपयोगी नाम नदिने त्रुटिसँग असफल हुन्छ। दुवै नेटवर्क खराबी होइनन्, AnyConnect क्लाइन्टको मानक इनपुट संवाद बिग्रिएको हो। लगइनलाई लिखित प्रश्नोत्तर मान्नुहोस् र असफलताहरू अनुमानयोग्य र साना हुन्छन्।
त्यही आदेश स्क्रिप्टभित्र किन असफल हुन्छ
क्लाइन्टले आफ्ना उत्तरहरू मानक इनपुटबाट पढ्छ, प्रत्येक प्रम्प्टका लागि एक लाइन, गेटवेले जुन क्रममा माग्छ त्यही क्रममा। प्रम्प्टको संख्या बदल्ने जुनसुकै कुरा, जस्तै नयाँ ब्यानर, समूह चयनकर्ता वा दोस्रो कारकको चुनौती, प्रत्येक पछिल्लो उत्तरलाई एक लाइन सार्छ। त्यसपछि क्लाइन्टले पासवर्ड अपेक्षा गरेको ठाउँमा प्रयोगकर्तानाम पढ्छ र दुवैमध्ये कुनैलाई सङ्केत नगर्ने असफलता रिपोर्ट गर्छ।
विस्मयादिबोधक चिन्ह भएको पासवर्डले अझ शान्त दोस्रो असफलता थप्छ। दोहोरो उद्धरणभित्र शेलले क्लाइन्टले केही देख्नुभन्दा धेरै अघि यसलाई विस्तार गर्छ।
पेलोडलाई एकल उद्धरणमा राख्नुहोस् र अक्षर अक्षुण्ण जान्छ। यही नै सम्पूर्ण सुधार हो, र यसले एउटै प्रमाणपत्र टाइप गर्दा काम गर्ने र भण्डारण गर्दा असफल हुने रिपोर्टहरूको सम्पूर्ण वर्ग व्याख्या गर्छ। गेटवे जाँच्नुअघि शेलले के गर्यो जाँच्नुहोस्: सटीक बाइट देखाउने आवरणबाट पेलोड छाप्नुहोस् र लाइनहरू गन्नुहोस्। यस्ता अन्वेषणहरूमध्ये धेरैजसो त्यहीँ अन्त्य हुन्छन्।
क्लाइन्टले मागेको क्रममा उत्तरहरू लेख्नुहोस्
क्लाइन्टलाई एकपटक अन्तरक्रियात्मक रूपमा चलाउनुहोस् र प्रत्येक प्रम्प्ट क्रममा लेख्नुहोस्। गेटवेले धेरै प्रोफाइल प्रकाशित गर्दा मात्र समूह चयनकर्ता देखिन्छ, र एउटा कन्फिगर गरिएको हुँदा मात्र ब्यानर प्रम्प्ट देखिन्छ। उत्तर फाइल तपाईंले वास्तवमै लक्षित गर्नुभएको गेटवेसँग मिल्नुपर्छ, कागजातकोसँग होइन।
त्यसपछि त्यही सटीक क्रममा फाइल बनाउनुहोस्, प्रत्येक लाइनमा एक उत्तर। समूह सूचकांक भनेको क्लाइन्टले सूचीबद्ध गर्ने संख्या हो, कागजातमा प्रोफाइलको स्थान होइन। ब्यानर स्वीकार गर्नुहोस् मात्र यदि तपाईंको गेटवेले एउटा पठाउँछ भने, र त्यो गेटवेले सोध्ने भनी जानिएको प्रत्येक अतिरिक्त प्रश्नका लागि एक लाइन थप्नुहोस्। क्लाइन्टलाई गैर-अन्तरक्रियात्मक झन्डासँग सुरु गर्नुहोस् ताकि यसले टर्मिनल पर्खनुको सट्टा फाइल उपभोग गरोस्।
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 प्रोफाइल मात्र प्रकाशित गर्ने गेटवेसम्म पुग्न सक्दैन, र त्यो सेवाका लागि सामान्य खुला विकल्प anyconnect प्रोटोकल छानिएको openconnect हो। pcf फाइल पुरानो Cisco क्लाइन्टको हो, र यसको होस्ट, समूहको नाम र समूह पासवर्ड अझै Cisco IPsec बोल्ने क्लाइन्टमा फेरि हाल्न सकिए पनि फाइल क्लाइन्टहरूबीच सर्दैन। असामान्य पोर्ट वा गैर-मानक सुरुङ मोड सामान्यतया त्यो स्थानान्तरणमा हराउँछ। औजार छान्नुअघि गेटवेले कुन प्रोटोकल दिन्छ निर्धारण गर्नुहोस्।