Що може піти не так, якщо вимкнути selinux [закрито]


9

Ми успадкували купу використовуваних серверів від іншої команди. Деякі з них увімкнули SELinux, а деякі ні. Через SELinux у нас виникають проблеми з налаштуванням пароля ssh, нашого веб-сервера тощо. На цьому сайті stackexchange ми знайшли роботу , яку потрібно запустити:

restorecon -R -v ~/.ssh

Однак, оскільки нам не потрібен запуск SELinux для того, що ми робимо, може бути простіше вимкнути його, ніж нам пам’ятати, щоб усі запускали вищезгаданий cmd у будь-якому режимі, який потребує дозволів.

Чи можемо ми відключити SELinux без будь-яких наслідків у дорозі чи краще просто переглянути зображення на сервері? Одне зауважити; наша ІТ-група дійсно зайнята, тому повторне зображення сервера не входить до їхнього списку, якщо це абсолютно не потрібно (потрібен дуже хороший діловий випадок) ... або хтось підкуповує свого боса пляшкою скотчу чи віскі.

ОНОВЛЕННЯ: Дякую за всі пропозиції та поради. Усі ці сервери будуть використовуватися як внутрішні сервери розробників. Зовнішній доступ до цих машин не буде, тому безпека нас не хвилює. Наші поточні сервери, якими ми користуємось усі (наскільки мені відомо), не ввімкнено SELinux. Деякі з тих, кого тільки що придбав мене менеджер, і ті, кого ми дивимось на відключення, тому все в нашому кластері є єдиним.


1
Я відповів на подібне запитання на Android.se: Наскільки небезпечний той факт, що SELinux перебуває в режимі "вседозволений"? Що я повинен бути обережним? . Основна відмінність режиму "Дозволений" від відключення SELinux полягає в тому, що ви більше не отримаєте повідомлення журналу AVC і що SELinux не буде постійно оновлювати файли з мітками, тому вам потрібно буде відновити свої файли, перш ніж ввімкнути його знову.
WhiteWinterWolf

"Що може піти не так?"
scai

3
@scai Це насправді гарне питання. Як вказує Сато Кацура , SELinux важко ефективно використовувати. Помилкове почуття безпеки шкодить безпеці.
Римоїд

Відповіді:


14

SELinux - це функція безпеки операційної системи. Він покликаний захистити деякі частини сервера від інших частин.

Наприклад, якщо ви запускаєте веб-сервер і маєте якийсь "вразливий" код, який дозволяє зловмиснику виконувати довільні команди, то SELinux може допомогти пом'якшити це, запобігаючи доступу вашого веб-сервера до файлів, які він заборонено бачити.

Тепер ви можете відключити SELinux, і він нічого не повинен зламати. Сервер буде продовжувати працювати як завжди.

Але ви відключите одну з функцій безпеки.


10
SELinux працює добре лише при правильному налаштуванні. Однак SELinux настільки складний, що ніхто не має часу та / або знань, щоб правильно їх налаштувати, і, таким чином, він стає або відключеним, або як вічний біль у тилі для адміністратора. Але ви, хлопці, продовжуєте вкладати в це віру як функцію безпеки .
Satō Katsura

3
Я погоджуюся, що selinux - це ПДФА для адміністрування, але все-таки справедливо і цілком точно називати його функцією безпеки. для тих, хто хоче або потребує вкладення часу на навчання та управління ним (не я), це неоціненно - наприклад, систематики для великого гучного веб-сайту, що також є привабливою ціллю для дітей-скриптів у всьому світі.
cas

2
@SatoKatsura Просто тому, що важко налаштувати або важко зрозуміти, це не виправдовує відключення механізму безпеки. За умови, що цей механізм безпеки насправді потрібен, що не завжди легко вирішити.
scai

@scai Я не сказав, що його слід (або не слід) відключати. Я говорю, що основна модель SELinux є недоліком. Деякі люди стверджують, що всі механізми безпеки, які можна відключити, є помилковими.
Satō Katsura

@SatoKatsura так, тому мати паролі абсолютно безглуздо, оскільки їх можна відключити (наприклад, за допомогою пам’яті чи nss або просто пустим паролем). До речі, я ніколи не стверджував, що ви сказали, що selinux слід відключити. я просто спростував ваше твердження, що це не реальна функція безпеки.
cas

8

SELinux має різні погляди. У багатьох випадках деякі програми не грають добре з SELinux, тому це рішення є суперечливим (Oracle є одним із прикладів).
Як правило, SELinux - це захисний механізм, який може поставити ще одну перешкоду на шляху поганого хлопця, який хоче підривати вашу систему.

У своїх попередніх ролях системного адміністратора великих компаній ... я взагалі відключив SELinux. У мене не було часу відстежувати всі помилки SELinux у всіх системах, якими користуються користувачі, розробники та менеджери.

Перш ніж вимкнути речі, ви можете почати, відновивши файли в системі назад до того, якими вони повинні бути. Найпростіший знайдений нами спосіб - це введення команди:

 # /sbin/fixfiles onboot

АБО

 # touch /.autorelabel

Потім перезавантажте систему і зачекайте, оскільки система займе приблизно стільки ж часу, щоб перевірити та скинути помилкові мітки SELinux в системі. Після цього вам може бути в порядку, оскільки він виправляє та виправляє невідповідні мітки SELinux, які, можливо, були змінені до вашої спроби адміністрації сервера.

Однак, якщо цього не відбудеться, системі не завдасть шкоди, якщо НЕ матиме SELinux у режимі примусового виконання. Це просто додатковий шар захисту.


3
спокій, а не звук. Але абсолютно правильно; не всі системи потребують selinux.
фірфокс

+1 за пораду спробувати глобально відновити файли, перш ніж вимкнути SELinux як резервний. SELinux призначений для запобігання несподіваної поведінки програмного забезпечення та користувачів. У системах, де немає чітко визначеної очікуваної поведінки, SELinux може дійсно завдати більше шкоди, ніж користі (політики, що надаються ОС, намагаються бути максимально загальними, але іноді цього недостатньо).
WhiteWinterWolf

Дякую! /sbin/fixfiles onbootпрацював на мені на CentOS, не так touch /.autorelabel. Показ sealert -a /var/log/audit/audit.logпоказує 0 сповіщень зараз. @mdpc Яка різниця між цими двома командами?
Джозеф К.

5

Простіше кажучи, відключення механізмів обов'язкового контролю доступу (MAC), таких як SELinux , не є хорошою ідеєю і може поставити вас у несприятливий стан безпеки, якщо поганий хлопець успішно обходить контрольований доступ до імені, реалізований за допомогою дискреційного контролю доступу (DAC).

Якби це я, я би робив щось подібне

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

щоб бути впевненим у тому, що мітка типу призначається рекурсивно від~/.ssh


1
Це стилізований "SELinux". Linux не є абревіатурою, а частина "SE" - це ініціалізм.
Римоїд

@Rhymoid: Це справді хороша примітка. Насправді те, що я написав, було випадковим.
sjsam

2

Взагалі кажучи, ви не повинні відключати SELinux. Є інструменти, які можуть допомогти вам зрозуміти, що пішло не так. Моє улюблене - використання прикладів сирени:

sealert -a /var/log/audit/audit.log

OFC ви завжди можете встановити SELinux в дозвольному режимі для налагодження, але утримання SELinux відключеним або дозвільним викладається як серйозний недолік безпеки Red Hat.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.