ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > సిస్టమ్ నిర్వాహకుల కోసం SELinux చీట్ షీట్: ముఖ్యమైన ప్రశ్నలకు 42 సమాధానాలు
సిస్టమ్ నిర్వాహకుల కోసం SELinux చీట్ షీట్: ముఖ్యమైన ప్రశ్నలకు 42 సమాధానాలు
వ్యాసం యొక్క అనువాదం కోర్సు యొక్క విద్యార్థుల కోసం ప్రత్యేకంగా తయారు చేయబడింది "Linux అడ్మినిస్ట్రేటర్".
మెరుగైన భద్రతతో Linuxలో జీవితం, విశ్వం మరియు ప్రతిదాని గురించి ముఖ్యమైన ప్రశ్నలకు ఇక్కడ మీరు సమాధానాలు పొందుతారు.
"విషయాలు ఎల్లప్పుడూ కనిపించే విధంగా ఉండవు అనే ముఖ్యమైన నిజం సాధారణ జ్ఞానం ..."
-డగ్లస్ ఆడమ్స్, పాలపుంతకు హైచ్కెర్ యొక్క సూచికలు
భద్రత. విశ్వసనీయత పెరిగింది. కరస్పాండెన్స్. విధానం. అపోకలిప్స్ సిసాడ్మిన్ యొక్క నలుగురు గుర్రపు సైనికులు. మా రోజువారీ పనులతో పాటు - పర్యవేక్షణ, బ్యాకప్, అమలు, కాన్ఫిగరేషన్, నవీకరించడం మొదలైనవి - మా సిస్టమ్ల భద్రతకు కూడా మేము బాధ్యత వహిస్తాము. మేము మెరుగైన భద్రతను నిలిపివేయమని మూడవ పక్షం ప్రొవైడర్ సిఫార్సు చేసిన సిస్టమ్లు కూడా. ఇది పని అనిపిస్తుంది ఏతాన్ హంట్ "మిషన్: ఇంపాజిబుల్" నుండి
ఈ గందరగోళాన్ని ఎదుర్కొన్న కొందరు సిస్టమ్ నిర్వాహకులు తీసుకోవాలని నిర్ణయించుకున్నారు నీలం మాత్ర, ఎందుకంటే జీవితం, విశ్వం మరియు అన్నింటికీ పెద్ద ప్రశ్నకు సమాధానం తమకు ఎప్పటికీ తెలియదని వారు అనుకుంటారు. మరియు మనందరికీ తెలిసినట్లుగా, ఆ సమాధానం 42.
ది హిచ్హైకర్స్ గైడ్ టు ది గెలాక్సీ స్ఫూర్తితో, నియంత్రణ మరియు ఉపయోగం గురించిన ముఖ్యమైన ప్రశ్నలకు ఇక్కడ 42 సమాధానాలు ఉన్నాయి. SELinux మీ సిస్టమ్లపై.
1. SELinux అనేది బలవంతంగా యాక్సెస్ నియంత్రణ వ్యవస్థ, అంటే ప్రతి ప్రక్రియకు ఒక లేబుల్ ఉంటుంది. ప్రతి ఫైల్, డైరెక్టరీ మరియు సిస్టమ్ వస్తువు కూడా లేబుల్లను కలిగి ఉంటాయి. విధాన నియమాలు ట్యాగ్ చేయబడిన ప్రక్రియలు మరియు వస్తువుల మధ్య యాక్సెస్ను నియంత్రిస్తాయి. కెర్నల్ ఈ నియమాలను అమలు చేస్తుంది.
2. రెండు అత్యంత ముఖ్యమైన భావనలు: లేబులింగ్ - గుర్తులు (ఫైళ్లు, ప్రక్రియలు, పోర్ట్లు మొదలైనవి) మరియు రకం అమలు (ఇది రకాల ఆధారంగా ఒకదానికొకటి ప్రక్రియలను వేరు చేస్తుంది).
3. సరైన లేబుల్ ఆకృతి user:role:type:level (ఐచ్ఛికం).
4. బహుళ-స్థాయి భద్రతను అందించే ఉద్దేశ్యం (బహుళ-స్థాయి భద్రత - MLS) వారు ఉపయోగించే డేటా భద్రత స్థాయి ఆధారంగా ప్రక్రియలను (డొమైన్లు) నిర్వహించడం. ఉదాహరణకు, ఒక రహస్య ప్రక్రియ అత్యంత రహస్య డేటాను చదవదు.
సందర్భంలో నడుస్తున్న ప్రక్రియ httpd_t, లేబుల్ చేయబడిన వస్తువుతో పరస్పర చర్య చేయవచ్చు httpd_something_t.
<span style="font-family: arial; ">10</span> అనేక ఆదేశాలు వాదనను అంగీకరిస్తాయి -Z సందర్భాన్ని వీక్షించడానికి, సృష్టించడానికి మరియు మార్చడానికి:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
ఫైల్లు వాటి పేరెంట్ డైరెక్టరీ (కొన్ని మినహాయింపులతో) సందర్భం ఆధారంగా సృష్టించబడినప్పుడు సందర్భాలు స్థాపించబడతాయి. RPMలు ఇన్స్టాలేషన్ సమయంలో సందర్భాలను సెట్ చేయగలవు.
<span style="font-family: arial; ">10</span> SELinux ఎర్రర్లకు నాలుగు ప్రధాన కారణాలు ఉన్నాయి, ఇవి దిగువ పాయింట్లు 15-21లో మరింత వివరంగా వివరించబడ్డాయి:
లేబులింగ్ సమస్యలు
ఎందుకంటే SELinux తెలుసుకోవలసినది
SELinux విధానం/అప్లికేషన్లో లోపం
మీ సమాచారం రాజీపడవచ్చు
<span style="font-family: arial; ">10</span>లేబులింగ్ సమస్య: మీ ఫైల్లు ఉంటే /srv/myweb తప్పుగా గుర్తు పెట్టబడ్డాయి, యాక్సెస్ నిరాకరించబడవచ్చు. దీన్ని పరిష్కరించడానికి ఇక్కడ కొన్ని మార్గాలు ఉన్నాయి:
మీకు లేబుల్ తెలిస్తే: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
సమానమైన మార్కింగ్లతో కూడిన ఫైల్ మీకు తెలిస్తే: # semanage fcontext -a -e /srv/myweb /var/www
<span style="font-family: arial; ">10</span>లేబులింగ్ సమస్య: మీరు ఫైల్ను కాపీ చేయడానికి బదులుగా దాన్ని తరలించినట్లయితే, ఫైల్ దాని అసలు సందర్భాన్ని అలాగే ఉంచుతుంది. ఈ సమస్యను పరిష్కరించడానికి:
<span style="font-family: arial; ">10</span> SELinux లోపం సంభవించినట్లయితే, లాగ్ని ఉపయోగించండి setroubleshoot అనేక సాధ్యమైన పరిష్కారాలను అందిస్తోంది.
ఉదాహరణకు, నుండి journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
<span style="font-family: arial; ">10</span> లాగింగ్: SELinux అనేక ప్రదేశాలలో సమాచారాన్ని నమోదు చేస్తుంది:
<span style="font-family: arial; ">10</span> నిర్దిష్ట సేవ కోసం SELinux యాక్సెస్ వెక్టర్ కాష్ (AVC) సందేశాలను కనుగొనడానికి:
# ausearch -m avc -c httpd
<span style="font-family: arial; ">10</span> వినియోగ audit2allow నిషేధించబడిన కార్యకలాపాల లాగ్ల నుండి సమాచారాన్ని సేకరిస్తుంది మరియు SELinux అనుమతి విధాన నియమాలను రూపొందిస్తుంది. ఉదాహరణకి:
యాక్సెస్ ఎందుకు తిరస్కరించబడిందనే దాని గురించి మానవులు చదవగలిగే వివరణను రూపొందించడానికి: # audit2allow -w -a
తిరస్కరించబడిన యాక్సెస్ను అనుమతించే రకం అమలు నియమాన్ని వీక్షించడానికి: # audit2allow -a
అనుకూల మాడ్యూల్ని సృష్టించడానికి: # audit2allow -a -M mypolicy
ఎంపిక -M పేర్కొన్న పేరుతో టైప్ ఎన్ఫోర్స్మెంట్ ఫైల్ (.te)ని సృష్టిస్తుంది మరియు పాలసీ ప్యాకేజీగా (.pp) నియమాన్ని కంపైల్ చేస్తుంది: mypolicy.pp mypolicy.te
అనుకూల మాడ్యూల్ను ఇన్స్టాల్ చేయడానికి: # semodule -i mypolicy.pp
<span style="font-family: arial; ">10</span> పర్మిసివ్ మోడ్లో పని చేయడానికి ప్రత్యేక ప్రక్రియను (డొమైన్) కాన్ఫిగర్ చేయడానికి: # semanage permissive -a httpd_t
<span style="font-family: arial; ">10</span> మీరు ఇకపై డొమైన్ అనుమతించబడకూడదనుకుంటే: # semanage permissive -d httpd_t