OpenVPN இன் script-security நிலைகள் 0 முதல் 3 வரை, ஒவ்வொன்றும் எதைத் திறக்கிறது
ஒவ்வொரு script-security நிலையும் ஒரு சுயவிவரம் எதை இயக்கலாம் என்பதை விரிவுபடுத்துகிறது: முதலில் நிர்வாக உதவியாளர்கள், பிறகு பயனர் ஸ்கிரிப்ட்கள், பிறகு சூழலில் கடவுச்சொற்கள். வழிமுறைகளைப் படியுங்கள்.
ஒரு சுயவிவரத்தை டெஸ்க்டாப் கிளையண்டில் இறக்குமதி செய்யுங்கள், முதல் தோல்வி பெரும்பாலும் கிளையண்ட் மதிக்க மறுக்கும் ஒரு வரியாகவே இருக்கும்: அது இயக்காத ஸ்கிரிப்ட் கொக்கி, அல்லது மிகவும் அனுமதிக்கூடியதாக அது கருதும் script-security மதிப்பு. எண்ணை உயர்த்தினால் உரையாடல் மறைந்துவிடும். ஆனால் ஒரு எச்சரிக்கையை மூடுவதற்காக மட்டும் அதை வழங்குவது விந்தையானது, ஏனெனில் அது அந்த சுயவிவரம் உங்கள் இயந்திரத்தில் இயக்கக்கூடிய எல்லையையும் விரிவுபடுத்துகிறது. இறக்குமதியை வழிமுறை வரை பின்தொடருங்கள், முடிவு உறுதியாகிறது.
இறக்குமதி உரையாடலில் இருந்து வழிமுறை வரை
சுயவிவரம் வழிமுறைகளைக் கொண்ட உரைக் கோப்பு, எந்தச் சுரங்கப்பாதையும் உருவாகும் முன்பே கிளையண்ட் அவற்றைப் படிக்கிறது. up, down அல்லது tls-verify போன்ற வழிமுறை, OpenVPN ஒரு குறிப்பிட்ட தருணத்தில் இயக்க வேண்டிய வெளிப்புற நிரலைக் குறிப்பிடுகிறது. OpenVPN அதை இயக்கத் தயாரா என்பது script-security எனப்படும் தனி அமைப்பு, சுயவிவரம் பொதுவாக அதையும் அமைக்கிறது.
எனவே எச்சரிக்கை நுண்கலவியல் அல்லது சான்றிதழ்களைப் பற்றியது அல்ல. ஒரு கட்டமைப்புக் கோப்பு கிளையண்டை ஹோஸ்ட்டில் ஏதாவது இயக்கச் சொல்வதையும், கிளையண்ட் அதன் தற்போதைய அனுமதி நிலை அந்தக் கோரிக்கையை அனுமதிக்கிறதா எனப் பரிசோதிப்பதையும் பற்றியது.
இந்த நிலையில் இரண்டு வெவ்வேறு தோல்விகள் ஒரே மாதிரி தெரிகின்றன. கிளையண்ட் தராத நிலையைக் கேட்கும் சுயவிவரம் மறுப்பை உருவாக்குகிறது. கிளையண்ட் தரும் நிலையைக் கேட்கும் ஆனால் ஸ்கிரிப்ட் இல்லாத சுயவிவரம் அதற்குப் பதிலாக இயக்கும் நேரத்தில் தோல்வியை உருவாக்குகிறது, ஆதரவு இழைகளில் இரண்டும் கலக்கப்படுகின்றன. ஒன்று அனுமதியின் கேள்வி, மற்றொன்று பொதியிடலின் கேள்வி.
ஒவ்வொரு நிலையும் உண்மையில் எதைத் திறக்கிறது
நிலை 0 வெளிப்புற நிரல் அழைப்புகளை முழுவதுமாகத் தடைசெய்கிறது, இது உதவியின்றி தன் இடைமுகத்தைத் தானே கட்டமைக்கும் கிளையண்டுக்கு ஒத்ததாகவும், இயக்க முறைமையை அழைக்கும் கிளையண்டுக்கு ஒவ்வாததாகவும் இருக்கிறது. நிலை 1, இயல்புநிலை, இடைமுகம் மற்றும் வழித்தடக் கட்டமைப்புக்குத் தேவையான உள்ளமைந்த இயக்கக்கூடிய கோப்புகளை அனுமதிக்கிறது. எந்த நிலையும் பயனர் வழங்கிய எதையும் இயக்குவதில்லை.
| Level | What OpenVPN may execute | What it exposes |
|---|---|---|
| 0 | No external programs at all | Interface and route setup must not depend on helpers |
| 1 (default) | Built-in helpers such as ip, ifconfig, route or netsh | Privileged commands the platform already ships |
| 2 | Built-in helpers plus user-defined scripts | Whatever the named script does with the client's privileges |
| 3 | Everything above, plus passwords in environment variables | Credentials visible to child processes and their logs |
நிலை 2 சுவாரஸ்யமான எல்லை, ஏனெனில் அது பயனர் வரையறுத்த ஸ்கிரிப்ட்களை ஏற்கிறது. அந்தத் தருணத்திலிருந்து கிளையண்டின் சிறப்புரிமைகள் நீங்கள் ஒருபோதும் படிக்காத குறியீட்டுக்குப் பொருந்தும், நீங்கள் தேர்ந்தெடுக்காத தருணங்களில் அழைக்கப்படும், இணைப்பு விவரங்களைக் கொண்ட சூழலில் இயங்கும். நிலை 3 மேலும் சென்று சூழல் மாறிகளின் வழியாகக் கடவுச்சொற்களை அனுப்ப அனுமதிக்கிறது, அதனால்தான் கையேடு அதை சாத்தியமான பாதுகாப்பற்றது என விவரிக்கிறது.
இந்த எண்களில் எதுவும் வலிமையின் அமைப்பு அல்ல. நிலை 3 இல் உள்ள சுயவிவரத்துக்கு நிலை 1 ஐ விட சிறந்த மறையாக்கம் இல்லை; அதற்கு பெரிய இயக்க மேற்பரப்பு மட்டுமே உள்ளது, சுரங்கப்பாதை ஒரே மாதிரியே உள்ளது.
சுயவிவரம் எதற்குத் தகுதியானது என முடிவு செய்யுங்கள்
ஸ்கிரிப்டுக்கு எந்த நிலை தேவை என்று கேட்பதற்கு முன் அது எதற்காக என்று கேளுங்கள். DNS அமைப்புகளைத் தள்ளும் அல்லது இணைந்த பிறகு வழித்தடத்தைச் சரிசெய்யும் கொக்கி ஏதாவது இயக்க சட்டபூர்வமான காரணம். தற்காலிக கோப்பகத்தில் அறிமுகமில்லாத இருமத்தை அழைக்கும் கொக்கி நிறுத்துவதற்கான காரணம்.
ஸ்கிரிப்டின் பாதை ஸ்கிரிப்டுக்கு சமமான முக்கியத்துவம் வாய்ந்தது. சார்பு பாதை கிளையண்ட் பயன்படுத்தும் கோப்பகத்தைப் பொறுத்துத் தீர்க்கப்படுகிறது, எழுதக்கூடிய கோப்பகம் ஒரு முறை இறக்குமதியை நிரந்தர இயக்க இடமாக மாற்றுகிறது. பயனர் மாற்ற முடியாத கோப்பகத்தில் முழுமையான பாதைகளே விரும்பத்தக்க வடிவம்.
ஸ்கிரிப்ட்கள் கிளையண்டின் சூழலையும் வாரிசாகப் பெறுகின்றன, அங்கே சான்றுகளும் இணைப்பு மெட்டாடேட்டாவும் வாழ்கின்றன. இந்த வாரிசுதான் நிலை 3 ஐ தன் சூழலைப் பதிவுசெய்யும் ஸ்கிரிப்டுடன் சேர்ந்து ஆபத்தானதாக்குகிறது, அதனால்தான் ஸ்கிரிப்ட்கள் இயக்கப்பட்ட கிளையண்டின் கண்டறியும் வெளியீடு ஒரு புகாரில் ஒட்டுவதற்கு முன் இரண்டாவது பார்வைக்குத் தகுதியானது. பகிர்வதற்கு முன் சூழலை அகற்றுங்கள்.
grep -nE 'script-security|^up |^down |tls-verify' client.ovpnஒரு விஷயத்தை மாற்றுங்கள், பிறகு பிரிதலையும் கவனியுங்கள்
சுயவிவரத்துக்கு உண்மையிலேயே ஸ்கிரிப்ட் தேவைப்பட்டால், நிலையை மட்டும் அந்தச் சுயவிவரத்துக்கு மட்டும் மாற்றுங்கள். கிளையண்டை முன்னணியில் விரிவான வெளியீட்டுடன் இயக்குங்கள், சேவை மேலாளர் அவற்றை விழுங்காமல் ஸ்கிரிப்டின் சொந்தப் பிழைகள் தெரியும்.
openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default
இணைப்பு மட்டுமல்ல, முழு வாழ்க்கைச் சுழற்சியையும் சோதியுங்கள். தோல்வியடையும் நிறுத்தக் கொக்கி வழித்தடங்களை இறந்த சுரங்கப்பாதையை நோக்கி விட்டுச் செல்கிறது, இது இணைந்ததுபோல் தெரிந்தும் எங்கும் சேராத இயந்திரத்தை உருவாக்குகிறது. மாற்றத்தை முடிந்ததாக அறிவிக்கும் முன் ஒரு முறை மீண்டும் இணைந்து ஒரு முறை துண்டியுங்கள், ஒவ்வொன்றுக்கும் பிறகு வழியமைப்பு அட்டவணையைச் சரிபாருங்கள்.
அசல் சுயவிவரத்தின் நகலை வைத்திருங்கள். ஒரு தளக் கிளையண்ட் அதே ஸ்கிரிப்ட் மாதிரியைச் செயல்படுத்தவில்லை என்றால், இறக்குமதி வெற்றிபெறும் வரை வழிமுறைகளை நீக்குவது சுரங்கப்பாதைக்குத் தேவைப்பட்ட DNS அல்லது வழித்தட ஒருங்கிணைப்பை அகற்றக்கூடும், அதன் விளைவாக ஏற்படும் இணைப்பு முழுமையாக அங்கீகரிக்கப்படும் ஆனால் எதையும் தீர்க்காது.
பதிவுசெய்ய வேண்டிய முடிவு குறுகியது: எந்த ஸ்கிரிப்ட், எந்தப் பாதையில், எந்த நிலையில் அனுமதிக்கப்பட்டது, எந்தச் சுயவிவரத்துக்கு. சுயவிவரத்தில் மீதமுள்ள அனைத்தும் மாறாமல் இருக்கும், இது ஒரு மதிப்பாய்வாளர் சரிபார்க்கக்கூடிய வாக்கியம்.