Сертификаттар туура каталогдо окула турган режим жана root ээлиги менен тура алышат, ал эми кызмат баары бир файлды ача албастыгын билдире алат. SELinux системасында бул айкалыш укуктарга эмес, белгилүү бир механизмге көрсөтөт. Белги файл менен кошо жылды, анткени кайра атоо жаңы объект жаратпайт. inode эски жолдо болгон коопсуздук контекстин сактап калды, ал эми жаңы жолдун саясаты өзүнүн контекстин дайындоого мүмкүнчүлүк ала алган жок.

Кайра атоо белгиге чындыгында эмне кылат

Файл өзүнүн SELinux контекстин inode-го тиркелген атрибут дайындары катары алып жүрөт. Бир файлдык системанын ичинде кайра атоо каталог жазуусун өзгөртөт жана башка эч нерсе, бул тез жана атомдук, жана контексттин жылдыруудан кийин сакталышынын себеби ушунда. Эч бир саясат суралбайт, эч бир демейки колдонулбайт жана эч бир эскертүү басылбайт.

Көчүрүү башкача жүрөт. Көчүрмө максаттуу каталогдо жаңы inode жаратат, ал эми саясат контекстти ошол каталогдун түрүнө жараша дайындайт, ошондуктан көчүрүлгөн сертификат адатта туура белги алат, ал эми жылдырылган белгиси туура эмес бойдон калат. Ушул бир айырма билеттин бул түрүндөгү баш аламандыктын көбүн түшүндүрөт.

Файлдык системалардын ортосундагы жылдыруу көчүрүү семантикасына кайтат, ошондуктан бирдей буйрук эки машинада /etc өз томуна жайгашканына жараша башкача жүрүшү мүмкүн. Курал ишенимсиз деп тыянак чыгарбастан мурун муну текшериңиз. Mount таблицасына бир көз чаптыруу кандай жылдыруу жасаганыңызды айтат.

Азыркы белгини күтүлгөн белгиге салыштырып окуңуз

Окуу үчүн гана болгон үч буйрук эч нерсени өзгөртпөстөн суроого жооп берет. Биринчиси файлдын азыр эмнеси бар экенин көрсөтөт, экинчиси саясат так ошол жол үчүн эмнени күтөрүн билдирет, ал эми үчүнчүсү каталогдун астындагы белгиси башкача болгон ар бир файлды тизмелейт.

ls -lZ /etc/openvpn/client/office-ca.crt
matchpathcon /etc/openvpn/client/office-ca.crt
restorecon -Rn -v /etc/openvpn/client

Ишенүүгө боло турган нерсе — кургак жүргүзүү, анткени ал контексти саясаттан четтеген ар бир файлды атайт жана системаны баары бир тийбей калтырат. Эгер сертификат ошол тизмеде көрүнсө, сиз жолдун мааниси менен файлдын билдирүүсүнүн ортосундагы дал келбестикти таптыңыз. Эгер көрүнбөсө, белги саясат каалаган нерсе болуп калган жана сиздин убактыңыз башка жерге таандык.

Андан кийин айырманы чыныгы баш тартуу менен байланыштырыңыз. Дал келбестик туура эмес белгинин далили, кызматтын ошонун айынан ишке ашпаганынын далили эмес, ал эми журналда тиешелүү баш тартуусуз колдонулган оңдоо — кошумча кадамдары бар божомол.

Өзгөчөлүк ойлоп табуунун ордуна салыштырууну калыбына келтириңиз

Стандарттык жай үчүн саясат жолду мурунтан салыштырат, ошондуктан restorecon аны колдонот жана иш бүтөт. Аймакты өзүңүз оңдоп жаткан каталог менен чектеңиз; бүт файлдык системаны кайра белгилөө жай, тоскоол болот жана баштапкы катаны абдан чоң өзгөртүүнүн астына көмөт.

Ыңгайлаштырылган каталог үчүн тартип маанилүү, ал эми аны тескери буруу эч нерсени өзгөртпөстөн ийгилик билдирген буйрук жаратат. Салыштыруу саясатта болушу керек, кайра белгилөө аягында болушу керек, ал эми кургак жүргүзүү экөөнүн алдында болушу керек. Ушул акыркы бөлүктү өткөрүп жиберүү — эч качан туура эмес болбогон жолдун баары бир кайра белгиленишинин жолу.

semanage fcontext -a -t openvpn_etc_t '/etc/openvpn/custom(/.*)?'
restorecon -Rv /etc/openvpn/custom

restorecon салыштырууну колдонот; ал аны ойлоп таба албайт. Эгер эч бир эреже жолду сүрөттөбөсө, калыбына келтире турган эч нерсе жок, ошондуктан туруктуу салыштыруу кайра белгилөөдөн мурун болушу керек. Кайсы конфигурация ошол салыштырууга ээ экенин жазыңыз, анткени болбосо кийинки жылдыруу, пакетти жаңыртуу же кайра белгилөө кемчиликти кайра жаратат жана кийинки адам нөлдөн баштайт.

Эмне үчүн chcon чечим эмес

chcon контекстти түздөн-түз файлга жазат. Ал дароо күчүнө кирет жана жеткиликтүү эң аз бекем вариант, анткени файлдык системаны кайра белгилөө саясатты кайра колдонуп, сурабастан кол менен жасалган өзгөртүүлөрдү таштайт. Файл оңдолгондой көрүнөт, ал эми оңдоонун эч ким жазбаган жарактуулук мөөнөтү бар. Анын ордуна сизге жолду сүрөттөгөн эреже керек, ошентип ал жерге келген ар бир файл автоматтык түрдө ушундай эле мамилени алат.

Андан да жаманы, ал туура эмес сабак берет: негизги салыштыруу дагы эле жок, ошондуктан кемчилик жумалардан кийин ачык триггерсиз жана ал айланып өтүү тууралуу эстутумсуз кайтат. chcon гипотезаны ырастоо үчүн убактылуу эксперимент катары гана колдонуңуз, андан кийин аны кийинки кайра белгилөөгө чыдай турган салыштыруу менен алмаштырыңыз жана алмаштырма чын эле ордунда экенин текшериңиз.

Белги туура болгондо жана кирүү дагы эле ишке ашпаганда

Ата-эне каталогдордон баштаңыз. Өтүү укугу жолдун ар бир компонентинде текшерилет, ошондуктан кызмат кире албаган каталогдун ичиндеги туура белгиленген сертификат дагы эле окулбайт. SELinux да, кадимки укук да ар бир кадамды уруксат бериши керек, ал эми бирөөнү оңдоо экинчисин оңдобойт.

Андан кийин процесстин инсандыгын жана кызматтын өзүнүн кум санын текшериңиз. Чектелген кум саны бар бирдик саясат кубаныч менен уруксат кыла турган файлга кирүүдөн баш тарта алат, ал эми журнал сабынан эки себеп бирдей көрүнөт. Чындыгында кайсы процесс сурап жатканын ырастаңыз, сиз деп ойлогон процессти эмес.

Эсиңизде болсун, dontaudit эрежелери баш тартуу билдирүүлөрүн баса алат, ошондуктан бош аудит журналы далил эмес, алсыз далил. Эгер саясат туура көрүнсө жана кирүү дагы эле ишке ашпаса, кең уруксат модулун жаратпастан мурун изилдеңиз жана симптомду жоготуу үчүн SELinux-ти өчүрбөңүз. Эки кыска жол тең иштеп жаткандай көрүнгөн системаны жана эч ким сүрөттөй албаган коопсуздук позициясын берет. Кыска изилдөө экөөнөн тең жакшы.

Тектеш макалалар