Linux இல் AnyConnect: உள்நுழைவு வரிசையைப் பாதுகாப்பாக ஸ்கிரிப்ட் செய்தல்
Cisco AnyConnect இன் vpn பைனரி stdin இலிருந்து பதில்களைப் படிக்கிறது, மீளக்கூடிய உள்நுழைவுக்கு அது போதும். வரிசையை உருவாக்கி, கோப்பைப் பாதுகாத்து, சரிபார்த்து நிற்கவும்.
Cisco AnyConnect உடன் வரும் vpn கிளையண்ட் ஒரு உரையாடல் போல நடந்துகொள்கிறது: ஒரு கேள்வியை அச்சிடுகிறது, ஒரு வரிக்காகக் காத்திருக்கிறது, பின்னர் அடுத்ததை அச்சிடுகிறது. அந்த உரையாடலை ஒரு கோப்பு அல்லது குழாயிலிருந்து உள்ளே செலுத்தினால் அதே பைனரி கண்காணிப்பு இல்லாமல் இயங்குகிறது. நுட்பம் ஒரு திருப்பிவிடல் மற்றும் ஒழுங்குபடுத்தப்பட்ட பதில் பட்டியல், ஸ்கிரிப்ட் நம்பகமானதா என்பதைத் திருப்பிவிடல் அல்ல, அந்தப் பட்டியலே தீர்மானிக்கிறது.
நடைமுறையில் இரண்டு விஷயங்கள் இதை உடைக்கின்றன. நுழைவாயில் கூடுதலாக ஏதாவது கேட்கும்போது கேள்விகளின் வரிசை மாறுகிறது, மேலும் சேமிக்கப்பட்ட கடவுச்சொல் ஒரு தட்டச்சுப் பிழையைக் கணக்குப் பூட்டாக மாற்றுகிறது. வரிசையை பதிப்பு செய்யப்பட்ட தரவாகக் கருதுங்கள், நுழைவாயிலின் எந்த மாற்றத்திற்குப் பிறகும் ஒப்பிடலாம். மீண்டும் முயல்வதற்குப் பதிலாக சத்தமாகத் தோல்வியடையுங்கள், ஏனெனில் சுழற்சியே தவறாகத் தட்டச்சு செய்த கடவுச்சொல் பூட்டப்பட்ட கணக்காகும் வழி.
ஒரு வரிசை, கிளையண்ட் கேட்கும் வரிசையிலேயே
கிளையண்டை ஒரு முறை ஊடாடும் வகையில் இயக்கி ஒவ்வொரு கேள்வியையும் தோன்றும் வரிசையில் எழுதுங்கள். அந்தப் படியெடுப்பே பதில்-கோப்பாகிறது. கோப்பை பைனரிக்குத் திருப்பிவிடும்போது முதல் வரி இணைப்புக் கட்டளையாகவே இருக்க வேண்டும், அதனால்தான் வரிசை பயனர்பெயருக்குப் பதிலாக ஹோஸ்ட் பெயரில் தொடங்குகிறது.
connect vpn.example.com
0
<username>
<password>
y
exit
வெறும் 0 நுழைவாயில் பட்டியலை வழங்கும்போது முதல் இணைப்புப் புயவரியைத் தேர்ந்தெடுக்கிறது; உங்கள் நுழைவாயில் அச்சிடும் குறியீட்டைப் பயன்படுத்துங்கள். y உள்நுழைவுப் பேனரை ஏற்கிறது, எனவே பேனர் இல்லாவிட்டால் அந்த வரியை நீக்கி, உங்கள் நுழைவாயில் கூடுதல் கேள்வி கேட்கும் இடத்தில் ஒரு வரியைச் செருகுங்கள். இறுதியில் உள்ள exit கடைசிப் பதில் செலவழிக்கப்பட்ட பிறகு கிளையண்ட் தூய்மையாக முடிவடைய அனுமதிக்கிறது.
/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt
இங்கே ஊடாடா பயன்முறை விருப்பத்தேர்வல்ல. -s இல்லாமல் கிளையண்ட் முனையத்தைக் கைப்பற்றி திருப்பிவிடப்பட்ட உள்ளீட்டைப் புறக்கணிக்கலாம்; அதனுடன் பதில்கள் ஸ்ட்ரீமிலிருந்து படிக்கப்பட்டு செயல்முறை திரும்புகிறது. பைனரிக்கு உயர்ந்த சிறப்புரிமைகள் தேவைப்படும் இடத்தில் அழைப்பை sudo -n இல் சுற்றுங்கள், அப்போது ஸ்கிரிப்ட் கடவுச்சொல் கேள்வியில் சிக்காமல் உடனே தோல்வியடையும்.
பதில்-கோப்பு எங்கு கசிகிறது
கடவுச்சொல் உள்ள கோப்பு ஒரு அடையாளச் சான்று, எனவே அதற்கு அதன் அனுமதிகளைக் கொடுங்கள்: முறை 600, வேலையை இயக்கும் கணக்கின் உரிமையில், ஒருபோதும் பங்கிடப்பட்ட அல்லது ஒத்திசைக்கப்பட்ட கோப்பகத்தில் இருக்கக்கூடாது. பின்னர் சரிசெய்வதற்குப் பதிலாக முறை ஏற்கனவே பயன்படுத்தப்பட்ட நிலையில் உருவாக்குங்கள், ஏனெனில் எழுதுதலுக்கும் chmod-க்கும் இடையில் கோப்பு சிறிது நேரம் அனைவருக்கும் படிக்கக்கூடியதாக இருக்கும்.
install -m 600 /dev/null ~/.config/anyconnect.txt
chmod 700 ~/.config
மற்ற பாதி argv. வாதமாக வழங்கப்படும் கடவுச்சொல் செயல்முறைகளைப் பட்டியலிடும் ஒவ்வொரு உள்ளூர் பயனருக்கும் தெரியும், மேலும் ஷெல் வரலாற்றிலும் சேரும். அதற்குப் பதிலாக அதைக் கோப்பு விவரிப்பான் அல்லது சூழல் மாறியிலிருந்து படியுங்கள், மேலும் ஷெல்லால் உள்ளே எதையும் விரிவாக்க முடியாதபடி சுமையை மேற்கோளில் வையுங்கள்.
printf '%s\n' 'connect vpn.example.com' '0' "$VPN_USER" "$VPN_PASS" 'y' 'exit' \
| sudo -n /opt/cisco/anyconnect/bin/vpn -s
மேற்கோள்களைக் கவனியுங்கள். இரட்டை மேற்கோள்களுக்குள் ! உள்ள கடவுச்சொல் கிளையண்ட் பார்ப்பதற்கு முன்பே ஊடாடும் ஷெல்லால் விரிவாக்கப்படலாம், மேலும் தோல்வி நெறிமுறைச் சிக்கல் போலத் தோன்றும் பொதுவான event-not-found பிழையாக வரும்.
சுரங்கப்பாதையை நிரூபித்து, பின்னர் மூடுங்கள்
இணைக்கப்பட்ட நிலை என்பது கிளையண்ட் ஒரு அமர்வு இருப்பதாக நம்புவதை மட்டுமே நிரூபிக்கிறது. நிறுவன வலைப்பின்னலுக்குள் இருந்து மட்டுமே பதிலளிக்கும் ஹோஸ்ட்டைத் தேர்ந்தெடுத்து, வேறு எதையும் செய்வதற்கு முன் ஒரு முறை சோதியுங்கள். அங்கு தோல்வி வழித்தடம் அல்லது கொள்கைக் குறைபாடு, மேலும் உள்நுழைவை மீண்டும் இயக்குவது அதை மாற்றாது.
/opt/cisco/anyconnect/bin/vpn state
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://<internal-host>/
/opt/cisco/anyconnect/bin/vpn disconnect
துண்டிப்புக்கு முன்னும் பின்னும் நிலை வெளியீட்டைச் சரிபாருங்கள். பழைய அமர்வுடன் விடப்பட்ட கிளையண்ட் அடுத்த இணைப்பை மறுக்கலாம், அதே நேரத்தில் ஸ்கிரிப்ட் இன்னும் வெற்றியைப் புகாரளிக்கிறது, மேலும் வெளியேறும் குறியீடுகளை மட்டும் பார்த்தால் இந்தத் தோல்வி முறை தெரியாது. இரண்டாவது வாசிப்பை மட்டும் நம்புவதற்குப் பதிலாக இரண்டையும் ஒப்பிடுங்கள். ஷெல் வரவரைவில் உள்ள மாற்றுப்பெயர்கள் அன்றாட பயன்பாட்டுக்குப் போதும், ஆனால் திட்டமிடப்பட்ட எதுவும் மற்ற எந்தக் கண்காணிப்பற்ற வேலையையும் போல அதே அடையாளச் சான்று மற்றும் அடையாள மறுஆய்வுக்குத் தகுதியானது.
நிலையான பட்டியல் பாதுகாப்பாக இல்லாதபோது
பதில்-கோப்பு இன்றைய கேள்வி வரிசையை குறியாக்குகிறது. மாறிய பேனர், கட்டாயக் கடவுச்சொல் மாற்றம் அல்லது இரண்டாம் காரணி சவால் அதைக் கணக்கைப் பூட்டக்கூடிய சுழற்சியாக மாற்றுகிறது, எனவே ஸ்கிரிப்ட் மீண்டும் தொடங்குவதற்குப் பதிலாக முதல் எதிர்பாராத பதிலில் வெளியேற வேண்டும்.
கிளையண்ட் அச்சிட்டதைப் பிடித்து, பூஜ்ஜியமற்ற நிலையைத் திருப்பி, முடிவை அழைப்பவருக்கு விடுங்கள். நுழைவாயில் இரண்டாம் காரணியைக் கோரும் இடத்தில், நேர்மையான பதில் அந்தப் புயவரிக்கு கண்காணிப்பற்ற உள்நுழைவு கிடைக்காது என்பதே, வரிசைக்கு இன்னும் ஒரு வரி தேவை என்பது அல்ல.
சுழற்சியும் அதே மறுஆய்வில் அடங்கும். அடையாளச் சான்று சேமிக்கப்பட்டால், அதை யார் படிக்கலாம், எப்போது மாறுகிறது, ஹோஸ்ட் மீண்டும் கட்டப்படும்போது எது அதை நீக்குகிறது என்பதை முடிவு செய்யுங்கள். யாரும் கடவுச்சொல்லைத் தொடாததால் ஒரு வருடம் இயங்கும் ஸ்கிரிப்ட் வடிவமைப்பல்ல, சுழற்சிக் கொள்கைக்காகக் காத்திருக்கும் விபத்து.
AnyConnect அல்லாத புயவரிகள்
Cisco-வின் இரண்டு பழைய அடையாளச் சான்று பாணிகள் இதனுடன் குழப்பப்படுகின்றன. vpnc புயவரி ஒரு IPSec ID கேட்கிறது, அது உண்மையில் குழுவின் பெயர், பின்னர் குழு ரகசியம், பின்னர் உங்கள் சொந்த அடையாளச் சான்றுகள், மூன்றும் நுழைவாயிலை இயக்குபவரிடமிருந்து வருகின்றன. பழைய Cisco IPsec AnyConnect-ஐ விட வேறு நெறிமுறை, எனவே vpnc AnyConnect-மட்டும் சேவையை அடைய முடியாது; openconnect --protocol=anyconnect அந்த வேலைக்கான திறந்த கிளையண்ட்.
.pcf கோப்பு பழைய கிளையண்ட் புயவரியை விவரிக்கிறது. அதிலுள்ள ஹோஸ்ட், குழுப் பெயர் மற்றும் குழுக் கடவுச்சொல் Cisco IPsec பேசும் கிளையண்டில் கையால் மீண்டும் உள்ளிடலாம், இருப்பினும் கோப்பு உலகளாவிய இறக்குமதி அல்ல, மேலும் இயல்புநிலை அல்லாத துறைமுகம் அல்லது சுரங்கப்பாதை பயன்முறை பொதுவாக மாற்றத்தில் மறைந்துவிடும்.
நுழைவாயில் உண்மையில் வழங்குவதிலிருந்து தொடங்கி, அந்த நெறிமுறையைப் பேசும் கிளையண்டைத் தேர்ந்தெடுங்கள். வேறு தளத்திலிருந்து புயவரியை நகலெடுப்பதே ஒருபோதும் சிக்கலாக இல்லாத அடையாளச் சான்றுகளை பிழைத்திருத்தும் வழி.