சலுகைகளைக் குறைத்த பிறகு: எந்த OpenVPN கோப்புகள் இன்னும் வேலை செய்கின்றன?
குறைப்பதற்கு முன் திறந்த விவரிப்பான்கள் தொடர்ந்து வேலை செய்கின்றன; பின்னர் மீண்டும் திறக்கப்படும் பாதைகள் செய்யவில்லை. உங்கள் அமைப்பு மூன்று இயக்கநேரக் கோப்புகளில் எதை மீண்டும் திறக்க வேண்டும் என்பதைத் தீர்மானியுங்கள்.
நீண்ட இயக்கநேரம் அந்தத் தருணத்தில் டீமனுக்கு இருந்த சலுகைகளுடன் தொடக்கம் வெற்றி பெற்றது என்பதை மட்டுமே நிரூபிக்கிறது. இங்கு முக்கியமான தோல்விகள் பின்னர் வருகின்றன: புதிய வாடிக்கையாளர் இணைகிறார், ரத்துசெயல் பட்டியல் மாற்றப்படுகிறது, உதவி ஸ்கிரிப்ட் ஒரு கோப்பை எழுத வேண்டும். இவை ஒவ்வொன்றும் சலுகைகள் இல்லாத கணக்கு செய்யும் புதிய திறப்பு, அதன் சொந்த அனுமதிக் கேள்வியும் அதன் சொந்த பிழைச் செய்தியும் கொண்டது. மூன்று முடிவுகள் தொடர்ந்து வேலை செய்யும் அமைப்பை அடுத்த நிகழ்வில் தோல்வியடையும் ஒன்றிலிருந்து பிரிக்கின்றன.
முன்னதாக ஏற்றியதைப் பின்னர் திறப்பதிலிருந்து பிரிக்கவும்
விவரிப்பான் என்பது திறந்த கோப்பு விவரணத்தின் மீதான கைப்பிடி, மேலும் அணுகல் முறை அந்த விவரணம் உருவாக்கப்பட்டபோதே நிர்ணயிக்கப்பட்டது. பின்னர் செயல்முறையின் பயனரை மாற்றுவது கைப்பிடியை மூடுவதில்லை, அதனால்தான் root ஆகப் படித்த விசைக் கோப்பு குறைப்புக்குப் பிறகும் வேலை செய்கிறது. முறையும் மாறுவதில்லை: படிக்கத் திறந்த கைப்பிடி எழுதக்கூடியதாக மாறாது, எழுதக்கூடிய கைப்பிடி கணக்கு பாதையின் மீதான உரிமைகளை இழந்ததால் மட்டும் திரும்பப் பெறப்படுவதில்லை. இந்த இரண்டு உண்மைகள் இந்த அறிக்கைகளில் உள்ள வியப்பான நடத்தையின் பெரும்பகுதியை விளக்குகின்றன.
மற்ற பாதி நினைவகம். டீமன் ஒரு சான்றிதழைப் பகுப்பாய்வு செய்து, பகுப்பாய்வு செய்த பொருளை வைத்துக்கொண்டு கோப்பை மூடலாம்; பயன்பாட்டில் இருப்பது தரவு, திறந்த கோப்பு அல்ல. எனவே தொடரும் போக்குவரத்து விவரிப்பான் திறந்திருப்பதையோ பாதையின் பெயர் அடையக்கூடியதென்பதையோ நிரூபிக்கவில்லை. தற்போதைய அமர்வுக்குத் தேவையான பொருள் முன்பே பெறப்பட்டது என்பதை மட்டுமே நிரூபிக்கிறது.
பின்னர் திறப்பது மற்றொரு பரிவர்த்தனை. அது தற்போதைய சான்றுகள், தற்போதைய பாதுகாப்புச் சூழல் மற்றும் தற்போதைய ஏற்றுதல் பார்வையின் கீழ் இயங்குகிறது, எனவே தொடக்கத்தில் படிக்கக்கூடியதாக இருந்த பாதை அடுத்த இணைப்பில் நிராகரிக்கப்படலாம். சுழற்சி ஒரு பொறியைச் சேர்க்கிறது: அதே பாதைப் பெயரின் மீது புதிய கோப்பை எழுதுவது இருக்கும் விவரிப்பானைப் பழைய பொருளுடன் இணைந்திருக்க விடுகிறது, எனவே மறுஏற்றம் வெற்றிகரமாகத் தோன்றலாம், ஆனால் டீமன் இன்னும் முந்தைய உள்ளடக்கத்தைப் பயன்படுத்துகிறது. சுழற்சி நடைமுறைக்கு வந்ததாக நம்புவதற்கு முன் செயல்முறை வைத்திருக்கும் inode-ஐ வட்டில் உள்ளதுடன் ஒப்பிடுங்கள்.
மூன்று இயக்கநேர வாசிப்புகளையும் ஒவ்வொன்றும் எப்போது நடக்கிறது என்பதையும் பெயரிடுங்கள்
மூன்று வளங்கள் பொதுவாக தொடக்கத்திற்கு நீண்ட காலத்திற்குப் பிறகு திறக்கப்படுகின்றன, அவை வெவ்வேறு தருணங்களில் தோல்வியடைகின்றன. ஒரு குறிப்பிட்ட வாடிக்கையாளரின் உள்ளமைவுக் கோப்பு அந்த வாடிக்கையாளர் இணையும்போது படிக்கப்படுகிறது, எனவே மற்றவர்கள் தொடரும்போது ஒரு பயனருக்கு அது உடையலாம். ரத்துசெயல் தரவு சக உறுதிப்படுத்தலின் போதும் கோப்பு மாற்றப்படும்போது மீண்டும் பார்க்கப்படுகிறது. தற்காலிக அடைவு ஒரு ஸ்கிரிப்ட் அல்லது செருகுநிரல் ஏதாவது எழுதும்போது மட்டுமே தொடப்படுகிறது.
மூன்றில் எதுவும் தொடக்கப் பாதையைச் சேர்ந்தது அல்ல, அதனால்தான் வாரக்கணக்கில் ஆரோக்கியமாக இருந்த சேவையகம் அடுத்த இணைப்பில் தோல்வியடையலாம். இந்த வகை சரிசெய்தலின் உரிமையாளரையும் பெயரிடுகிறது: முதல் இரண்டும் டீமன் கணக்கின் கீழ் உள்ளமைவின் மீதான படிப்பு அனுமதிகள், மூன்றாவது குறுகிய நோக்கத்துடன் எழுதக்கூடிய இடம்.
| Path reopened later | What triggers the open | First sign when it fails |
|---|---|---|
| Client configuration file | A connection for that client identity | One client rejected while others connect |
| Revocation data | Peer authentication, including after replacement | Revoked and valid peers both refused |
| Script or plugin temporary directory | A helper needs to create a file | The helper exits with a path error |
persist-key பெரும்பாலானோர் கருதுவதை விடக் குறுகிய கேள்விக்குப் பதிலளிக்கிறது. இது ஆவணப்படுத்தப்பட்ட SIGUSR1 மற்றும் ping-restart மீட்டமைப்புகள் முழுவதும் விசைக் கோப்பைத் திறந்து வைத்திருக்கிறது, மேலும் CCD கோப்புகள், ரத்துசெயல் தரவு, உதவி இயக்கக்கூடிய கோப்புகள் அல்லது செயல்முறையின் முழு மறுதொடக்கத்திற்கு எதுவும் செய்யவில்லை. அவை இன்னும் தங்கள் சொந்தத் திறப்புப் பாதைகளைப் பின்பற்றுகின்றன, அந்த நேரத்தில் இயங்கும் எந்தக் கணக்கின் கீழும்.
கணக்கையும் அது உண்மையில் கொண்டுள்ள பார்வையையும் உறுதிப்படுத்துங்கள்
unit கோப்பை நம்புவதற்குப் பதிலாக இயங்கும் டீமனை எந்தக் கணக்கைப் பயன்படுத்துகிறது என்று கேட்டு, பின்னர் அந்தப் பதிலை unit நிர்ணயிப்பதுடன் ஒப்பிடுங்கள். முரண்பாடுதான் முதலில் தீர்க்க வேண்டிய விஷயம், ஏனெனில் அடுத்தடுத்த ஒவ்வொரு அனுமதிச் சரிபார்ப்பும் செயல்முறை உண்மையில் யாரோ அவராகவே இயங்குகிறது. பின்னர் பாதையை ஒரு கூறாகக் கடந்து செல்லுங்கள்; கடத்தல் ஒவ்வொரு நிலையிலும் மதிப்பிடப்படுகிறது, எனவே கடக்க முடியாத அடைவுக்குள் உள்ள படிக்கக்கூடிய கோப்பு படிக்க முடியாததாகவே இருக்கும். இறுதி கோப்பு முறை முதல் கேள்வி அல்ல, கடைசிக் கேள்வி.
பெயர்வெளிகள் மற்றும் சேவை மணல்தொட்டிகள் உரிமையும் முறை பிட்டுகளும் விவரிக்காத எல்லைகளைச் சேர்க்கின்றன. உங்கள் ஷெல்லில் தெரியும் பாதை chroot, ஏற்றுதல் பெயர்வெளி அல்லது வீட்டு அடைவுகளை மறைக்கும் unit உள்ளே இல்லாமலிருக்கலாம் அல்லது படிக்க மட்டுமே இருக்கலாம். பாதுகாப்பு தொகுதிகள் மற்றொரு அடுக்கைச் சேர்க்கின்றன, எனவே படிக்கக்கூடியதாகத் தோன்றும் கோப்பு திறக்கும்போது இன்னும் நிராகரிக்கப்படலாம்.
ps -o user:12,pid,args -C openvpn
systemctl show -p User -p Group -p ProtectHome -p RootDirectory [email protected]
sudo -u openvpn namei -l /etc/openvpn/ccd/aliceநிர்வாகியின் ஷெல்லில் வெற்றிகரமான வாசிப்பு அந்த இணைந்த நிபந்தனைகளில் ஒன்றையும் சோதிக்கவில்லை. சரிபார்ப்பை டீமன் கணக்காக, அதே பெயர்வெளி மற்றும் மணல்தொட்டியுடன் இயக்குங்கள், அல்லது முடிவு சேவையகத்தை அல்ல உங்கள் ஷெல்லை விவரிக்கிறது என்று ஏற்றுக்கொள்ளுங்கள். மூன்றாவது கட்டளை அந்தச் சோதனையின் மலிவான பதிப்பு: அது ஒவ்வொரு கூறின் முறையையும் அச்சிட்டு, டீமன் கணக்கு கடக்க முடியாத முதல் கூறில் தோல்வியடைகிறது.
இயக்கநேர எழுத்துக்கு அதன் சொந்த அடைவைக் கொடுங்கள்
வாசிப்பு பட்டியலின் பாதி மட்டுமே. உதவி ஸ்கிரிப்ட் நிலைக் கோப்பை உருவாக்க வேண்டியிருக்கலாம், செருகுநிரல் அதன் உள்ளமைவுக்கு அருகில் நிலையை எழுத வேண்டியிருக்கலாம், அந்த எழுத்துக்கள் உள்ளமைவு மரத்தை எழுதக்கூடியதாக்குவதால் மூடப்படுவதில்லை. குறிப்பிட்ட அடைவுக்கு அதன் பணிக்குத் தேவையான எழுத்து அனுமதியைக் கொடுங்கள், நீங்கள் விளக்கக்கூடிய உரிமையாளர் மற்றும் முறையுடன். படிக்கப்படும் அனைத்திற்கும் படிக்க-மட்டும் அணுகலை விரும்புங்கள்.
தனிப்பட்ட விசையின் அனுமதிகளைக் கொள்கைக் கோப்புகளிலிருந்து தனியாக வைத்திருங்கள். மீட்டமைப்புக்குப் பிறகு மீண்டும் படிக்க வேண்டிய விசைக்கு ஒவ்வொரு இணைப்பிலும் படிக்கப்படும் வாடிக்கையாளர் கோப்பிலிருந்து வேறுபட்ட தேவை உள்ளது, இரண்டிற்கும் ஒரே தளர்வான முறை சிக்கல் கேட்பதை விட அதிக அணுகலைத் தருகிறது. குறுகிய உரிமையுடைய பிரத்யேக டீமன் கணக்கு பரந்த குழுவை விட எளிதாகத் தணிக்கை செய்யப்படும். விசை மீட்டமைப்புகளைத் தாண்ட வேண்டியிருக்கும்போது, persist-key அடைவை விரிவாக்குவதற்குப் பதிலாக மறுவாசிப்பை அகற்றுகிறது.
நீங்கள் மீண்டும் உருவாக்கக்கூடிய நிகழ்விலிருந்து தீர்மானியுங்கள்
உயிருள்ள சுரங்கப்பாதை குறியீட்டின் வழியே ஒரு பாதையை மட்டும் நிரூபிக்கிறது. கோப்பு தேவைப்படும் நிகழ்வே உங்களுக்கு முக்கியமான திறப்பை உள்ளடக்கும் ஒரே சோதனை, அது புதிய வாடிக்கையாளர் இணைப்போ, மாற்றப்பட்ட ரத்துசெயல் கோப்போ, அனுமதிக்கப்பட்ட மென்மையான மீட்டமைப்போ அல்லது திட்டமிடப்பட்ட மறுதொடக்கமோ ஆகட்டும். நிகழ்வைத் தேர்ந்தெடுத்து, இயக்கி, கடைசி அல்ல முதல் பிழையை வைத்திருங்கள்.
மென்மையான மீட்டமைப்பிற்கு ஒரு சமிக்ஞையும் unit இன் பதிவும் விசை மீண்டும் படிக்கப்பட்டதா என்பதைக் காட்டுகிறது. சமிக்ஞையை அனுப்பி, பின்னர் unit எழுதிய கடைசி வரிகளைப் படியுங்கள்:
systemctl kill -s SIGUSR1 [email protected]
journalctl -u [email protected] -n 40 --no-pagerசலுகைகள் குறைக்கப்பட்டதால் மட்டும் சமரசம் செய்யப்பட்ட டீமன் இனி கோப்புகளை மாற்ற முடியாது என்று முடிவு செய்ய வேண்டாம். அது இன்னும் என்ன செய்ய முடியும் என்பது மீதமுள்ள சான்றுகள், அதன் திறன்கள், அது எழுதக்கூடிய அடைவுகள் மற்றும் இன்னும் வைத்திருக்கும் எழுதக்கூடிய விவரிப்பான் ஆகியவற்றைப் பொறுத்தது. சலுகைக் குறைப்பு அதிகாரத்தைக் குறுகலாக்குகிறது, இயக்கநேரத் திறப்புகளின் பட்டியலே எவ்வளவு என்பதைக் காட்டுகிறது. அந்த எல்லையை உள்ளமைவுக்கு அருகில் எழுதுங்கள், அடுத்த நபர் அதை மீண்டும் கண்டுபிடிக்க வேண்டியிருக்காது.