selinux centos өшіру 7. SELinux конфигурациялау, қосу, өшіру. CentOS жүйесінде SELinux өшіру әдісі. Бір рет және мәңгілікке

Ол қол жеткізуді басқарудың қауіпсіздік саясаттарын қолдау механизмін қамтамасыз етеді. SELinux кейде сіздің жолыңызға кедергі келтіруі мүмкін. Сондықтан өшіру-өшіру керек SELinux . Дегенмен, SELinux-ты өшірмес/ажырамас бұрын, мұны не үшін істеп жатқаныңыздың жақсы себебі бар екеніне көз жеткізіңіз.

SELinux-ты уақытша өшіру/өшіру

1-қадам:Ең алдымен, келесі пәрменді пайдаланып ағымдағы SELinux күйін тексеріңіз:

# мәжбүрлеуді орындау #

Бірдей нәтиже беретін пәрменмен басқа әдісті пайдалану:

# sestatus SELinux күйі: қосылған SELinuxfs монтажы: /selinux Ағымдағы режим: конфигурация файлынан режимді енгізу: саясат нұсқасын орындау: 24 Конфигурация файлындағы саясат: мақсатты #

2-қадам:Уақытша өшіру/өшіру SELinux , төмендегі әдісті қолданыңыз:

# echo 0 > /selinux/enforce

Басқа әдіс

#setenforce 0

Мүмкін, оны рұқсат ету режиміне орнатуға болады. Нәтижесінде, SELinux оны орындаудың орнына ескерту хабарларын шығарады. Дәл солай істеу үшін келесі пәрменді пайдаланыңыз:

# setenforce рұқсат етуші

Ең алдымен, сипатталған әдіс сіз қайта жүктегенше жұмыс істейді. Нәтижесінде ол келесі қайта жүктеуге дейін жұмыс істейді. Сондай-ақ, егер сіз мұны істегіңіз келсе тұрақты негізқайта жүктеу арқылы төмендегі процедураны орындаңыз.

SELinux-ты біржола өшіру-өшіру

Оны біржола өшіру үшін « мәнін өзгертіңіз SELinux"қосу" мүгедек"файлда" /etc/sysconfig/SELinux«төменде көрсетілгендей

Соңында төмендегі пәрменмен қайта тексеріңіз:

# sestatus SELinux күйі: өшірілген

SELinux (Security-Enhanced Linux - жақсартылған қауіпсіздігі бар Linux) классикалық дискрециялық қол жеткізуді басқару жүйесімен параллель жұмыс істей алатын мәжбүрлі қол жеткізуді басқару жүйесінің іске асырылуы болып табылады. Стандартты Linux ядросына кіреді. Сондай-ақ, SELinux жұмыс істеуі үшін кейбір утилиталардың (ps, ls, т.б.) өзгертілген нұсқалары қажет, олар жаңа ядро ​​функцияларын және файлдық жүйенің қолдауын қамтамасыз етеді.

1-әдіс: SELinux қолданбасын уақытша өшіріңіз

SELinux қолданбасын уақытша өшіру үшін /selinux/enforce файлын өзгертуге болады. Бұл уақытша өшіру және жүйе қайта жүктелгеннен кейін SELinux қайта жұмыс істейтінін ескеріңіз.

# мысық /selinux/enforce 1 # echo 0 > /selinux/enforce# cat /selinux/enforce 0 Төмендегі мысалда көрсетілгендей setenforce пәрменін де пайдалануға болады. setenforce пәрменінің ықтимал опциялары: Күштеу, Рұқсат ету, 1 (қосу) немесе 0 (өшіру).
#setenforce 0

2-әдіс: SELinux-ты біржола өшіріңіз

SELinux-ты біржола өшіру үшін /etc/selinux/config файлын өңдеңіз және SELINUX=өшірілген параметрін төменде көрсетілгендей орнатыңыз. Осыдан кейін серверді қайта жүктеңіз.

# cat /etc/selinux/config SELINUX=өшірілген SELINUXTYPE=мақсатты SETLOCALDEFS=0

3-әдіс: Grub Bootloader бағдарламасында SELinux-ты өшіру

Үшінші әдіс SELinux өшіру үшін GRUB жүктеушісін пайдаланады. Жолдың соңына қосыңыз selinux=0

# cat /boot/grub/grub.confәдепкі=0 күту уақыты=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz жасырын мәзір атауы Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) түбірлік (hd0,0) ядро ​​/boot/vmlinuz -2.6.18-92.el5PAE ro root=LABEL=/ rhgb тыныш selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img атауы Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) түбір (hd0,0) ядро ​​/boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb тыныш selinux=0 initrd /boot/initrd-2.6.18-92.el5.img

4-әдіс: SELinux-ты тек белгілі бір қызметтер үшін өшіріңіз - HTTP/Apache

SELinux-ты толығымен өшіру қажет болмаса, тек белгілі бір қызметтер үшін, сізде бұл опция бар. Мысалы, айнымалы мәнін өзгерту арқылы HTTP/Apache үшін SELinux өшірейік. httpd_disable_transфайлда /etc/selinux/targeted/booleans.

# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1 Айнымалы мәнді setsebool пәрмені арқылы да орнатыңыз. Осыдан кейін өзгертулер күшіне енуі үшін httpd қайта іске қосыңыз.

# setsebool httpd_disable_trans 1# қызмет httpd қайта іске қосылады

Барлығына сәлем, SELinux туралы аздап сөйлесейік, бірақ оған дейін оның не екенін естімегендер үшін кішкене анықтама. SELinux – ағылшын тілінің аббревиатурасы. «Қауіпсіздігі жақсартылған Linux» сөздері қауіпсіздікті жақсартатын Linux дегенді білдіреді. Басқаша айтқанда, бұл классикалық таңдаулы қол жеткізуді басқару жүйесімен параллель жұмыс істеуге қабілетті мәжбүрлі қол жеткізуді басқару жүйесін енгізу. Айырмашылығы мынада: SELinux-та белгілі бір саясаттар арқылы кіру құқықтары жүйенің өзімен анықталады, өз кезегінде таңдаулы қол жеткізуді басқару жүйесі пайдаланушы құқықтарына негізделген ресурстарға процеске қол жеткізуді бөледі, қарапайым түсіну үшін бұл үш деңгейдегі rwx құқықтары - иеленуші , иелері тобы және басқа пайдаланушылар.
Кішкене сипаттамадан кейін кейбір SELinux пәрмендері мен опцияларын қарастырып көрейік. Біздің мысалдар операциялық бөлмеде көрсетіледі Linux жүйесі CentOS 6. Мүмкін бірінші және ең танымалы - SELinux күйін тексеруге арналған командалар.

/usr/sbin/getenforce

/usr/sbin/sestatus

getenforce пәрмені үшін мәндерді қайтарыңыз
Орындау– SELinux іске қосылғанын және саясат ережелерінің орындалғанын көрсетеді;
Рұқсат етуші– SELinux іске қосылғанын, бірақ саясат ережелері орындалмайтынын және тек DAC ережелері пайдаланылатынын көрсетеді;
Өшірілген– SELinux өшірілгенін көрсетеді.

sestatus пәрменінің мәндерін қайтарыңыз
Бұл пәрмен SELinux күйіне қосымша, пайдаланылған SELinux саясатын қайтарады, мысалы:

$ /usr/sbin/sestatus SELinux күйі: қосылған SELinuxfs орнату: /selinux Ағымдағы режим: конфигурация файлынан режимді енгізу: орындау Саясат нұсқасы: 23 Конфигурация файлындағы саясат: мақсатты

SELinux күйі: қосылған – SELinux қосылғанын білдіреді;
Ағымдағы режим: мәжбүрлеу – SELinux мәжбүрлі режимде қосылғанын білдіреді;
Конфигурация файлындағы саясат: мақсатты – SELinux мақсатты саясаты пайдаланылғанын көрсетеді.

SELinux қосулы
Конфигурация файлындағы операциялық жүйеде SELinux қосыңыз/өшіріңіз
/etc/selinux/config

# Бұл файл жүйедегі SELinux күйін басқарады. # SELINUX= осы үш мәннің бірін қабылдай алады: # күштеу - SELinux қауіпсіздік саясаты күшіне енеді. # рұқсат етуші - SELinux мәжбүрлеудің орнына ескертулерді басып шығарады. # өшірілген - SELinux саясаты жүктелмеген. SELINUX=өшірілген # SELINUXTYPE= мына екі мәннің бірін қабылдай алады: # мақсатты - Мақсатты процестер қорғалған, # млс - Көп деңгейлі қауіпсіздікті қорғау. SELINUXTYPE=мақсатты

SELINUX= disabled опциясы SELinux өшірілгенін білдіреді. SELinux қолданбасын бастамас бұрын, кейбір манипуляцияларды орындау керек.
1. SELinux бумаларының орнатылуын тексеріңіз

Rpm -qa | grep selinux rpm -q policycoreutils rpm -qa | grep ақауларын жою

Сондай-ақ келесі бумалардың орнатылғанын тексеріңіз: selinux-саясат-мақсатты, selinux-саясат, libselinux, libselinux-python, libselinux-utils, policycoreutils, ақауларды жою, ақауларды жою-сервер, ақаулықтарды жою-плагиндер. Пакеттер Policycoreutils-gui, ақауларды жою, selinux-policy-devel,Және mcstransміндетті емес.
Жетіспейтін бумаларды пәрмен арқылы орнатуға болады (түбір ретінде)

Yum орнату бумасының атауы

2. Әрбір файлдық жүйе файлы іске қосу алдында SELinux контекстімен белгіленуі керек. Осы уақытқа дейін шектелген домендерге кіруге тыйым салынуы мүмкін, бұл амалдық жүйенің дұрыс жүктелмеуіне әкелуі мүмкін. Жағдайды /etc/selinux/config конфигурация файлында SELINUX=рұқсат ету опциясын орнату арқылы түзетуге болады.

3. Файлды белгілеу келесі жүйені қайта жүктеу кезінде орын алады. Барлық файлдарға арналған белгілер процесс барысында SELinux контекстінде орнатылады. Соңғы жолда әрбір * таңбасы 1000 тегтелген файлды білдіреді. Процестің ұзақтығы жүйедегі файлдардың санына, сондай-ақ дискілердің жылдамдығына байланысты.

*** Ескерту -- SELinux мақсатты саясатты қайта таңбалау қажет. *** Қайта таңбалау файл *** жүйе өлшеміне және қатты дискілердің жылдамдығына байланысты өте ұзақ уақыт алуы мүмкін. ****

4. SELinux саясаты мәжбүрлеп тағайындалмаған және жұмыс кеңейту режимінде болған жағдайда, журналға мәжбүрлі режимде тыйым салынатын әрекеттер ретінде тыйымдар жазылады. Жүйені соңғы жүктеу кезінде SELinux әрекеттерге тыйым салмайтынына көз жеткізіңіз, бұл үшін пәрменді іске қосыңыз.

Grep "SELinux алдын алуда" /var/log/messages

Шығару бос болуы керек, бұл бәрі жақсы және SELinux әрекетке тыйым салмайды.
5. Журналдарда тыйымдар туралы хабарламалар жоқ екеніне көз жеткізгеннен кейін, SELINUX параметрін орындауда орнатыңыз (файл /etc/selinux/config):

# Бұл файл жүйедегі SELinux күйін басқарады. # SELINUX= осы үш мәннің бірін қабылдай алады: # күштеу - SELinux қауіпсіздік саясаты күшіне енеді. # рұқсат етуші - SELinux мәжбүрлеудің орнына ескертулерді басып шығарады. # өшірілген - SELinux саясаты жүктелмеген. SELINUX=мәжбүрлеу # SELINUXTYPE= мына екі мәннің бірін қабылдай алады: # мақсатты - Мақсатты процестер қорғалған, # mls - Көп деңгейлі қауіпсіздікті қорғау. SELINUXTYPE=мақсатты

6. Осыдан кейін операциялық жүйеқайта іске қосу керек. Қайта іске қосқаннан кейін getenforce пәрменімен Enforcing қайтару мәнін тексеру керек.

$ /usr/sbin/getenforce мәжбүрлеу

7. SELinux және жүйе пайдаланушылары арасындағы салыстыруларды көру үшін пәрменді іске қосыңыз

/usr/sbin/semanage login –l

Пәрменнің нәтижесі келесідей болуы керек:

Жүйеге кіру аты SELinux пайдаланушысы MLS/MCS ауқымы __әдепкі__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Сондай-ақ ескеру қажет кейбір ерекшеліктер бар. SELinux өшірілгенде, пайдаланушы жасаған файлдар белгіленбейді және нәтижесінде мәжбүрлеу күйіне қойылған кезде мәселелер туындауы мүмкін. Файлдар опцияны ажыратылған күйден рұқсат ету/мәжбүрлеу режиміне өзгерту арқылы белгіленеді, осылайша белгіленбеген файлдардың пайда болуы мәселесін болдырмайды.

Біз Habré-де SELinux туралы бұрыннан жазған болатынбыз, бірақ бұл жүйе бойынша егжей-тегжейлі нұсқаулықтар көп жарияланған жоқ. Бүгін біз жүйе туралы ақпараттан бастап және саясаттардың икемді конфигурациясына дейін SELinux бойынша дәл осындай егжей-тегжейлі нұсқаулықты басып шығарамыз.
Жазбаны түсіну қиын «параққа» айналдырмау үшін біз нұсқаулықты екі бөлікке бөлуді шештік. Біріншісі жүйенің өзі және оның кейбір мүмкіндіктері туралы айтатын болады. Екіншісі - саясатты құру. Қазір бірінші бөлімін шығарып жатырмыз, екінші бөлімі сәл кейінірек шығады.

1. Кіріспе

SELinux (SELinux) - ядро ​​деңгейінде жүзеге асырылған мәжбүрлі қол жеткізуді басқару жүйесі. Бұл жүйе алғаш рет CentOS төртінші нұсқасында пайда болды, ал 5 және 6 нұсқаларында енгізу айтарлықтай толықтырылды және жетілдірілді. Бұл жақсартулар SELinux-қа көптеген өзекті мәселелерді тиімді шешуге қабілетті әмбебап жүйеге айналуға мүмкіндік берді. Классикалық Unix құқықтар жүйесі алдымен қолданылатынын және бұл бастапқы тексеру сәтті болған жағдайда басқару тек SELinux-қа өтетінін есте ұстаған жөн.

1.1 Кейбір ағымдағы мәселелер.

SELinux практикалық мәнін түсіну үшін стандартты қол жеткізуді басқару жүйесі жеткіліксіз болатын бірнеше мысалдарды қарастырайық. SELinux өшірілген болса, сіз тек DAC (дискрециялық қатынасты басқару) немесе ACL (қол жеткізуді басқару тізімдері) қамтитын классикалық дискрециялық қатынасты басқаруға қол жеткізе аласыз. Яғни туралы айтып отырмызкейбір жағдайларда мүлдем жеткіліксіз болуы мүмкін пайдаланушылар мен пайдаланушылар топтары деңгейінде жазу, оқу және орындау құқықтарымен манипуляциялау туралы. Мысалы:

- Әкімші пайдаланушының әрекеттерін толық басқара алмайды. Мысалы, пайдаланушының барлық басқа пайдаланушыларға SSH кілттері сияқты өздерінің құпия файлдарына оқу құқығын беруі әбден мүмкін.

Процестер қауіпсіздік параметрлерін өзгерте алады. Мысалы, пайдаланушының поштасы бар файлдарды тек бір нақты пайдаланушы оқуы керек, бірақ пошта клиенті бұл файлдарды барлығы оқи алатындай қатынас құқықтарын өзгертуі мүмкін.

Процестер оларды іске қосқан пайдаланушының құқықтарын мұраға алады. Мысалы, троянды жұқтырған нұсқа Firefox шолғышыпайдаланушының SSH кілттерін оқи алады, бірақ мұны істеуге ешқандай себеп жоқ.

Негізінде, дәстүрлі таңдаулы қол жеткізуді басқару (DAC) үлгісінде қол жеткізудің тек екі деңгейі жақсы жүзеге асырылады - пайдаланушы және суперпайдаланушы. Жоқ қарапайым әдіс, бұл әрбір пайдаланушыға қажетті минималды артықшылықтарға ие болуға мүмкіндік береді.
Әрине, қауіпсіздіктің классикалық үлгісінде бұл мәселелерді шешудің көптеген әдістері бар, бірақ олардың ешқайсысы әмбебап емес.

1.1.1 SELinux жүйесінде қолданылатын негізгі терминдер:

Домен- процесс орындай алатын әрекеттер тізімі. Әдетте, домен процесс жұмыс істей алатын әрекеттердің ең аз мүмкін жиынтығы ретінде анықталады. Осылайша, егер процесс дискредитацияланса, шабуылдаушы көп зиян келтіре алмайды.

Рөл- қолдануға болатын домендердің тізімі. Белгілі бір домен рөлге арналған домендер тізімінде болмаса, сол домендегі әрекеттерді қолдану мүмкін емес.

Түр- объектіге қатысты рұқсат етілген әрекеттердің жиынтығы. Түрдің доменнен айырмашылығы ол құбырларға, каталогтарға және файлдарға қолданылуы мүмкін, ал домен процестерге қолданылады.

Қауіпсіздік контекст- барлық SELinux атрибуттары - рөлдер, түрлер және домендер.

1.2 Қауіпсіздіктің дәстүрлі моделінің мәселелерін шешу.

SELinux әр қызмет, пайдаланушы және бағдарлама үшін ең аз талап етілетін артықшылықтар үлгісін әлдеқайда қатаң ұстанады. Әдепкі бойынша, жүйенің әрбір элементі оның жұмыс істеуі үшін маңызды құқықтарға ғана ие болғанда, «тыйым салу режимі» орнатылады. Пайдаланушы, бағдарлама немесе қызмет файлды өзгертуге немесе оны шешу үшін анық қажет емес ресурсқа кіруге әрекеттенсе, оларға кіруге рұқсат берілмейді және мұндай әрекет тіркеледі.

SELinux ядро ​​деңгейінде жүзеге асырылады, сондықтан қолданбалы қолданбалар осы мәжбүрлі қол жеткізуді басқару жүйесінің нұсқасы, оның жұмыс істеу ерекшеліктері және т.б. туралы мүлде білмеуі мүмкін. Дұрыс конфигурацияланса, SELinux операцияға ешқандай әсер етпейді үшінші тарап бағдарламаларыжәне қызметтер. Дегенмен, егер қолданба осы кіруді басқару жүйесінен қате туралы хабарларды ұстай алатын болса, қолданбаны пайдаланудың қарапайымдылығы айтарлықтай артады. Шынында да, қорғалған ресурсқа немесе файлға қол жеткізу әрекеті жасалса, SELinux негізгі қолданбаға «қолжеткізілмеген» тобынан қате жібереді. Бірақ бірнеше қолданбалар SELinux-тен алынған жүйелік қоңырауды қайтару кодтарын пайдаланады.

Мұнда бүкіл жүйенің қауіпсіздігін қалай жақсартуға болатынын көрсету үшін SELinux пайдаланудың кейбір мысалдары берілген.

- ssh пернелерін оқи алатын бағдарламалар тізімін жасау және конфигурациялау.

Пошта клиенті арқылы деректерге рұқсатсыз кіруді болдырмау.

Браузерді пайдаланушының басты қалтасында жұмыс істеуге қажетті файлдар мен қалталарды ғана оқи алатындай етіп конфигурациялау.

2. SELinux жұмыс режимдері

SELinux-тың үш негізгі жұмыс режимі бар, Күштеу режимі әдепкі бойынша орнатылған. Бұл өте қатаң режим және қажет болған жағдайда оны соңғы пайдаланушыға ыңғайлырақ нәрсеге өзгертуге болады.

Орындау: Әдепкі режим. Бұл режим таңдалған кезде, ағымдағы қауіпсіздік саясатын қандай да бір түрде бұзатын барлық әрекеттер блокталады және бұзу әрекеті журналға жазылады.

Рұқсат етуші: Бұл режимді пайдаланған кезде, ағымдағы қауіпсіздік саясатын бұзатын барлық әрекеттер туралы ақпарат журналға жазылады, бірақ әрекеттердің өзі блокталмайды.

Өшірілген: мәжбүрлі қол жеткізуді басқару жүйесін толығымен өшіру.

Басқару мәзірінде (system-config-selinux) қол жетімді арнайы GUI құралын пайдаланып, ағымдағы режимді және басқа SELinux параметрлерін көруге (және қажет болса, оны өзгертуге) болады. Консольде жұмыс істеуге дағдыланған болсаңыз, ағымдағы күйді sestatus пәрменімен көруге болады.

# sestatus SELinux күйі: қосылған SELinuxfs монтажы: /selinux Ағымдағы режим: конфигурация файлынан режимді орындау: саясат нұсқасын орындау: 21 Конфигурация файлындағы саясат: мақсатты

Сондай-ақ, SELinux күйін getenforce командасы арқылы білуге ​​болады.
"setenforce" пәрмені Күштеу және Рұқсат ету режимдері арасында жылдам ауысуға мүмкіндік береді, өзгертулер қайта жүктеусіз күшіне енеді. Бірақ SELinux қоссаңыз немесе өшірсеңіз, қайта жүктеу қажет, себебі қауіпсіздік белгілері файлдық жүйеде қайта орнатылуы керек.
Жүйе жүктелген сайын қолданылатын әдепкі режимді таңдау үшін /etc/selinux/config файлында "SELINUX=" жолының мәнін орнатыңыз, режимдердің бірін белгілеңіз - "міндетті", "рұқсат етуші" немесе " мүгедек». Мысалы: "SELINUX=рұқсат етуші".

3. SELinux саясаттары

Жоғарыда айтылғандай, SELinux әдепкі бойынша Күштіру режимінде жұмыс істейді, рұқсат етілгендерден басқа кез келген әрекеттер автоматты түрде бұғатталған кезде, әрбір бағдарламаның, пайдаланушының немесе қызметтің тек жұмыс істеуі қажет артықшылықтары бар, бірақ басқа ештеңе жоқ. Бұл өте қатал саясат, оның екі артықшылығы да бар – ең жоғары деңгей ақпараттық қауіпсіздік, және кемшіліктері – жүйені осы режимде конфигурациялау жүйе әкімшілері үшін үлкен еңбек шығындарымен байланысты, сонымен қатар, пайдаланушылар жүйені кез келген тривиальды емес жолмен пайдаланғысы келсе, кіру шектеулеріне тап болу қаупі жоғары. Бұл тәсіл Кәсіпорын секторында қолайлы, бірақ соңғы пайдаланушы компьютерлерінде қолайсыз. Көптеген әкімшілер мұндай мәселелерді болдырмау үшін жұмыс станцияларында SELinux-ты өшіреді.

Бұған жол бермеу үшін негізгі қолданбаларжәне мысалы, httpd, named, dhcpd, mysqld сияқты қызметтер шабуылдаушыға маңызды деректерге қол жеткізуге мүмкіндік бермейтін алдын ала конфигурацияланған мақсатты саясаттар анықталған. Саясат анықталмаған қолданбалар unconfined_t доменінде іске қосылады және SELinux арқылы қорғалмаған. Осылайша, дұрыс таңдалған мақсатты саясат пайдаланушы үшін қажетсіз проблемаларды тудырмай, қолайлы қауіпсіздік деңгейіне қол жеткізуге мүмкіндік береді.

4. SELinux жүйесіндегі қатынасты басқару

SELinux қол жеткізуді басқарудың келесі үлгілерін қамтамасыз етеді:

Type Enforment (TE): мақсатты саясаттарда пайдаланылатын негізгі қатынасты басқару механизмі. Рұқсаттарды ең төменгі деңгейде егжей-тегжейлі басқаруға мүмкіндік береді. Ең икемді, бірақ сонымен бірге ең көп еңбекті қажет ететін жүйелік әкімшімеханизм.

Рөлге негізделген қатынасты басқару (RBAC): Бұл үлгіде қатынас құқықтары рөлдер ретінде жүзеге асырылады. Рөл - жүйенің бір немесе бірнеше элементтерінің жүйенің басқа бөліктерінің үстінен белгілі бір әрекеттерді орындауға рұқсат. Негізінде, RBAC ТЭ-нің одан әрі дамуы болып табылады.

Көп деңгейлі қауіпсіздік (MLS): көп деңгейлі қауіпсіздік моделі, онда барлық жүйе нысандарына белгілі бір қатынас деңгейі тағайындалады. Рұқсат беру немесе рұқсат беруден бас тарту тек осы деңгейлер арасындағы қатынаспен анықталады.

SELinux ішіндегі барлық процестер мен файлдар қауіпсіздік контекстіне ие.
Контекстке жақынырақ қарау арқылы тәжірибеде қарастырайық басты бет Apache веб-сервері /var/www/html/index.html мекенжайында орналасқан

$ ls -Z /var/www/html/index.html -rw-r--r-- пайдаланушы аты пайдаланушы аты system_u:object_r:httpd_sys_content_t /var/www/html/index.html

Стандартты файл рұқсаттарынан басқа, біз SELinux қауіпсіздік контекстін көре аламыз: system_u: object_r: httpd_sys_content_t.

Мәтінмән user:role:type:mls негізінде жасалған, бірақ user:role:type өрістері mls өрісі жасырылған кезде көрсетіледі. Біз сондай-ақ мақсатты саясатты көре аламыз, бұл жағдайда httpd_sys_content_t.

Енді «httpd» процесі (Apache веб-сервері) үшін SELinux қауіпсіздік контекстін қарастырайық:

$ps axZ | grep httpd system_u:system_r:httpd_t 3234 ? Ss 0:00 /usr/sbin/httpd

Көріп отырғанымыздай, бұл процесс httpd_t доменінде жұмыс істейді.

Енді үй каталогындағы файлдың қауіпсіздік контекстін қарастырайық:

$ ls -Z /home/username/myfile.txt -rw-r--r-- пайдаланушы аты пайдаланушы аты user_u:object_r:user_home_t /home/username/myfile.txt

Біз файлдың user_home_t типті екенін көреміз, бұл түр әдепкі бойынша үй каталогындағы барлық файлдарға тағайындалады.
Қатынас тек бір түрдегі элементтер арасында рұқсат етіледі, сондықтан Apache веб-сервері httpd_sys_content_t түріндегі /var/www/html/index.html файлын оңай оқи алады. Сонымен қатар, Apache httpd_t доменінде жұмыс істеп тұрғандықтан және толтырылған userid:username өрістері болмағандықтан, ол home/username/myfile.txt файлына қол жеткізе алмайды, дегенмен бұл файлды процесстер оқуға болады. мақсатты айқындалған саясат. Осылайша, егер Apache веб-сервері бұзылса, шабуылдаушы httpd_t доменінде жоқ файлдарға қол жеткізе алмайды немесе процестерді іске қоса алмайды.

5. SELinux ақаулықтарын жою

Ерте ме, кеш пе, SELinux сізге бір нәрсеге қол жеткізуден бас тартатын жағдайға тап боласыз. Қол жеткізуден бас тартудың бірнеше негізгі себептері бар:

Қате белгіленген файл.
- Процесс дұрыс емес контексте жүріп жатыр
- Саясаттағы қате. Процесс саясатты жасау кезінде ескерілмеген файлға кіруді талап етеді.
- басып кіру әрекеті.

Қол жеткізуден бас тартудың алғашқы үш себебі оңай шешіледі, ал шабуыл әрекеті кезінде дабыл қағылып, пайдаланушыға тиісті хабарлама жіберіледі.
Кез келген мәселені шешу үшін SELinux журналын қараңыз. Әдепкі бойынша, ол auditd процесі арқылы /var/log/audit/audit.log файлына жазылады. Егер бұл процесс орындалмаса, SELinux /var/log/messages файлында журналға тіркеледі, бұл жағдайда кіруді басқару жүйесінің барлық хабарламалары AVC пернесі арқылы белгіленеді, бұл, мысалы, қажетті жолдарды жылдам сүзуге мүмкіндік береді. grep пәрменін пайдалану.
IN соңғы нұсқаларыдистрибутивтер (CentOS 5-тен бастап), қызметтік бағдарлама графикалық интерфейс SELinux журналын ыңғайлы және пайдаланушыға ыңғайлы пішінде көрсетуге мүмкіндік беретін пайдаланушы. Сіз оны консольден sealert -b теру арқылы шақыра аласыз. Утилита ақауларды жою бумасының бөлігі болып табылады. Егер X сервері жұмыс істемесе, келесі пәрмен арқылы адам оқи алатын есептерді жасай аласыз:

Sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.1 Файл қауіпсіздігі контекстік белгілерін өзгерту.

"chcon" пәрмені файлдардың немесе каталогтардың SELinux контекстін "chown" және "chmod" пәрмендері файлдың иесін немесе рұқсаттарын өзгертуге мүмкіндік беретіндей өзгертуге мүмкіндік береді. стандартты жүйеқатынасты басқару.

Бірнеше мысалды қарастырайық.
Жүйеде Apache веб-сервері орнатылған деп есептейік және сайттар сақталатын қалтаны (әдепкі бойынша бұл /var/www/html/), айталық, /html/ етіп өзгертіп, индексті жасау керек. html файлы осы каталогта.
# mkdir /html # touch /html/index.html # ls -Z /html/index.html -rw-r--r-- түбірлік түбір user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x түбірлік түбір user_u:object_r:default_t html

Жоғарыда біз қауіпсіздік контекстіндегі /html каталогы да, /html/index.html файлы да default_t түріне жататынын көреміз. Бұл дегеніміз, егер біз Apache іске қосып, осы каталогпен немесе файлмен жұмыс істеуге тырыссақ, SELinux бізге кіруден бас тартады. Және бұл мүлдем дұрыс болады, себебі Apache-мен өзара әрекеттесетін файлдар үшін дұрыс қауіпсіздік контексті httpd_sys_content_t болып табылады.
Мәтінмәнді өзгертіп, бәрі дұрыс жасалғанын тексерейік:

# chcon -v --type=httpd_sys_content_t /html мәтінмәні user_u:object_r:httpd_sys_content_t болып өзгертілді # chcon -v --type=httpd_sys_content_t /html/index.html мәтінмәні /html/index.html user_u:object_r болып өзгертілді :httpd_sys_content_t # ls -Z /html/index.html -rw-r--r-- түбірлік пайдаланушы_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x түбірі user_u:object_r:httpd_sys_content_t html
Әрбір файлды және әрбір каталогты қолмен өңдеу қажет емес; сіз жай ғана -R рекурсивті каталогты өту опциясын пайдалана аласыз:

# chcon -Rv --type=httpd_sys_content_t /html

Қауіпсіздік контекстіндегі мұндай өзгерістер қайта жүктеулер арасында сақталады, дегенмен файлдық жүйе белгілері өзгертілсе, өзгертулер жоғалады. Техникалық қызмет көрсету және пайдалану кезінде бұл сирек емес. Мұндай жағдайда дұрыс шешім (әрине, тестілеуден кейін) қосымша ереже жасау, содан кейін оны жергілікті жергілікті ережелермен біріктіру болады. Осылайша, ол негізгі ережелерге қарағанда жоғары басымдыққа ие болады.

SELinux файлдық жүйе белгілерін өзгерткеннен кейін де дұрыс жұмыс істеуі үшін біз GUI интерфейсі бар SELinux басқару құралын және semanage консоль утилитасын пайдалана аламыз:

Semanage fcontext -a -t httpd_sys_content_t "/html(/.*)?"

Жоғарыдағы мысалда біз /html каталогында орналасқан барлық файлдарға httpd_sys_content_t контекстін тағайындадық.

5.2 SELinux қауіпсіздік контекстін қалпына келтіру.

"Қалпына келтіру" пәрмені қауіпсіздік контекстін әдепкі бойынша тағайындалғанға өзгертуге мүмкіндік береді.
Мысал ретінде тағы да Apache веб-серверін қолданамыз. Пайдаланушы өзінің үй каталогындағы index.html файлының көшірмесін өңдеп, оны (mv пәрменімен) сайттар сақталатын каталогқа (/var/www/html) жылжытты делік.

Көшіру кезінде (cp пәрмені) файлдың қауіпсіздік контексті тағайындалған каталогтың мәтінмәнімен сәйкес келетінін, ал жылжыту кезінде қауіпсіздік мәтінмәні бастапқы мәтінмәнмен сәйкес келетінін ескеріңіз. Әрине, біз қауіпсіздік контекстін өзгерту үшін chcon пәрменін пайдалана аламыз, бірақ жылжытылған файлдар қазір /var/www/html каталогында болғандықтан, біз сол каталогта орналасқан барлық файлдардың мәтінмәндік параметрлерін қалпына келтіре аламыз.

Тек index.html файлы үшін мәтінмәнді қалпына келтіру үшін біз мына пәрменді пайдалана аламыз:

# restorecon -v /var/www/html/index.html

Егер біз бүкіл каталогты рекурсивті түрде айналдырғымыз келсе және ондағы барлық файлдардың мәтінмәнін өзгерткіміз келсе, біз келесі пәрменді қолданамыз:

# restorecon -Rv /var/www/html

5.3 Бүкіл файлдық жүйе үшін белгілерді өзгерту.

Кейде бүкіл файлдық жүйеде қауіпсіздік белгілерін қайта орнату қажет болады. Көбінесе бұл операция жүйе біраз уақыт өшірілгеннен кейін SELinux қайта қосылғанда орындалады. Бұл саясатты басқару түрін қатаң деп өзгертсек қажет (бұл жағдайда барлық процестер өздерінің арнайы домендерінде жұмыс істейді; unconfined_t доменінде ешкім жұмыс істей алмайды).

Автоматты түрде қайта бөлу үшін файлдық жүйекелесі рет қайта жүктегенде келесі пәрмендерді енгізіңіз:
# түртіңіз /.autorelabel # қайта жүктеңіз
Кейде автоматты қайта бөлу жұмыс істемейді (көбінесе SELinux өшірілген тарату жинағы жаңартылған жағдайларда). Бұл жағдайда келесі пәрменді пайдаланыңыз:

# genhomedircon # түртіңіз /.autorelabel # қайта жүктеңіз

5.4 Порттарға қол жеткізуді қамтамасыз ету.

Көбінесе біз Apache сияқты қызметтер стандартты емес порттарды тыңдап, олардағы кіріс қосылымдарды қабылдай алатынын қалаймыз. Негізгі SELinux саясаттары белгілі бір қызметке қатаң кодталған алдын ала анықталған порттарға ғана қол жеткізуге мүмкіндік береді. Apache 81 портында тыңдауын қалаймыз делік. Бұл жағдайда semanage пәрменін пайдаланып ережені қосу керек:

# семанаж порты -a -t http_port_t -p tcp 81

SELinux рұқсат беретін порттардың толық тізімін төмендегідей қарауға болады:

# семанаж порты -l

Нұсқаулықтың келесі, екінші бөлігінде біз жүйелік саясаттарды икемді конфигурациялау мүмкіндігін көрсетеміз.

Қауіпсіздігі жақсартылған Linux (SELinux) Linux жүйесіндегі қатынасты басқару қауіпсіздік саясаттарын қолдауды қамтамасыз ететін мүмкіндік механизмі.

SELinux пайдаланушыларға немесе утилиталарға қатынау ережелерін жасай алады, бұл утилиталардың кейбір қатынау мүмкіндіктерін осы мүмкіндіктерді және олардың мінез-құлқын ережелер түрінде анықтау арқылы шектеуге мүмкіндік береді және SELinux пайдаланатын ОЖ осы ережелердің сақталуын бақылайды. Бұл тақырыпта мен CentOS жүйесінде SELinux-ты қалай өшіру немесе қосу керектігін айтамын. Кейбір дистрибутивтерде әдепкі бойынша SELinux қосылған, бұл SELinux қалай жұмыс істейтінін немесе оны конфигурациялауды түсінбесеңіз, кейбір жағымсыз әрекеттерді тудыруы мүмкін.

SELinux өшіру үшін осы мақалада айтылған 4 түрлі әдістің кез келгенін пайдалануға болады.

SELinux қауіпсіздік саясаттарын, соның ішінде Linux ядросында анықталған қол жеткізуді басқаруды қамтамасыз етеді. Жүйедегі әрбір файл мен процесс SELinux пайдаланатын арнайы таңбашалармен белгіленеді. Төменде көрсетілгендей пәрменді пайдалануға және осы таңбашаларды көруге болады:

# ls -Z /т.б./

Емес толық тізімМен келтірдім, бұл сіз үшін басқаша болуы мүмкін.

CentOS жүйесінде SELinux өшірудің 1-ші әдісі. Уақытша.

SELinux қолданбасын уақытша өшіру үшін төменде көрсетілгендей /selinux/enforce өңдеуіңіз керек. Жүйені қайта жүктегеннен кейін бұл опция бұдан былай болмайтынын ескеріңіз.

Сонымен, SELinux серверінде қандай күй бар екенін тексерейік:

# cat /selinux/enforce 1

Немесе сіз пайдалана аласыз:

# /usr/sbin/sestatus SELinux күйі: қосылған SELinuxfs орнату: /selinux Ағымдағы режим: конфигурация файлындағы рұқсат ету режимі: орындау Саясат нұсқасы: 24 Конфигурация файлындағы саясат: мақсатты

Бұл оның қосылғанын білдіреді. Оны өшіру үшін келесі пәрменді пайдаланыңыз:

# echo 0 > /selinux/enforce

Және тағы да тексерейік:

# cat /selinux/enforce 0

Setenforce үшін ықтимал опциялар:

  • 1 (қосу).
  • 0 (өшіру).

SELinux өшіру үшін төменде көрсетілгендей setenforce пәрменін пайдалануға болады. Міне, осы пәрменнің мысалы:

#setenforce 0

Немесе мен басқа пайдалану жағдайын беремін:

# setenforce рұқсат етуші

PS: Тексеру үшін тағы бір керемет пәрмен бар:

# getenforce рұқсат

CentOS жүйесінде SELinux өшірудің 2-ші әдісі. Бір рет және мәңгілікке!

CentOS жүйесінде SELinux күйін тексерейік.

# cat /etc/selinux/config

Мен оны қостым, оны өшіргім келеді, содан кейін ол үшін конфигурацияны ашып, жазу керек:

# vim /etc/selinux/config

табу керек:

SELINUX=қосылған

Келесімен ауыстырылды:

Келесі скриншотта көрсетілгендей:

Осыдан кейін біз операциялық жүйені қайта іске қосуымыз керек:

#қайта жүктеу

3-ші әдіс. Grub жүктеушісінің өзінде SELinux өшіру.

Жүйеде /etc/selinux/config таба алмасаңыз, төменде көрсетілгендей GRUB жүктеушіге параметрді беру арқылы SELinux қызметін өшіруге болады.

# мысық /boot/grub/grub.conf

4-ші әдіс. SELinux - HTTP/Apache жүйесіндегі белгілі бір қызметті ғана өшіру

Егер сіз барлық SELinux-ты өшіргіңіз келмесе, SELinux-ты белгілі бір қызмет үшін де өшіруге болады. Мысалы, HTTP/Apache қызметіне қызмет көрсету үшін SELinux өшіргіңіз келсе, /etc/selinux/targeted/booleans ішіндегі httpd_disable_trans айнымалы мәнін өзгертуіңіз керек.




Жоғарғы