VPN сертификатын жылжыту оның SELinux белгісін неге бұзады
Қайта атау inode-ты және оның контекстін сақтайды, сондықтан режим мінсіз болуы мүмкін, ал қызмет бәрібір бас тартады. Нақтыны күтілетінмен салыстырып, содан кейін салыстыруды қалпына келтіріңіз.
Сертификаттар дұрыс каталогта оқылатын режиммен және 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-ті өшірмеңіз. Екі қысқа жол да жұмыс істеп тұрғандай көрінетін жүйе және ешкім сипаттай алмайтын қауіпсіздік ұстанымын береді. Қысқа зерттеу екеуінен де жақсы.