SELinux

SELinux dla początkujących korzystających z CentOS

SELinux dla początkujących korzystających z CentOS
Opracowany przez NSA w celu zapobiegania złośliwemu dostępowi i włamaniom, Security-Enhanced Linux lub SELinux to zaawansowana funkcja kontroli dostępu, która jest dostarczana z większością nowoczesnych dystrybucji Linuksa. SELinux jest zdefiniowany jako system obowiązkowej kontroli dostępu (MAC) opracowany jako zamiennik systemu dyskretnej kontroli dostępu (DAC).

SELinux może wydawać się zniechęcający i bardzo trudny do wdrożenia w większości nowoczesnych systemów. Jednak konfiguracja SELinux ma ogromne korzyści zarówno w egzekwowaniu bezpieczeństwa, jak i rozwiązywaniu problemów.

Ten samouczek omówi różne koncepcje implementowane przez SELinux i pozna różne praktyczne metody implementacji SELinux.

UWAGA: Zanim zaczniemy, dobrze jest użyć poleceń z tego samouczka jako użytkownik root lub użytkownik w grupie sudoers.

Zainstaluj pakiety SELinux

Zainstalujmy różne pakiety SELinux, które z kolei pomogą w pracy z politykami SELinux.

Zanim przystąpimy do instalacji pakietów SELinux, dobrze jest sprawdzić, które są zainstalowane w obecnym systemie.

W większości instalacji dystrybucji REHL niektóre pakiety są instalowane domyślnie. Pakiety te obejmują:

  1. setools - ten pakiet służy do monitorowania logów, polityki zapytań i zarządzania plikami kontekstowymi.
  2. policycoreutils-python - dostarcza podstawowe narzędzia Pythona do zarządzania SELinux
  3. policycoreutils - ten pakiet zawiera również narzędzia do zarządzania SELinux.
  4. mcstrans - mcstrans dostarcza demona tłumaczenia SELinux, który tłumaczy różne poziomy na łatwe i zrozumiałe formaty.
  5. setools-console - podobne do setools.
  6. Selinux-policy - zapewnia odniesienie do konfiguracji polityki SELinux
  7. Selinux-policy-targeted - podobny do SELinux-policy
  8. Libselinux-utils - narzędzia libselinux SELinux, które pomagają zarządzać SELinux
  9. Setroubleshoot-server - narzędzia do rozwiązywania problemów z SELinux

Aby sprawdzić, które pakiety są już zainstalowane w twoim systemie, możesz użyć polecenia rpm -qa i przesłać wynik do grep dla SELinux jako:

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-targeted-3.14.3-54.el8_3.2.noarcha
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarcha
libselinux-2.9-4.el8_3.x86_64

Powinno to dać wynik wszystkich pakietów zainstalowanych do obsługi SELinux

Jeśli nie wszystkie pakiety SELinux są zainstalowane w twoim systemie, użyj yum, aby je zainstalować, jak pokazano w poleceniu poniżej:

mniam zainstaluj policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Tryby i stany SELinux

Zacznijmy teraz bawić się SELinux, a konkretnie trybami SELinux.

Tryby SELinux

Po włączeniu SELinux może działać w trzech możliwych trybach:

Tryb wymuszania

Jeśli tryb SELinux ma wymusić, zapewni to, że żaden nieautoryzowany dostęp do systemu przez żadnego użytkownika lub procesy nie zostanie odmówiony. Tryb wymuszania przechowuje również dzienniki wszelkich prób nieautoryzowanego dostępu.

Tryb zezwalający

Tryb zezwalający działa jak częściowo włączony stan SELinux. W tym trybie nie ma odmowy dostępu, ponieważ SELinux nie wymusza w tym trybie swoich polityk. Jednak tryb zezwalający prowadzi rejestr wszelkich prób naruszenia zasad. Ten tryb jest bardzo wydajny podczas testowania przed jego pełnym włączeniem, ponieważ użytkownicy i komponenty mogą nadal wchodzić w interakcje z systemem, ale nadal zbierać logi. Pozwala to na dostrojenie systemu w sposób, który uważasz za odpowiedni.

Tryb wyłączony

Tryb wyłączenia może być również postrzegany jako stan wyłączenia, w którym SELinux jest wyłączony i nie oferuje żadnych zabezpieczeń.

Stany SELinux

Po zainstalowaniu SELinux w systemie. Może mieć stany binarne: włączony i wyłączony. Aby wyświetlić stan SELinux, użyj polecenia:

getenforce
Niepełnosprawny

Powyższe dane wyjściowe wskazują, że SELinux jest obecnie wyłączony.

Możesz także użyć polecenia sestatus, jak pokazano poniżej:

status
Status SELinux: wyłączony

Włącz i wyłącz SELinux

Stany i konfiguracja SELinux są obsługiwane przez plik konfiguracyjny znajdujący się w /etc/selinux/config. Możesz użyć polecenia cat, aby wyświetlić jego zawartość.

cat /etc/selinux/config
#Ten plik kontroluje stan SELinux w systemie.
#SELINUX= może przyjąć jedną z tych trzech wartości:
#enforcing - polityka bezpieczeństwa SELinux jest egzekwowana.
#permissive - SELinux wyświetla ostrzeżenia zamiast wymuszać.
#disabled - Żadna polityka SELinux nie jest załadowana.
SELINUX=wymuszanie
#SELINUXTYPE= może przyjąć jedną z tych trzech wartości:
# ukierunkowany - Ukierunkowane procesy są chronione,
# minimum - Modyfikacja docelowej polityki. Tylko wybrane procesy są chronione.
# mls - wielopoziomowa ochrona bezpieczeństwa.
SELINUXTYPE=docelowa

Z powyższego wyniku mamy włączone dwie główne dyrektywy. Dyrektywa SELINUX określiła tryb, w którym skonfigurowany jest SELinux. Dyrektywa SELINUXTYPE określa zestaw polityk SELinux. Domyślnie SELinux używa ukierunkowanej polityki, która pozwala dostosować uprawnienia kontroli dostępu. Druga polityka to Bezpieczeństwo wielopoziomowe lub MLS.

W niektórych wersjach może znaleźć się minimalna polityka.

cd /etc/selinux/
[ls -l
łącznie 4
-rw-r--r-- 1 root root 548 16 lutego 22:40 config
drwxr-xr-x 1 korzeń korzeń 4096 lut 16 22:43 mls
-rw-r--r-- 1 root root 2425 Lip 21 2020 semanage.konf
drwxr-xr-x 1 root root 4096 16 lutego 22:40 celowany

Zobaczmy teraz, jak włączyć SELinux w systemie. Zalecamy najpierw ustawić tryb SELINUX na zezwalający i nie wymuszony.

nano /etc/selinux/config

Teraz edytuj dyrektywę SELINUX jako:

SELINUX=pozwalający

Po zapisaniu pliku uruchom ponownie system.

restart

UWAGA: Zdecydowanie zalecamy ustawienie dyrektywy SELINUX na permisywną przed wymuszeniem SELinux.

Po ponownym uruchomieniu systemu sprawdź, czy w /var/log/messages nie ma żadnych dzienników zgłaszanych przez SELinux.

Następnie upewnij się, że nie masz błędów i wymuś SELinux, ustawiając dyrektywę tak, aby wymusić w /etc/selinux/config

Na koniec możesz wyświetlić status SELinux za pomocą polecenia sestatus:

Status SELinux: włączony
Montaż SELinuxfs: /sys/fs/selinux
Katalog główny SELinux: /etc/selinux
Wczytana nazwa zasady: ukierunkowana
Aktualny tryb: egzekwowanie
Tryb z pliku konfiguracyjnego: błąd (Sukces)
Status zasad MLS: włączony
Polityka deny_unknown status: dozwolone
Sprawdzanie ochrony pamięci: rzeczywiste (bezpieczne)
Maksymalna wersja polityki jądra: 31

Możesz także użyć polecenia setenforce, aby przełączać się między różnymi trybami SELinux. Na przykład, aby ustawić tryb na permissive, użyj polecenia:

setenforce zezwalający

Ten tryb jest tymczasowy i zostanie przywrócony do jednego w pliku konfiguracyjnym po ponownym uruchomieniu.

status SELinux status: włączony
Montaż SELinuxfs: /sys/fs/selinux
Katalog główny SELinux: /etc/selinux
Wczytana nazwa zasady: ukierunkowana
Aktualny tryb: permisywny
Tryb z pliku konfiguracyjnego: wymuszanie
Status zasad MLS: włączony
Polityka deny_unknown status: dozwolone
Sprawdzanie ochrony pamięci: rzeczywiste (bezpieczne)
Maksymalna wersja polityki jądra: 31

Polityka i kontekst SELinux

Aby uniknąć nieporozumień dla początkujących w SELinuksie, nie będziemy zagłębiać się w implementację polityk SELinuksa, ale po prostu dotkniemy tego, aby dać ci pomysł.

SELinux działa poprzez wdrażanie polityk bezpieczeństwa. Polityka SELinux odnosi się do reguły używanej do definiowania praw dostępu dla każdego obiektu w systemie. Obiekty odnoszą się do użytkowników, procesów, plików i ról.

Każdy kontekst jest zdefiniowany w postaci user:role:type:level.

Na przykład utwórz katalog w swoim katalogu domowym i wyświetl jego kontekst bezpieczeństwa SELinux, jak pokazano w poniższych poleceniach:

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

Spowoduje to wyświetlenie danych wyjściowych, jak pokazano poniżej:

unconfined_u:object_r:user_home_t:s0 linuxhint_dir

Możesz również znaleźć inne katalogi z kontekstami bezpieczeństwa, takie jak:

system:_u:obiekt_r:user_home_t:s0

Możesz zdać sobie sprawę, że powyższe dane wyjściowe są zgodne ze składnią użytkownika:rola:typ:poziom.

Wniosek

To był samouczek dla początkujących do SELinux przy użyciu CentOS 8. Chociaż samouczek jest przeznaczony dla początkujących, to w zupełności wystarczy, aby uruchomić SELinux i usunąć zastraszający charakter SELinux.

Dziękuję za przeczytanie.

WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...