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ą:
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:
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.