Оневозможување на selinux centos 7. Конфигурирање на SELinux, овозможување, оневозможување. метод за оневозможување на SELinux на CentOS. Еднаш и засекогаш

Што обезбедува механизам за поддршка на безбедносните политики за контрола на пристап. SELinux понекогаш може да ви застане на патот. Затоа треба да оневозможите-деактивирате SELinux . Сепак, пред да го исклучите/деактивирате SELinux, проверете дали имате добра причина зошто го правите ова.

Како привремено да го оневозможите/деактивирате SELinux

Чекор 1:Прво, проверете го тековниот статус на SELinux користејќи ја следнава команда:

# geteforce спроведување #

Користење на различен метод со команда што резултира со истото:

# sestatus Статус на SELinux: овозможено SELinuxfs монтирање: /selinux Тековен режим: спроведување Режим од конфигурациска датотека: спроведување на политика Верзија: 24 Политика од конфигурациска датотека: насочена #

Чекор 2:За привремено оневозможување/деактивирање SELinux , користете го методот подолу:

# ехо 0 > /selinux/спроведување

Друг метод

#постави сила 0

Најверојатно можете да го поставите на дозволен режим. Како резултат на тоа, SELinux ќе издаде предупредувачки пораки наместо да го изврши. За да го сторите истото, користете ја следнава команда:

# setenforce Дозволено

Како прво, опишаниот метод работи додека не се рестартирате. Како резултат на тоа, ќе работи до следното рестартирање. Исто така, ако сакате да го направите ова на трајна основапреку рестартирање, следете ја постапката подолу.

Како трајно да го оневозможите-оневозможите SELinux

За трајно да го оневозможите, сменете ја вредноста на „ SELinux" на " оневозможено"во датотека" /etc/sysconfig/SELinux„како што е прикажано подолу

Конечно повторно проверете со командата подолу:

# статус Статус на SELinux: оневозможен

SELinux (Security-Enhanced Linux - Linux со подобрена безбедност) е имплементација на систем за контрола на принуден пристап кој може да работи паралелно со класичен дискреционен систем за контрола на пристап. Вклучено во стандардниот кернел на Линукс. Исто така, за да функционира SELinux, потребни се модифицирани верзии на некои алатки (ps, ls, итн.), кои обезбедуваат поддршка за нови функции на кернелот и поддршка од датотечниот систем.

Метод 1: Привремено оневозможете го SELinux

За привремено да го исклучите SELinux, можете да ја измените датотеката /selinux/enforce. Ве молиме имајте предвид дека ова е привремено оневозможување и штом системот ќе се рестартира, SELinux ќе работи повторно.

# мачка /selinux/спроведување 1 # ехо 0 > /selinux/спроведување# cat /selinux/enforce 0 Можете исто така да ја користите командата setenforce, како што е прикажано во примерот подолу. Можни опции за командата setenforce се: Enforcing, Permissive, 1 (овозможи) или 0 (оневозможи).
#постави сила 0

Метод 2: Трајно оневозможете го SELinux

За трајно оневозможување на SELinux, уредете ја датотеката /etc/selinux/config и поставете SELINUX=оневозможено како што е прикажано подолу. После ова, рестартирајте го серверот.

# мачка /etc/selinux/config SELINUX=оневозможен SELINUXTYPE=таргетиран SETLOCALDEFS=0

Метод 3: Оневозможување на SELinux во Grub Bootloader

Третиот метод го користи подигачот на GRUB за да го оневозможи SELinux. Додадете до крајот на линијата selinux=0

# мачка /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz наслов на скриеното мени Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (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) root (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, туку само за одредени услуги, ја имате оваа опција. На пример, да го оневозможиме SELinux за HTTP/Apache со менување на вредноста на променливата 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 е кратенка за англиски јазик. зборовите Security-Enhanced Linux што значи Linux со подобрена безбедност. Со други зборови, ова е имплементација на принуден систем за контрола на пристап, кој е способен да функционира паралелно со класичниот систем за селективна контрола на пристап. Разликата е во тоа што во SELinux, преку одредени политики, правата за пристап ги одредува самиот систем, за возврат, системот за селективна контрола на пристап го дели процесниот пристап до ресурси врз основа на корисничките права, за едноставно разбирање тоа се правата rwx на три нивоа - сопственик , група на сопственици и други корисници.
По мал опис, да се обидеме да погледнеме неколку команди и опции на SELinux. Нашите примери ќе бидат демонстрирани во операционата сала Линукс систем 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= може да земе една од овие три вредности: # enforcing - безбедносната политика SELinux е наметната. # дозволиво - SELinux печати предупредувања наместо да спроведува. # оневозможено - Не е вчитана политика на SELinux. SELINUX=оневозможено # SELINUXTYPE= може да земе една од овие две вредности: # насочени - Целните процеси се заштитени, # mls - Безбедносна заштита на повеќе нивоа. SELINUXTYPE=таргетирано

Опцијата SELINUX=disabled значи дека SELinux е оневозможен. Пред да започнете со SELinux, треба да извршите некои манипулации.
1. Проверете ја инсталацијата на SELinux пакетите

Вртежи во минута -qa | grep selinux rpm -q policycoreutils rpm -qa | grep settroubleshoot

Исто така, проверете дали се инсталирани следните пакети: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, Policycoreutils, setroubleshoot, setroubleshoot-сервер, setroubleshoot-приклучоци. Пакети Policycoreutils-gui, setroubleshoot, selinux-policy-devel,И mcstransизборен.
Пакетите што недостасуваат може да се инсталираат со помош на командата (како root)

Yum инсталирај пакет-име

2. Секоја датотека на датотечниот систем мора да биде означена со контекст SELinux пред да се стартува. До овој момент, на ограничените домени може да им биде забранет пристапот, што може да резултира со неправилно вчитување на оперативниот систем. Ситуацијата може да се коригира со поставување на опцијата SELINUX=permissive во конфигурациската датотека /etc/selinux/config.

3. Означувањето на датотеката ќе се појави при следното рестартирање на системот. Етикетите за сите датотеки се поставени во контекстот SELinux за време на процесот. Во последната линија, секој знак * претставува 1000 означени датотеки. Времетраењето на процесот зависи од бројот на датотеки во системот, како и од брзината на дисковите.

*** Предупредување -- Потребно е повторно означување на политиката за SELinux. *** Повторното обележување може да потрае многу долго, во зависност од големината на системот на датотеката *** и брзината на хард дисковите. ****

4. Во случај кога политиката SELinux не е насилно доделена, а работата се случува во режим на проширување, тогаш забраните се запишуваат во дневникот како дејства што би биле забранети во принуден режим. Осигурете се дека SELinux не забранува активности за време на последното подигање на системот, за да го направите ова, извршете ја командата

Grep „SELinux спречува“ /var/log/messages

Излезот треба да биде празен, што значи дека сè е во ред и SELinux не го забранува дејството.
5. Откако ќе се уверите дека нема пораки за забрани во дневниците, поставете го параметарот SELINUX при спроведувањето (датотека /etc/selinux/config):

# Оваа датотека ја контролира состојбата на SELinux на системот. # SELINUX= може да земе една од овие три вредности: # enforcing - безбедносната политика SELinux е наметната. # дозволиво - SELinux печати предупредувања наместо да спроведува. # оневозможено - Не е вчитана политика на SELinux. SELINUX=спроведување # SELINUXTYPE= може да земе една од овие две вредности: # насочени - Целните процеси се заштитени, # mls - Безбедносна заштита на повеќе нивоа. SELINUXTYPE=таргетирано

6. По ова операционен системтреба да се рестартира. По рестартирањето, треба да ја проверите Вредноста за враќање со командата getenforce.

$ /usr/sbin/getenforce Спроведување

7. За да ги видите мапирањата помеѓу SELinux и системските корисници, извршете ја командата

/usr/sbin/semanage најавување –l

Излезот на командата треба да биде вака:

Најава за SELinux Опсег на корисник MLS/MCS __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Постојат некои карактеристики кои исто така треба да се земат предвид. Кога SELinux е оневозможен, датотеките создадени од корисникот не се означени, и како резултат на тоа, може да се појават проблеми кога ќе се стават во состојба на извршување. Датотеките ќе бидат означени со промена на опцијата од оневозможено во режим на дозволување/присилно, со што ќе се спречи појавата на неозначени датотеки.

Веќе пишувавме за SELinux на Habré, но не се објавени многу детални прирачници за овој систем. Денес објавуваме токму таков детален прирачник за 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 има три главни начини на работа, со стандардно поставен режим на спроведување. Ова е прилично строг режим, и доколку е потребно, може да се смени на нешто попогодно за крајниот корисник.

Спроведување: Стандарден режим. Кога ќе се избере овој режим, сите дејства што некако ја прекршуваат тековната безбедносна политика ќе бидат блокирани, а обидот за прекршување ќе се запише во дневникот.

Дозволено: Кога го користите овој режим, информациите за сите дејства што ја прекршуваат тековната безбедносна политика ќе се запишат во дневникот, но самите дејства нема да бидат блокирани.

Оневозможено: Целосно оневозможување на системот за контрола на принуден пристап.

Можете да го видите тековниот режим и другите поставки на SELinux (и, доколку е потребно, да го промените) со помош на специјална алатка GUI достапна во менито Администрација (system-config-selinux). Ако сте навикнати да работите во конзолата, можете да го видите моменталниот статус со командата sestatus.

# sestatus Статус на SELinux: овозможено SELinuxfs монтирање: /selinux Тековен режим: спроведување Режим од конфигурациска датотека: спроведување на политика верзија: 21 Политика од конфигурациска датотека: насочена

Можете исто така да го дознаете статусот на SELinux користејќи ја командата getenforce.
Командата „setenforce“ ви овозможува брзо да се префрлате помеѓу режимите на Enforcing и Permissive, промените стапуваат на сила без рестартирање. Но, ако го овозможите или оневозможите SELinux, потребно е рестартирање бидејќи безбедносните ознаки мора повторно да се инсталираат на датотечниот систем.
За да го изберете стандардниот режим што ќе се применува секогаш кога системот ќе се подигне, поставете ја вредноста на линијата „SELINUX=" во датотеката /etc/selinux/config, назначувајќи еден од режимите - „спроведување“, „дозволен“ или „ оневозможено“. На пример: „SELINUX=попустлив“.

3. SELinux политики

Како што беше наведено претходно, SELinux стандардно работи во режим на извршување, кога сите дејства освен дозволените се автоматски блокирани, секоја програма, корисник или услуга ги има само оние привилегии што им се потребни за да функционираат, но ништо повеќе. Ова е прилично тешка политика, која ги има двете предности - највисокото ниво безбедност на информации, и недостатоци - конфигурирањето на системот во овој режим е поврзано со големи трошоци за работна сила за системските администратори, покрај тоа, постои висок ризик дека корисниците ќе наидат на ограничувања за пристап доколку сакаат да го користат системот на кој било нетривијален начин. Овој пристап е прифатлив во секторот Enterprise, но е неприфатлив за компјутерите на крајните корисници. Многу администратори едноставно го оневозможуваат SELinux на нивните работни станици за да избегнат вакви проблеми.

За да се избегне ова, за клучните апликациии услуги, како што се, на пример, httpd, named, dhcpd, mysqld, дефинирани се однапред конфигурирани целни политики кои нема да дозволат напаѓачот да добие пристап до важни податоци. Оние апликации за кои политиката не е дефинирана работат во доменот unconfined_t и не се заштитени од SELinux. Така, правилно избраните целни политики ви овозможуваат да постигнете прифатливо ниво на безбедност без да создавате непотребни проблеми за корисникот.

4. Контрола на пристап во SELinux

SELinux ги обезбедува следниве модели за контрола на пристап:

Type Enforcement (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:typ се прикажуваат додека полето mls е скриено. Можеме да ја видиме и целната политика, во овој случај httpd_sys_content_t.

Сега да го погледнеме безбедносниот контекст на SELinux за процесот „httpd“ (веб-сервер на Apache):

$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 може лесно да ја чита датотеката /var/www/html/index.html, која е од типот httpd_sys_content_t. Во исто време, бидејќи Apache работи на доменот httpd_t и ги нема пополнети полињата userid:username, не може да пристапи до датотеката home/username/myfile.txt, иако оваа датотека може да се чита со процеси кои немаат дефинирана цел.политика. На овој начин, ако веб-серверот на Apache е компромитиран, напаѓачот нема да може да пристапи до датотеки или да изврши процеси што не се во доменот httpd_t.

5. Решавање проблеми со SELinux проблеми

Порано или подоцна ќе се појави ситуација кога ќе се соочите со ситуација кога SELinux ќе ви забрани пристап до нешто. Постојат неколку главни причини за одбивање пристап:

Неправилно означена датотека.
- Процесот се одвива во погрешен контекст
- Грешка во политиката. Процесот бара пристап до датотека што не била земена предвид при креирањето на политиката.
- Обид за инвазија.

Првите три причини за одбивање пристап се решаваат прилично лесно, додека при обид за упад се огласува аларм и се испраќа соодветно известување до корисникот.
За да се справите со каков било проблем, само погледнете во дневникот на SELinux. Стандардно, тој е запишан од ревидираниот процес во датотеката /var/log/audit/audit.log. Ако овој процес не работи, тогаш SELinux се најавува во датотеката /var/log/messages, во тој случај сите пораки на системот за контрола на пристап се означени со копчето AVC, што ви овозможува брзо да ги филтрирате потребните линии, на пример. користејќи ја командата grep.
ВО најновите верзиидистрибуции (почнувајќи од CentOS 5), алатка со графички интерфејскорисник, кој ви овозможува да го прикажете дневникот на SELinux во пригодна и прифатлива форма. Можете да го повикате од конзолата со пишување sealert -b. Услужната алатка е дел од пакетот setroubleshoot. Ако серверот 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 # допир /html/index.html # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x root root 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 контекстот на /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-- root root user_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:httpd_sys_content_t html
Не е неопходно рачно да се обработуваат секоја датотека и секој директориум; можете едноставно да ја користите опцијата за препирање на рекурзивниот директориум -R:

# chcon -Rv --type=httpd_sys_content_t /html

Ваквите промени во безбедносниот контекст ќе опстојуваат помеѓу рестартирањето, меѓутоа, ако се сменат етикетите на датотечниот систем, промените ќе бидат изгубени. За време на одржувањето и работењето, ова не е невообичаено. Точното решение во таква ситуација би било (по тестирањето, се разбира) да се создаде дополнително правило, а потоа да се комбинира со локални локални правила. Така, ќе има поголем приоритет од основните правила.

За да може SELinux да работи правилно дури и по промената на етикетите на датотечниот систем, можеме да ги користиме двете алатки за управување со SELinux со GUI интерфејс и алатката semanage конзола:

Управувајте со fcontext -a -t httpd_sys_content_t "/html(/.*)?"

Во примерот погоре, го доделивме контекстот httpd_sys_content_t на сите датотеки лоцирани во директориумот /html.

5.2 Враќање на безбедносниот контекст на SELinux.

Командата „restorecon“ ви овозможува да го промените безбедносниот контекст на оној што е стандардно доделен.
Повторно го користиме веб-серверот 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 # touch /.autorelabel # рестартирање

5.4 Обезбедување пристап до пристаништата.

Честопати сакаме услугите како Apache да можат да слушаат на нестандардни порти и да прифаќаат дојдовни врски на нив. Основните политики на SELinux дозволуваат пристап само до предефинирани порти кои се хард-кодирани за одредена услуга. Да речеме дека сакаме Apache да слуша на портата 81. Во овој случај, треба да додадеме правило користејќи ја командата semanage:

# semanage port -a -t http_port_t -p tcp 81

Комплетната листа на порти до кои SELinux обезбедува пристап може да се погледне на следниов начин:

# semanage port -l

Во следниот, втор дел од прирачникот, ќе ја прикажеме можноста за флексибилна конфигурација на системските политики.

Безбедносно-подобрениот Linux (SELinux) е механизам на функции во Linux кој обезбедува поддршка за безбедносните политики за контрола на пристап.

SELinux може да креира правила за пристап до корисници или комунални услуги, што овозможува да се ограничат некои можности за пристап на комуналните услуги со дефинирање на овие способности и нивното однесување во форма на правила, а оперативниот систем што користи SELinux ќе ја следи усогласеноста со овие правила. Во оваа тема ќе ви кажам како да го оневозможите или овозможите SELinux на CentOS. Некои дистрибуции имаат стандардно овозможено SELinux, што може да предизвика несакано однесување од негова страна ако не разбирате како функционира SELinux или како да го конфигурирате.

За да го исклучите SELinux, можете да користите кој било од 4-те различни методи споменати во овој напис.

SELinux ќе спроведува безбедносни политики, вклучувајќи задолжителни контроли за пристап што се дефинирани во кернелот на Linux. Секоја датотека и процес на системот ќе бидат означени со специфични кратенки кои ќе ги користи SELinux. Можете да ја користите командата и да ги видите овие кратенки како што е прикажано подолу:

# ls -Z /etc/

не е целосна листашто го наведов, може да ти е поинаку.

Првиот метод за оневозможување на SELinux на CentOS. Привремено.

За да го оневозможите SELinux привремено, треба да го уредите /selinux/enforce како што е прикажано подолу. Имајте предвид дека оваа опција повеќе нема да биде присутна по рестартирање на системот.

И така, ајде да провериме каква состојба има SELinux на серверот:

# мачка /selinux/спроведување 1

Или, можете да користите:

# /usr/sbin/sestatus Статус на SELinux: овозможено SELinuxfs монтирање: /selinux Тековен режим: дозволен Режим од конфигурациската датотека: спроведување на политика верзија: 24 Политика од конфигурациска датотека: насочена

Ова значи дека е вклучено. За да го исклучите, користете ја следнава команда:

# ехо 0 > /selinux/спроведување

И да провериме повторно:

# мачка /selinux/спроведување 0

Можни опции за засилување се:

  • 1 (овозможи).
  • 0 (оневозможи).

Можете исто така да ја користите командата setenforce како што е прикажано подолу за да го оневозможите SELinux. Еве пример за оваа команда:

#постави сила 0

Или, ќе дадам друг случај за употреба:

# setenforce Дозволено

PS: За да проверите, има уште една одлична команда:

# getenforce Дозволено

Вториот метод за оневозможување на SELinux на CentOS. Еднаш и засекогаш!

Ајде да го провериме статусот на SELinux на CentOS.

# мачка /etc/selinux/config

Го имам вклучено, сакам да го исклучам, па за да го направите ова треба да ја отворите конфигурацијата и да напишете:

# vim /etc/selinux/config

Треба да се најде:

SELINUX=овозможено

Заменет со:

Како што е прикажано на следната слика од екранот:

После тоа, треба да го рестартираме нашиот оперативен систем:

# рестартирање

3-ти метод. Оневозможување на SELinux во самиот подигнувач на Grub.

Ако не можете да најдете /etc/selinux/config на вашиот систем, можете да го оневозможите SELinux со предавање на параметар на подигачот на GRUB како што е прикажано подолу.

# мачка /boot/grub/grub.conf

4-ти метод. Оневозможување само одредена услуга во SELinux - HTTP/Apache

Ако не сте заинтересирани да го оневозможите целиот SELinux, можете исто така да го оневозможите SELinux само за одредена услуга. На пример, сакате да го оневозможите SELinux за опслужување HTTP/Apache, тогаш треба да ја смените променливата httpd_disable_trans во /etc/selinux/targeted/booleans.




Врв