અહીં તમને જીવન, બ્રહ્માંડ અને Linux માં દરેક વસ્તુ વિશેના મહત્વપૂર્ણ પ્રશ્નોના જવાબો બહેતર સુરક્ષા સાથે મળશે.
"મહત્વનું સત્ય એ છે કે વસ્તુઓ હંમેશા જેવી લાગતી નથી તે સામાન્ય જ્ઞાન છે..."
-ડગ્લાસ એડમ્સ, ગેલેક્સી માટે હિચીકરની માર્ગદર્શિકા
સલામતી. વધેલી વિશ્વસનીયતા. પત્રવ્યવહાર. નીતિ. એપોકેલિપ્સ સિસાડમીનના ચાર હોર્સમેન. અમારા દૈનિક કાર્યો ઉપરાંત - મોનિટરિંગ, બેકઅપ, અમલીકરણ, ગોઠવણી, અપડેટ વગેરે - અમે અમારી સિસ્ટમની સુરક્ષા માટે પણ જવાબદાર છીએ. તે સિસ્ટમો પણ જ્યાં તૃતીય-પક્ષ પ્રદાતા ભલામણ કરે છે કે અમે ઉન્નત સુરક્ષાને અક્ષમ કરીએ. તે કામ જેવું લાગે છે એથન હન્ટ "મિશન: ઇમ્પોસિબલ" માંથી
આ મૂંઝવણનો સામનો કરીને, કેટલાક સિસ્ટમ સંચાલકો લેવાનું નક્કી કરે છે વાદળી ગોળી, કારણ કે તેઓ વિચારે છે કે તેઓ જીવન, બ્રહ્માંડ અને તે બધાના મોટા પ્રશ્નનો જવાબ ક્યારેય જાણશે નહીં. અને જેમ આપણે બધા જાણીએ છીએ, તે જવાબ 42 છે.
The Hitchhiker's Guide to the Galaxy ની ભાવનામાં, અહીં નિયંત્રણ અને ઉપયોગ વિશેના મહત્વપૂર્ણ પ્રશ્નોના 42 જવાબો છે. SELinux તમારી સિસ્ટમો પર.
1. SELinux એ ફરજિયાત એક્સેસ કંટ્રોલ સિસ્ટમ છે, જેનો અર્થ છે કે દરેક પ્રક્રિયામાં લેબલ હોય છે. દરેક ફાઇલ, ડિરેક્ટરી અને સિસ્ટમ ઑબ્જેક્ટમાં પણ લેબલ્સ હોય છે. નીતિ નિયમો ટૅગ કરેલી પ્રક્રિયાઓ અને ઑબ્જેક્ટ્સ વચ્ચે ઍક્સેસને નિયંત્રિત કરે છે. કર્નલ આ નિયમોનો અમલ કરે છે.
2. બે સૌથી મહત્વપૂર્ણ ખ્યાલો છે: લેબલિંગ — નિશાનો (ફાઈલો, પ્રક્રિયાઓ, બંદરો, વગેરે) અને અમલીકરણનો પ્રકાર (જે પ્રકારોના આધારે પ્રક્રિયાઓને એકબીજાથી અલગ કરે છે).
4. બહુ-સ્તરીય સુરક્ષા પ્રદાન કરવાનો હેતુ (બહુ-સ્તરીય સુરક્ષા - MLS) તેઓ જે ડેટાનો ઉપયોગ કરશે તેની સુરક્ષાના સ્તરના આધારે પ્રક્રિયાઓ (ડોમેન્સ) નું સંચાલન કરવાનું છે. ઉદાહરણ તરીકે, ગુપ્ત પ્રક્રિયા ટોચના ગુપ્ત ડેટાને વાંચી શકતી નથી.
5. બહુ-શ્રેણી સુરક્ષાની ખાતરી કરવી (મલ્ટી-કેટેગરી સુરક્ષા - MCS) સમાન પ્રક્રિયાઓને એકબીજાથી સુરક્ષિત કરે છે (ઉદાહરણ તરીકે, વર્ચ્યુઅલ મશીનો, ઓપનશિફ્ટ એન્જિન, SELinux સેન્ડબોક્સ, કન્ટેનર, વગેરે).
6. બુટ વખતે SELinux મોડ્સ બદલવા માટે કર્નલ વિકલ્પો:
autorelabel=1 → સિસ્ટમને રિબેલિંગ ચલાવવાનું કારણ બને છે
selinux=0 → કર્નલ SELinux ઈન્ફ્રાસ્ટ્રક્ચર લોડ કરતું નથી
enforcing=0 → પરમિશન મોડમાં લોડ થઈ રહ્યું છે
7. જો તમારે સમગ્ર સિસ્ટમને ફરીથી લેબલ કરવાની જરૂર હોય તો:
# touch /.autorelabel
#reboot
જો સિસ્ટમ માર્કિંગમાં મોટી સંખ્યામાં ભૂલો હોય, તો તમારે રિમાર્કિંગ સફળ થવા માટે પરવાનગી મોડમાં બુટ કરવાની જરૂર પડી શકે છે.
8. SELinux સક્ષમ છે કે કેમ તે તપાસવા માટે: # getenforce
9. SELinux ને અસ્થાયી રૂપે સક્ષમ/અક્ષમ કરવા માટે: # setenforce [1|0]
10. SELinux સ્થિતિ તપાસી રહ્યું છે: # sestatus
11. રૂપરેખાંકન ફાઇલ: /etc/selinux/config
12. SELinux કેવી રીતે કામ કરે છે? અપાચે વેબ સર્વર માટે ચિહ્નિત કરવાનું અહીં ઉદાહરણ છે:
સંદર્ભમાં પ્રક્રિયા ચાલી રહી છે httpd_t, લેબલ કરેલ ઑબ્જેક્ટ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે httpd_something_t.
13. ઘણા આદેશો દલીલ સ્વીકારે છે -Z સંદર્ભ જોવા, બનાવવા અને બદલવા માટે:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
સંદર્ભો સ્થાપિત થાય છે જ્યારે ફાઇલો તેમની પેરેંટ ડિરેક્ટરીના સંદર્ભના આધારે બનાવવામાં આવે છે (કેટલાક અપવાદો સાથે). RPM એ સ્થાપન દરમ્યાન સંદર્ભો સ્થાપિત કરી શકે છે.
14. SELinux ભૂલોના ચાર મુખ્ય કારણો છે, જેનું વર્ણન નીચેના મુદ્દાઓ 15-21માં વધુ વિગતમાં કરવામાં આવ્યું છે:
લેબલીંગ સમસ્યાઓ
SELinux ને જાણવાની જરૂર છે તે કંઈકને કારણે
SELinux નીતિ/એપ્લિકેશનમાં ભૂલ
તમારી માહિતી સાથે ચેડા થઈ શકે છે
15.લેબલીંગ સમસ્યા: જો તમારી ફાઇલો અંદર છે /srv/myweb ખોટી રીતે ચિહ્નિત થયેલ છે, ઍક્સેસ નકારી શકાય છે. આને ઠીક કરવાની અહીં કેટલીક રીતો છે:
જો તમે લેબલ જાણો છો: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
જો તમે સમકક્ષ ચિહ્નોવાળી ફાઇલ જાણો છો: # semanage fcontext -a -e /srv/myweb /var/www
સંદર્ભ પુનઃસ્થાપિત કરી રહ્યા છીએ (બંને કેસો માટે): # restorecon -vR /srv/myweb
16.લેબલીંગ સમસ્યા: જો તમે ફાઇલની નકલ કરવાને બદલે તેને ખસેડો છો, તો ફાઇલ તેના મૂળ સંદર્ભને જાળવી રાખશે. આ સમસ્યાને ઠીક કરવા માટે:
લેબલ સાથે સંદર્ભ આદેશ બદલો: # chcon -t httpd_system_content_t /var/www/html/index.html
17. જો SELinux તમારે જાણવાની જરૂર છેકે HTTPD પોર્ટ 8585 પર સાંભળી રહ્યું છે, SELinux ને કહો:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux તમારે જાણવાની જરૂર છે બુલિયન મૂલ્યો કે જે SELinux નીતિના ભાગોને SELinux પૉલિસી ઓવરરાઇટ થયાની જાણ કર્યા વિના રનટાઇમ પર બદલવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, જો તમે httpd ઈમેલ મોકલવા ઈચ્છો છો, તો દાખલ કરો: # setsebool -P httpd_can_sendmail 1
19.SELinux તમારે જાણવાની જરૂર છે SELinux સેટિંગ્સને સક્ષમ/અક્ષમ કરવા માટેના તાર્કિક મૂલ્યો:
તમામ બુલિયન મૂલ્યો જોવા માટે: # getsebool -a
દરેકનું વર્ણન જોવા માટે: # semanage boolean -l
બુલિયન મૂલ્ય સેટ કરવા માટે: # setsebool [_boolean_] [1|0]
25. જો 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
26. લોગીંગ: SELinux ઘણી જગ્યાએ માહિતી રેકોર્ડ કરે છે:
ખાતરી કરો કે SELinux અનુમતિશીલ મોડમાં ચાલી રહ્યું છે: # setenforce 0
સ્ક્રિપ્ટનો ઉપયોગ કરો fixfilesઆગામી રીબુટ પર ફાઈલો રીલેબલ થયેલ છે તેની ખાતરી કરવા માટે:
# fixfiles -F onboot # reboot
34. ચોક્કસ MLS શ્રેણી સાથે વપરાશકર્તા બનાવો: # useradd -Z staff_u john
આદેશનો ઉપયોગ કરીને useradd, નવા વપરાશકર્તાને હાલના SELinux વપરાશકર્તા સાથે મેપ કરો (આ કિસ્સામાં, staff_u).
35. SELinux અને Linux વપરાશકર્તાઓ વચ્ચે મેપિંગ જોવા માટે: # semanage login -l
36. વપરાશકર્તા માટે ચોક્કસ શ્રેણી વ્યાખ્યાયિત કરો: # semanage login --modify --range s2:c100 john
37. વપરાશકર્તાના હોમ ડિરેક્ટરી લેબલને સુધારવા માટે (જો જરૂરી હોય તો): # chcon -R -l s2:c100 /home/john
38. વર્તમાન શ્રેણીઓ જોવા માટે: # chcat -L
39. કેટેગરીઝ બદલવા અથવા તમારી પોતાની બનાવવાનું શરૂ કરવા માટે, ફાઇલને નીચે પ્રમાણે સંપાદિત કરો:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. ચોક્કસ ફાઇલ, ભૂમિકા અને વપરાશકર્તા સંદર્ભમાં આદેશ અથવા સ્ક્રિપ્ટ ચલાવવા માટે: