முனையத்தில் root, SELinux கீழ் மறுக்கப்பட்டது: hook ஏன் தோல்வியடைகிறது
கையால் சரியாக இயங்கும் hook சேவையின் உள்ளே மறுக்கப்படலாம். திருத்துவதற்கு முன் செயலியின் களம், கோப்பின் லேபிள் மற்றும் மறுக்கப்பட்ட அனுமதியை ஒப்பிடுங்கள்.
நீங்கள் up ஸ்கிரிப்டை root ஆக இயக்குகிறீர்கள், அது முடிகிறது, சேவை அதை அழைக்கும்போது அதே ஸ்கிரிப்ட் தோல்வியடைகிறது. கோப்பு அனுமதிகளில் எதுவும் மாறவில்லை, எனவே அடுத்த இயல்பான படி அவற்றை மீண்டும் தளர்த்துவது, அது எதையும் சரிசெய்யாது. SELinux ஹோஸ்டில் தீர்மானிக்கும் காரணி பெரும்பாலும் செயலி யார் என்பதல்ல, அது எந்த களத்தில் இயங்குகிறது என்பதே, மேலும் கட்டுப்படுத்தப்பட்ட களத்திற்குள் root இன்னும் கட்டுப்படுத்தப்பட்டே உள்ளது.
அதே கட்டளை, இரண்டு வெவ்வேறு பாதுகாப்புக் களங்கள்
வகை அமலாக்கம் மூலக் களம், இலக்கு லேபிள் மற்றும் கோரப்பட்ட செயல்பாட்டை ஒன்றாக மதிப்பிடுகிறது. உங்கள் முனைய அமர்வு வரம்பற்ற அல்லது நிர்வாகக் களத்தில் இயங்குகிறது, டீமன் அதன் அலகுக்கு ஒதுக்கப்பட்ட களத்தில் இயங்குகிறது. எனவே ஒரே மாதிரியான கட்டளைகள் வெவ்வேறு முடிவுகளைத் தருகின்றன, இந்த வேறுபாடு கொள்கையில் உள்ள பிழை அல்ல, வேண்டுமென்றே செய்யப்பட்டது.
அதனால்தான் இரண்டு இயக்கங்களை ஒப்பிடுவது அவற்றின் சூழல்களை ஒப்பிட்டால் மட்டுமே பயனுள்ளது. அதே கட்டளையை ஷெல்லிலிருந்தும் hook இலிருந்தும் இயக்குங்கள்; ஷெல் பதிப்பு பைனரி உள்ளது என்பதையும் வாதங்கள் சரி என்பதையும் நிரூபிக்கிறது, ஆனால் சேவைக்கு அதை இயக்க அனுமதி உள்ளதா என்பதைப் பற்றி எதையும் நிரூபிக்கவில்லை. இரண்டு வழிகளிலும் இயக்கி, வெளியேறும் குறியீடுகள் மட்டுமல்ல, களங்களை ஒப்பிடுங்கள். அந்த ஒப்பீடே தெளிவற்ற அனுமதிப் புகாரை ஒரு களம் மற்றும் ஒரு லேபிள் பற்றிய குறிப்பிட்ட கேள்வியாக மாற்றுகிறது.
இந்தக் குறையின் வழக்கமான வடிவம் வெளிப்புறக் கருவியை அழைக்கும் உதவியாளர். hook தானே அனுமதிக்கப்படலாம், ஆனால் அது அழைக்கும் கருவி சேவைக் களம் இயக்க முடியாத லேபிளைக் கொண்டுள்ளது, அல்லது அதன் லேபிள் தடைசெய்யும் அடைவில் எழுதுகிறது.
hook பிழைக்கு அருகில் AVC பதிவைப் படியுங்கள்
AVC மறுப்பு வழக்கைத் தீர்மானிக்கும் புலங்களைப் பெயரிடுகிறது: செயலியின் மூலச் சூழல், பொருளின் இலக்குச் சூழல், பொருள் வகுப்பு மற்றும் மறுக்கப்பட்ட குறிப்பிட்ட அனுமதி. கோட்பாட்டை உருவாக்கும் முன் நான்கையும் படியுங்கள், ஏனெனில் இயக்கத்தின் மீதான மறுப்புக்கும் எழுத்தின் மீதான மறுப்புக்கும் முற்றிலும் வேறுபட்ட திருத்தங்கள் உள்ளன.
ausearch -m AVC,USER_AVC -ts recent
ls -Z /usr/local/sbin/vpn-up.sh
ps -eZ | grep openvpn
மூலச் சூழல் சேவை உண்மையில் இயங்கும் களத்துடன் பொருந்த வேண்டும், இலக்குச் சூழல் செயல்பாடு தொட்ட கோப்பு அல்லது அடைவின் லேபிளுடன் பொருந்த வேண்டும். இவற்றில் ஒன்று நீங்கள் துரத்தும் பிழையுடன் பொருந்தவில்லை என்றால், நீங்கள் வேறு நிகழ்வைப் படிக்கிறீர்கள்.
பதிவுக்கு அருகில் கொள்கையின் பதிப்பு மற்றும் இயக்கக்கூடிய கோப்பின் சரியான பாதையைக் குறிப்பிடுங்கள். ஒரு விநியோகத்தின் கொள்கையில் தோன்றும் களப் பெயர் அந்த நிறுவலைப் பற்றிய சான்று, வேறு ஒரு கட்டுமானம் அதே விதிகளை வழங்கும் உத்தரவாதம் அல்ல. அந்தச் சூழல்தான் மற்றவர் தமது சொந்த ஹோஸ்டில் உங்கள் முடிவை மீண்டும் உருவாக்க அனுமதிக்கிறது. அது இல்லாமல் பதிவு சான்றாக அல்லாமல் கதையாகப் படிக்கப்படுகிறது.
லேபிள், உள்ளமைவு அல்லது கொள்கை: மூன்று திருத்தங்கள்
முதல் திருத்தம் கோப்பின் நிறுவப்பட்ட இடத்துடன் பொருந்தாத லேபிள். cp மூலம் இடத்தில் நகலெடுக்கப்பட்ட அல்லது திருத்தியால் எழுதப்பட்ட ஸ்கிரிப்ட் சேவைக் களம் பயன்படுத்த முடியாத இயல்புநிலை லேபிளைக் கொண்டிருக்கலாம், எதிர்பார்க்கப்பட்ட சூழலை மீட்டமைப்பது கொள்கையைத் தொடாமலேயே அதைச் சரிசெய்கிறது.
இரண்டாவது உள்ளமைவு. விநியோகம் செயல்பாட்டை இயக்க ஆதரிக்கப்பட்ட வழி, உதவியாளருக்கு ஆவணப்படுத்தப்பட்ட அடைவு, அல்லது ஏற்கனவே அதை அனுமதிக்கும் புதுப்பிக்கப்பட்ட கொள்கைத் தொகுப்பை வழங்கலாம். உங்கள் தளவமைப்பை ஆதரிக்கப்பட்ட ஒன்றுக்கு மாற்றுவது கொள்கை எழுதுவதை விட மலிவானது, புதுப்பிப்புகளிலும் நிலைத்திருக்கும்.
மூன்றாவது உண்மையில் இல்லாத விதி, அது கடைசி வழியாக இருக்க வேண்டும். தணிக்கைக் கருவிகளால் ஒரு வேட்பாளரை உருவாக்குங்கள், அது உண்மையில் எதை அனுமதிக்கிறது என்று படியுங்கள், நீங்கள் கவனித்த செயல்பாடு மற்றும் களத்திற்கு அதைச் சுருக்குங்கள், உற்பத்தியை நெருங்கும் முன் வேறொருவரை அதை மதிப்பாய்வு செய்யச் சொல்லுங்கள்.
பழைய allow தொகுதி பதில் ஏன் அல்ல
இந்தக் குறைக்கான தேடல் முடிவுகள் தயாராக தயாரிக்கப்பட்ட தொகுதிகளால் நிரம்பியுள்ளன, பெரும்பாலும் hook இனி அழைக்காத கருவிக்காக. ஒன்றை நிறுவுவது உங்கள் மறுப்புடன் எந்தத் தொடர்பும் இல்லாத அனுமதிகளை வழங்குகிறது, நிரந்தரத் துளையைச் சேர்த்துக்கொண்டே உண்மையான பொருந்தாமையை அதன் இடத்தில் விட்டுவிடுகிறது.
அது அடுத்த தோல்வியையும் மறைக்கிறது. பரந்த செயல்பாட்டு வகுப்பை அனுமதிக்கும் தொகுதி இந்தப் பிழையை மறையச் செய்து அடுத்ததை மிகவும் கடினமானதாக மாற்றும். தொகுதியைப் பின்னர் அகற்றுவதும் யாரும் திட்டமிட விரும்பாத மாற்றம், எனவே குறுக்குவழி நிரந்தரமாகும் போக்கைக் கொண்டுள்ளது.
ஒழுக்கமான ஒப்பீடு நீங்கள் படிக்கக்கூடிய மறுப்புக்கும் நீங்கள் முன்மொழியும் மாற்றத்திற்கும் இடையில் உள்ளது. Red Hat இன் SELinux சிக்கல் தீர்க்கும் வழிகாட்டி லேபிளிங் மற்றும் உள்ளமைவு சோதனைகளை உருவாக்கப்பட்ட கொள்கைக்கு முன் வைக்கிறது, இதே காரணத்திற்காக. பதிவில் பொருந்தும் மறுப்பு இல்லை என்றால், SELinux ஒருவேளை உங்கள் சிக்கல் அல்ல, மேலும் பாதை, சாண்ட்பாக்ஸ் அல்லது அனுமதி சிக்கல்கள் இன்னும் திறந்துள்ளன.