Selinux dla początkujących korzystających z centu

Selinux dla początkujących korzystających z centu
Opracowany przez NSA w celu zapobiegania złowrogim dostępowi i włamaniom, Linux lub Selinux z wzmocnionym bezpieczeństwem jest funkcją zaawansowanej kontroli dostępu, która wysyła z najnowocześniejszymi dystrybucjami Linux. SELINUX jest definiowany jako system obowiązkowego kontroli dostępu (MAC) opracowany jako zastępca dla uznaniowego systemu 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 zakresie egzekwowania bezpieczeństwa, jak i rozwiązywania problemów.

W tym samouczku omówiono różne pojęcia zaimplementowane przez Selinux i zbada różne praktyczne metody wdrażania Selinux.

Uwaga: Zanim zaczniemy, dobrze jest używać poleceń w tym samouczku jako użytkownika root lub użytkownika w grupie sudoers.

Zainstaluj pakiety Selinux

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

Zanim przejdziemy do instalacji pakietów Selinux, dobrze weryfikujemy, które są zainstalowane w bieżącym systemie.

W większości instalacji dystrybucji Rehl niektóre pakiety są domyślnie zainstalowane. Te pakiety obejmują:

  1. Setools - Ten pakiet służy do monitorowania dzienników, zasad zapytania i zarządzania plikami kontekstowymi.
  2. PolicyCoreUtils -Python - zapewnia Python Core narzędzi do zarządzania Selinux
  3. PolicyCoreUtils - Ten pakiet zapewnia również narzędzia do zarządzania Selinux.
  4. McStrans - McSTrans zapewnia demon tłumaczenia Selinux, który przekłada różne poziomy na łatwe formaty, które można łatwo zrozumieć.
  5. Setools -Console - podobny do Setools.
  6. Selinux -Policy - zapewnia odniesienie do konfigurowania zasad Selinux
  7. Ukierunkowane na Selinux-Policy-podobne do Selinux-Policy
  8. Libselinux -Utils - Selinux Libselinux Narzędzia, które pomagają zarządzać Selinux
  9. SetRoubShoot -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 wypić 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-celed-3.14.3-54.EL8_3.2.Noarch
Python3-Libselinux-2.9-4.EL8_3.x86_64
Selinux-Policy-3.14.3-54.EL8_3.2.Noarch
Libselinux-2.9-4.EL8_3.x86_64

Powinno to dać wyjście wszystkich pakietów zainstalowanych dla obsługi Selinux

Jeśli nie wszystkie pakiety Selinux są instalowane w systemie, użyj Yum, aby zainstalować je, jak pokazano w poniższym poleceniu:

instaluj PolicyCoreCoreUtils PolicyCoreUtils-Python-Utils Selinux-Policy-Policy-Policy-Celgeted Libselinux-Utils SetRoubleshoot-Server Setools Setools-Console McStrans

Tryby i stany Selinux

Zacznijmy teraz grać z Selinux, w szczególności tryby Selinux.

Tryby SELINUX

Po włączeniu Selinux może być trzema możliwymi trybami:

  • Egzekwowanie
  • Dozwalający
  • Wyłączony

Tryb egzekwowania

Jeśli tryb SELINUX do egzekwowania, zapewni, że nie zostanie odmowa nieautoryzowanego dostępu do systemu przez żadnego użytkownika lub procesów. Tryb egzekwowania prowadzi również dzienniki wszelkich prób nieautoryzowanego dostępu.

Tryb dopuszczalny

Tryb dopuszczalny działa jak częściowo włączony stan Selinux. W tym trybie nie ma dostępu, ponieważ Selinux nie egzekwuje swoich zasad w tym trybie. Jednak tryb dopuszczalny prowadzi dziennik wszelkich prób naruszenia zasad. Ten tryb jest bardzo wydajny do testowania przed pełnym włączeniem go, ponieważ użytkownicy i komponenty mogą nadal wchodzić w interakcje z systemem, ale nadal zbiera dzienniki. To pozwala na dostosowanie systemu w sposób, w jaki postrzegasz dopasowanie.

Tryb wyłączony

Tryb wyłączony można również postrzegać jako stan wyłączony, w którym Selinux jest wyłączony i nie oferuje żadnego zabezpieczenia.

Selinux stany

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

getenforce
Wyłączony

Powyższe wyjście wskazuje, że Selinux jest obecnie wyłączony.

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

sestatus
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 wziąć jedną z tych trzech wartości:
#Enforcing - Egzekwowana jest polityka bezpieczeństwa Selinux.
#Permissive - Selinux drukuje ostrzeżenia zamiast egzekwowania.
#Disabled - nie jest ładowane zasady Selinux.
Selinux = egzekwowanie
#Selinuxtype = może wziąć jedną z tych trzech wartości:
# celowane - procesy docelowe są chronione,
# minimum - modyfikacja ukierunkowanej polityki. Tylko wybrane procesy są chronione.
# MLS - Ochrona bezpieczeństwa wielopoziomowego.
Selinuxtype = celowany

Z powyższego wyjścia mamy dwie główne dyrektywy. Dyrektywa Selinux określiła tryb, w którym skonfigurowany jest Selinux. Dyrektywa SelinuxType określa zestaw zasad Selinux. Domyślnie Selinux korzysta z zasady docelowej, która umożliwia dostosowanie uprawnień do kontroli dostępu. Inną polityką jest bezpieczeństwo wielopoziomowe lub MLS.

W niektórych wersjach można znaleźć minimalne zasady.

CD/etc/selinux/
[ls -l
Łącznie 4
-RW-R-R-1 root root 548 16 lutego 22:40 Konfiguracja
DRWXR-XR-X 1 root root 4096 lutego 16 22:43 mls
-RW-R-R-1 Root root 2425 lipca 21 2020 SEMANAGE.conf
DRWXR-XR-X 1 root root 4096 16 lutego 22:40

Zobaczmy teraz, jak włączyć Selinux w systemie. Zalecamy najpierw ustaw tryb Selinux na dopuszczalny i nie egzekwowany.

nano/etc/selinux/config

Teraz edytuj dyrektywę Selinux jako:

SELINUX = dopuszczalny

Po zapisaniu pliku wydawaj ponownie system.

ponowne uruchomienie

UWAGA: Gorąco zalecamy ustawienie dyrektywy SELINUX na Permissive przed egzekwowaniem Selinux.

Po ponownym uruchomieniu systemu sprawdź dowolne dzienniki zgłoszone przez Selinux in/var/log/messages.

Następnie upewnij się, że nie masz błędów i egzekwuj SELINUX, ustawiając dyrektywę w celu egzekwowania w/etc/selinux/config

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

Status Selinux: Włączony
Selinuxfs Mount:/sys/fs/selinux
Selinux Root Directory: /etc /selinux
Załadowana nazwa zasad: ukierunkowana
Obecny tryb: egzekwowanie
Tryb z pliku konfiguracyjnego: błąd (sukces)
Polityka Status MLS: Włączony
Polityka DEY_UNKNOWN Status: dozwolony
Sprawdzanie ochrony pamięci: rzeczywisty (bezpieczny)
Polityka Maxa Wersja: 31

Możesz także użyć polecenia setenForce do przełączania między różnymi trybami Selinux. Na przykład, aby ustawić tryb na dopuszczalny, użyj polecenia:

setenForce dopuszczalne

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

sestatus
Status Selinux: Włączony
Selinuxfs Mount:/sys/fs/selinux
Selinux Root Directory: /etc /selinux
Załadowana nazwa zasad: ukierunkowana
Obecny tryb: dopuszczalny
Tryb z pliku konfiguracyjnego: egzekwowanie
Polityka Status MLS: Włączony
Polityka DEY_UNKNOWN Status: dozwolony
Sprawdzanie ochrony pamięci: rzeczywisty (bezpieczny)
Polityka Maxa Wersja: 31

Polityka i kontekst SELINUX

Aby uniknąć zamieszania dla początkujących Selinux, nie będziemy głęboko zagłębić się w sposób wdrażania zasad Selinux, ale po prostu dotkniemy tego, aby dać ci pomysł.

Selinux działa poprzez wdrożenie zasad bezpieczeństwa. Polityka Selinux odnosi się do zasady używanej do zdefiniowania 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 formie użytkownika: Rola: Typ: Poziom.

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

mkdir ~/linuxhint_dir
ls -z ~/ | Grep Linuxhint

Będzie to wyświetlone dane wyjściowe, jak pokazano poniżej:

Unconfined_u: obiekt_r: user_home_t: S0 Linuxhint_dir

Możesz także znaleźć inne katalogi z kontekstami bezpieczeństwa jako:

System: _u: object_r: user_home_t: s0

Możesz zdać sobie sprawę z powyższego wyjścia śledzi 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, jest więcej niż wystarczający, aby uruchomić stopy w Selinux i usunąć zastraszającą naturę Selinux.

Dziękuję za przeczytanie.