ஒவ்வொரு சுயவிவரத்திற்கும் தனித் தேர்வுகளுடன் பல vpnc சுரங்கங்களை இயக்கத்தில் வைத்திருங்கள்
தொகுப்புடன் வரும் மறுஇணைப்பு ஸ்கிரிப்ட் ஒரு சுரங்கத்தை மட்டுமே கருதுகிறது. ஒவ்வொரு vpnc சுயவிவரத்திற்கும் அதன் சொந்த துறைமுகத்தைக் கொடுங்கள், உண்மையான சேவையைச் சோதியுங்கள், தேர்வுகளை ஒரே நிலையான வரிசையில் இணையுங்கள்.
ஒரு vpnc சுயவிவரம் சுற்றுலாவுக்குப் பிறகு தூய்மையாக மீண்டும் இணைகிறது; மூன்று அவற்றுள் ஒன்றன் பின் ஒன்றாக ஒருவரையொருவர் சாக்கெட்டுகள், வழித்தடங்கள் மற்றும் தீர்வி நிலையை உடைக்கின்றன. தொகுப்புடன் வரும் மறுஇணைப்பு ஸ்கிரிப்ட் ஒரு சுரங்கத்திற்கே எழுதப்பட்டுள்ளது, எனவே அவற்றுள் ஏதேனும் ஒன்று செயலிழந்தால் அது ஒவ்வொரு சுயவிவரத்தையும் மீண்டும் தொடங்குகிறது. இதைச் சரிசெய்ய மூன்று விஷயங்கள் தேவை: தனித்த உள்ளூர் துறைமுகங்கள், ஒவ்வொரு சுயவிவரத்திற்கும் உண்மையான சேவையைச் சோதிக்கும் ஒரு தேர்வு, மற்றும் ஒருபோதும் இரண்டு இணைப்புகளை ஒரே நேரத்தில் இயக்காத ஒரு ஒழுங்குபடுத்தப்பட்ட சங்கிலி.
ஒவ்வொரு சுயவிவரத்திற்கும் அதன் சொந்த உள்ளூர் துறைமுகத்தைக் கொடுங்கள்
இயல்புநிலை உள்ளூர் துறைமுகத்தில் விடப்பட்ட vpnc சுயவிவரம் ஏற்கனவே இயங்கும் சுயவிவரத்துடன் போட்டியிடுகிறது. முதல் ஒன்று துறைமுகத்தைப் பிடித்திருக்கும் போது இரண்டாவது இணைப்பு தோல்வியடைகிறது, மற்றும் பதிவு வரி உள்ளூர் மோதலாக அல்லாமல் நுழைவாயில் சிக்கலாகத் தெரிகிறது. அதற்குப் பதிலாக ஒவ்வொரு சுயவிவரக் கோப்பிற்கும் ஒரு வரியை அமையுங்கள்:
Local Port 0பூஜ்யம் கர்னலை தற்காலிக துறைமுகத்தைத் தேர்ந்தெடுக்க அனுமதிக்கிறது, எனவே இரண்டு சுயவிவரங்களை ஒரே நேரத்தில் நிறுவ முடியும். ஒவ்வொரு கோப்பையும் அது சேவை செய்யும் நுழைவாயில் மற்றும் குழுவின் பெயரால் பெயரிடுங்கள், அதை root மட்டுமே படிக்கக்கூடியதாக வைத்திருங்கள், மற்றும் எப்போதும் பகிரப்பட்ட இயல்புநிலைக்குப் பதிலாக பொருந்தும் சுயவிவரத்துடன் இணையுங்கள். யாரோ ஒரு சுயவிவரத்தின் பெயரை மாற்றிய பிறகு ஸ்கிரிப்ட் தவறான சுரங்கத்துடன் மீண்டும் இணையும் வழி பகிரப்பட்ட இயல்புநிலைக் கோப்பாகும்.
சுயவிவரக் கோப்புகள் சான்றுகளைக் கொண்டுள்ளன, எனவே அனுமதிகள் வடிவமைப்பின் பகுதி, வீட்டு வேலையின் அல்ல. /etc/vpnc கீழ் அனைவரும் படிக்கக்கூடிய கோப்பு குழுவின் ரகசியத்தை ஒவ்வொரு உள்ளூர் பயனருக்கும் கொடுக்கிறது. பயன்முறையை 0600 ஆகவும் உரிமையாளரை root ஆகவும் வைத்திருங்கள், மேலும் ஸ்கிரிப்டுகள் ரகசியங்களை வாதங்களில் நகலெடுப்பதற்குப் பதிலாக கோப்பை root ஆகப் படிக்கட்டும். அதனால்தான் தேர்வு ஸ்கிரிப்ட் ஒருபோதும் கோப்பின் உள்ளடக்கத்தைப் பதிவில் எழுதக்கூடாது.
ஒவ்வொரு சுயவிவரத்திற்கும் ஒரு சேவையைச் சோதியுங்கள், சுரங்க முகவரியை அல்ல
சுரங்கத்தின் சொந்த முகவரிக்கு அனுப்பப்படும் எதிரொலிக் கோரிக்கை இடைமுகம் உள்ளது என்பதை மட்டுமே பெரும்பாலும் நிரூபிக்கிறது. அதன் பின்னால் உள்ள ஹோஸ்ட் சுரங்கத்தை நியாயப்படுத்தும் பயன்பாட்டை இன்னும் அடைகிறதா என்பதைப் பற்றி அது எதுவும் சொல்லவில்லை. இடைமுகம் மேலே இருக்கலாம், அதற்கு அப்பால் உள்ள வழித்தடம் ஏற்கனவே போய்விட்டிருக்கும்.
ஒவ்வொரு சுயவிவரத்திற்கும் ஒரு சேவையைச் சுருக்கமான TCP நேர வரம்புடன் சோதித்து, தேர்வு தோல்வியடைந்த சுயவிவரத்தை மட்டும் மீண்டும் இணையுங்கள். இரண்டு வினாடிகள் இறந்த பாதையை மெதுவான பாதையிலிருந்து பிரிக்கின்றன, மேலும் TCP தேர்வு வழியில் எங்காவது ICMP அனுமதிக்கப்படுகிறதா என்பதைப் பொறுத்தது அல்ல. சுயவிவரங்களுக்கிடையே இலக்கையும் உள்ளமைவின் பெயரையும் மட்டும் மாற்றுங்கள்:
#!/bin/bash
set -eu
if ! nc -z -w 2 10.63.7.20 8443; then
/usr/sbin/vpnc-connect ops.conf
fiஅதை /usr/local/bin/ensure-vpn-ops.sh ஆகச் சேமித்து, இயக்கக்கூடியதாக்கி, தேர்வின் இலக்கையும் உள்ளமைவின் பெயரையும் மட்டும் மாற்றி ஒவ்வொரு சுயவிவரத்திற்கும் திரும்பச் செய்யுங்கள். நெறிமுறைக் கேள்விக்குப் பதிலளிக்கும் தேர்வு, எதிரொலியை வீசிவிட்டு பயனர்களுக்கு முக்கியமான சேவைகளை இன்னும் அனுப்பும் நுழைவாயில்களைக் கடந்து நிலைத்திருக்கிறது.
தேர்வுகள் ஒருபோதும் போட்டியிடாதபடி அவற்றைச் சங்கிலியாக இணையுங்கள்
தொகுப்பின் மறுஇணைப்பு ஸ்கிரிப்ட் உங்கள் தேர்வுகளை வரிசையாக அழைக்க முடியும், வரிசையே முழு விஷயம். ஒன்றாக இயங்கும் இரண்டு vpnc-connect அழைப்புகள் யாரும் கட்டுப்படுத்தாத வரிசையில் வழித்தட அட்டவணையை மீண்டும் எழுதுகின்றன, அதனால்தான் ஆரோக்கியமான சுயவிவரம் அதன் வழித்தடத்தை இழக்கிறது.
அழைப்புகளை முன்னணியில் வைத்திருங்கள், கீழ் இடைமுகத்திற்கு சிறிய நிலைப்படுத்தல் தாமதத்தைச் சேருங்கள், மற்றும் சங்கிலியை root இன் cron அட்டவணையிலிருந்து திட்டமிடுங்கள், ஏனெனில் சுரங்க வழித்தடங்களை மீண்டும் எழுத root மட்டுமே முடியும்:
#!/bin/bash
sleep 20
/usr/local/bin/ensure-vpn-ops.sh
/usr/local/bin/ensure-vpn-lab.shதொடக்க ஸ்கிரிப்டுக்கும் cron உள்ளீட்டுக்கும் இடையே வரிசையை ஒரே மாதிரியாக வைத்திருங்கள், ஏனெனில் தொடக்கத்தில் வேறு வரிசையில் இயங்கும் சங்கிலி உண்மையில் வேறு நிரலாகும். ஒரு சுயவிவரம் மற்றொன்றின் வழித்தடங்களைச் சார்ந்திருக்கும்போது, சார்பை முதலில் வையுங்கள், முந்தைய சுரங்கம் இன்னும் ஏறிக்கொண்டிருக்கும்போது பிந்தைய தேர்வு பாதிப்பின்றி தோல்வியடையட்டும்.
பதிவைக் கவனியுங்கள், பிறகு ஒன்றை வேண்டுமென்றே உடையுங்கள்
ஒவ்வொரு இயக்கத்திற்கும் ஒரு வரியைப் பதிவு செய்யுங்கள் — சுயவிவரம், தேர்வின் இலக்கு, முடிவு மற்றும் எடுக்கப்பட்ட நடவடிக்கை. அது இல்லாமல், ஒவ்வொரு நிமிடமும் அசையும் சுரங்கம் ஒருபோதும் விழாத சுரங்கம் போலவே தெரிகிறது, மேலும் தேர்வுப் பிழையை நுழைவாயில் தடங்கலிலிருந்து வேறுபடுத்த முடியாது. சங்கிலி தோல்வியடைந்த சுயவிவரத்தை மட்டுமே தொட்டது என்பதையும் பதிவு நிரூபிக்கிறது. மறுதொடக்கத்திற்குப் பிறகும் நிலைக்கும் இடத்தில் அதை எழுதுங்கள், இல்லையெனில் சான்று செயல்முறையுடன் போய்விடும்.
பிறகு ஒரு சுரங்கத்தை வேண்டுமென்றே உடைத்து என்ன நடக்கிறது என்று பாருங்கள். ஒரே ஒரு சுயவிவரத்தை நிறுத்தி, எந்தச் செயல்முறைகளும் வழித்தடங்களும் இன்னும் உள்ளன என்பதை உறுதிசெய்யுங்கள்:
pgrep -a vpnc
ip -4 route show | grep -E '10[.]63|10[.]90'
tail -n 5 /var/log/ensure-vpn.logநிறுத்தப்பட்ட சுயவிவரம் மட்டுமே மீண்டும் இணைய வேண்டும், மற்ற அமர்வுகள் அவற்றின் செயல்முறைகளையும் வழித்தடங்களையும் இரண்டையும் தக்கவைக்க வேண்டும். இரண்டு சுயவிவரங்கள் மீண்டும் தொடங்கினால், உங்கள் சங்கிலி நீங்கள் எதிர்பார்க்காத இடத்தில் இணையாக இயங்குகிறது.
காவலர் செய்யக்கூடாதது
ஏதேனும் தோல்வியடையும் போதெல்லாம் அனைத்தையும் மீண்டும் தொடங்கும் காவலர் சோதனையின் போது ஆரோக்கியமாகத் தெரிகிறார், பராமரிப்பு சாளரத்தில் தடங்கலை ஏற்படுத்துகிறார். சுயவிவரம் வாரியாக மீண்டும் தொடங்குங்கள், ஒருபோதும் உலகளவில் அல்ல.
அதே நெறிமுறைக்கு நுழைவாயில் பராமரிக்கப்படும் கிளையண்டை வழங்கினால் அதைத் தேர்ந்தெடுங்கள், மேலும் ஸ்கிரிப்டில் கடவுச்சொல்லை ஒருபோதும் நேரடியாக எழுதவோ கட்டளை வரியில் அனுப்பவோ வேண்டாம், ஏனெனில் சுயவிவரக் கோப்பு ஏற்கனவே ரகசியத்தை வைத்திருக்கிறது. சுரங்கம் ஏறிய பிறகு ஒரு பணி சாதாரண பயனராக இயங்க வேண்டும் என்றால், முழுச் சங்கிலியையும் அந்தக் கணக்கின் கீழ் இயக்குவதற்குப் பதிலாக ஸ்கிரிப்டின் உள்ளிருந்தே சிறப்புரிமைகளைக் குறைக்கவும். இறுதியாக, மீண்டும் இணைந்த பிறகு வழித்தடங்களை மீண்டும் படியுங்கள், ஏனெனில் ஒரு சுயவிவரம் வேறு ஒதுக்கப்பட்ட முகவரியுடன் திரும்பி, சுரங்க முகவரியை நோக்கிய எந்தத் தேர்வும் ஒருபோதும் கவனிக்காத பழைய வழித்தடத்தை விட்டுச் செல்லலாம்.