SELinux

SELinux за начинаещи, използващи CentOS

SELinux за начинаещи, използващи CentOS
Разработено от NSA за предотвратяване на злонамерен достъп и прониквания, Linux или SELinux с подобрена сигурност е усъвършенствана функция за контрол на достъпа, която се доставя с повечето модерни дистрибуции на Linux. SELinux се определя като система за задължителен контрол на достъпа (MAC), разработена като заместител на системата за дискреционен контрол на достъпа (DAC).

SELinux може да изглежда плашещ и много труден за внедряване в повечето съвременни системи. Конфигурирането на SELinux обаче има огромни предимства както при налагане на сигурността, така и при отстраняване на неизправности.

Този урок ще обсъди различни концепции, внедрени от SELinux и ще изследва различни практически методи за внедряване на SELinux.

ЗАБЕЛЕЖКА: Преди да започнем, добре е да използваме командите в този урок като root потребител или потребител в групата sudoers.

Инсталирайте SELinux пакети

Нека инсталираме различни пакети на SELinux, които от своя страна ще помогнат за работата с политиките на SELinux.

Преди да пристъпим към инсталирането на пакетите SELinux, добре е да проверим кои са инсталирани в текущата система.

В повечето инсталации на REHL дистрибуции някои пакети са инсталирани по подразбиране. Тези пакети включват:

  1. setools - този пакет се използва за наблюдение на регистрационни файлове, правила за заявки и управление на контекстен файл.
  2. policycoreutils-python - предоставя основни помощни програми на python за управление на SELinux
  3. policycoreutils - този пакет също предоставя помощни програми за управление на SELinux.
  4. mcstrans - mcstrans предоставя демон за превод на SELinux, който превежда различни нива в лесни формати, които могат лесно да се разберат.
  5. setools-console - подобно на setools.
  6. Selinux-policy - предоставя справка за конфигуриране на SELinux политика
  7. Селинукс-насочена към политика - подобно на SELinux-политика
  8. Libselinux-utils - помощни програми на SELinux libselinux, които помагат за управлението на SELinux
  9. Setroubleshoot-server - инструменти за отстраняване на неизправности в SELinux

За да проверите кои пакети вече са инсталирани на вашата система, можете да използвате командата rpm -qa и да преведете резултата в grep за SELinux като:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-target-3.14.3-54.el8_3.2.ноарх
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.ноарх
libselinux-2.9-4.el8_3.x86_64

Това трябва да ви даде резултати от всички пакети, инсталирани за поддръжка на SELinux

Ако не всички пакети SELinux са инсталирани на вашата система, използвайте yum, за да ги инсталирате, както е показано в командата по-долу:

yum инсталирайте policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-target libselinux-utils setroubleshoot-server setools setools-console mcstrans

Режими и състояния на SELinux

Нека сега започнем да играем със SELinux, по-специално режимите на SELinux.

Режими на SELinux

Когато е активиран, SELinux може да бъде три възможни режима:

Налагащ режим

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

Permissive Mode

Разрешителният режим действа като частично активирано състояние на SELinux. В този режим няма отказан достъп, тъй като SELinux не прилага своите политики в този режим. Разрешителният режим обаче води дневник на опитите за нарушаване на правила. Този режим е много ефективен за тестване, преди да го активирате изцяло, тъй като потребителите и компонентите все още могат да взаимодействат със системата, но все още събират регистрационни файлове. Това ви позволява да прецизирате системата си по начини, които сметнете за добре.

Деактивиран режим

Деактивираният режим може да се разглежда и като деактивирано състояние, в което SELinux е деактивиран и не предлага никаква сигурност.

SELinux държави

След като SELinux е инсталиран на система. Може да има двоични състояния: разрешено и деактивирано. За да видите състоянието на SELinux, използвайте командата:

getenforce
хора с увреждания

Горният изход показва, че SELinux в момента е деактивиран.

Можете също да използвате командата sestatus, както е показано по-долу:

сестатус
Състояние на SELinux: деактивирано

Активиране и деактивиране на SELinux

Състоянията и конфигурацията на SELinux се обработват от конфигурационния файл, намиращ се в / etc / selinux / config. Можете да използвате командата cat, за да видите нейното съдържание.

cat / etc / selinux / config
# Този файл контролира състоянието на SELinux в системата.
# SELINUX = може да приеме една от тези три стойности:
#eforcing - Налага се политика за сигурност на SELinux.
#permissive - SELinux отпечатва предупреждения, вместо да налага.
#disabled - Не е заредена политика на SELinux.
SELINUX = налагане
# SELINUXTYPE = може да приеме една от тези три стойности:
# целенасочени - целенасочените процеси са защитени,
# минимум - Модификация на целенасочена политика. Защитени са само избрани процеси.
# mls - Многостепенна защита на защитата.
SELINUXTYPE = насочен

От горния изход имаме две активирани основни директиви. Директивата SELINUX посочва режима, в който е конфигуриран SELinux. Директивата SELINUXTYPE определя набора от политики на SELinux. По подразбиране SELinux използва целенасочена политика, която ви позволява да персонализирате разрешенията за контрол на достъпа. Другата политика е многостепенна сигурност или MLS.

Може да намерите минимална политика в някои версии.

cd / etc / selinux /
[ls -l
общо 4
-rw-r - r-- 1 корен корен 548 16 февруари 22:40 конфиг
drwxr-xr-x 1 корен на корен 4096 16 февруари 22:43 mls
-rw-r - r-- 1 корен на корен 2425 юли 21 2020 семанадж.конф
drwxr-xr-x 1 корен на корен 4096 16 февруари 22:40 целенасочено

Нека сега видим как да активираме SELinux в системата. Препоръчваме първо да зададете режим SELINUX на разрешителен и неприложен.

nano / etc / selinux / config

Сега редактирайте директивата SELINUX като:

SELINUX = разрешително

След като запазите файла, издайте рестартиране на системата.

рестартирайте

ЗАБЕЛЕЖКА: Силно препоръчваме да настроите директивата SELINUX на разрешителна, преди да приложите SELinux.

След като рестартирате системата, проверете за регистрационни файлове, докладвани от SELinux в / var / log / messages.

След това се уверете, че нямате грешки и наложете SELinux, като зададете директивата за налагане в / etc / selinux / config

И накрая, можете да видите състоянието на SELinux, като използвате командата sestatus:

Състояние на SELinux: активирано
SELinuxfs монтиране: / sys / fs / selinux
Основна директория на SELinux: / etc / selinux
Име на заредена политика: насочена
Текущ режим: налагане
Режим от конфигурационен файл: грешка (успех)
Политика MLS статус: активиран
Политика deny_unknown status: разрешено
Проверка на защитата на паметта: действителна (сигурна)
Версия на политиката за максимално ядро: 31

Можете също да използвате командата setenforce, за да превключвате между различни режими на SELinux. Например, за да зададете режима на разрешителен, използвайте командата:

сетенфорс разрешителен

Този режим е временен и ще бъде възстановен до такъв в конфигурационния файл след рестартиране.

sestatus SELinux статус: активиран
SELinuxfs монтиране: / sys / fs / selinux
Основна директория на SELinux: / etc / selinux
Име на заредена политика: насочена
Текущ режим: разрешителен
Режим от конфигурационния файл: налагане
Политика MLS статус: активиран
Политика deny_unknown status: разрешено
Проверка на защитата на паметта: действителна (сигурна)
Версия на политиката за максимално ядро: 31

Политика и контекст на SELinux

За да избегнем объркване за начинаещите в SELinux, няма да се впуснем дълбоко в това как се прилагат правилата на SELinux, а просто да го докоснем, за да ви дадем представа.

SELinux работи чрез прилагане на политики за сигурност. Политиката на SELinux се отнася до правило, което се използва за дефиниране на права за достъп за всеки обект в системата. Обектите се отнасят до потребители, процеси, файлове и роли.

Всеки контекст е дефиниран под формата на потребител: роля: тип: ниво.

Например създайте директория във вашата домашна директория и прегледайте нейния контекст за сигурност на SELinux, както е показано в командите по-долу:

mkdir ~ / linuxhint_dir
ls -Z ~ / | grep linuxhint

Това ще покаже изхода, както е показано по-долу:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Можете също да намерите други директории с контекст на защитата като:

system: _u: object_r: user_home_t: s0

Може да осъзнаете, че изходът по-горе следва синтаксиса на потребител: роля: тип: ниво.

Заключение

Това беше урок за начинаещи за SELinux с помощта на CentOS 8. Въпреки че урокът е предназначен за начинаещи, това е повече от достатъчно, за да стартирате краката си в SELinux и да премахнете плашещата природа на SELinux.

Благодаря ви за четенето.

Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...