Zanim zaczniesz, musisz nauczyć się następujących pojęć:
Przedmioty: procesy lub użytkownicy.
Obiekty: pliki lub systemy plików.
Wpisz egzekwowanie: w SELinux wszystkie podmioty i obiekty mają identyfikator typu kończący się na _t. “Egzekwowanie typu to koncepcja, że w obowiązkowym systemie kontroli dostępu dostęp jest regulowany przez zezwolenie na podstawie zbioru reguł podmiot-dostęp-obiekt.
W SELinux wymuszanie typów jest zaimplementowane w oparciu o etykiety podmiotów i obiektów. SELinux sam w sobie nie ma reguł, które mówią /bin/bash może wykonać /bin/ls. Zamiast tego ma reguły podobne do „Procesy z etykietą user_t mogą wykonywać zwykłe pliki oznaczone etykietą bin_t.” (źródło https://wiki.gentoo.org/wiki/SELinux/Type_enforcement)
Uznaniowa kontrola dostępu (DAC): DAC to system własności i uprawnień, którego używamy w systemie Linux do zarządzania dostępem do obiektów, takich jak pliki lub katalogi. Uznana kontrola dostępu nie ma nic wspólnego z SELinux i jest inną warstwą bezpieczeństwa. Aby uzyskać dodatkowe informacje na temat DAC, odwiedź stronę Linux Permissions Explained.
Obowiązkowa kontrola dostępu (MAC): jest rodzajem kontroli dostępu, który ogranicza interakcję dostępu podmiotów z obiektami. W przeciwieństwie do DAC z MAC użytkownicy nie mogą zmieniać polityk.
Podmioty i obiekty mają kontekst bezpieczeństwa (atrybuty bezpieczeństwa) monitorowany przez SELinux i administrowany zgodnie z politykami bezpieczeństwa ustanowionymi przez reguły, które mają być egzekwowane.
Kontrola dostępu oparta na rolach (RBAC): to rodzaj kontroli dostępu oparty na rolach, można go łączyć zarówno z MAC, jak i DAC. Zasady RBAC sprawiają, że zarządzanie wieloma użytkownikami w organizacji jest proste w przeciwieństwie do DAC, który może pochodzić z indywidualnych przypisań uprawnień, ułatwia inspekcję, konfigurację i aktualizacje zasad.
Tryb wymuszania: SELinux ogranicza podmiotom dostęp do obiektów na podstawie polityk.
Tryb zezwalający: SELinux rejestruje tylko nielegalną aktywność.
Funkcje SELinux obejmują (lista Wikipedii):
- Czyste oddzielenie polityki od egzekwowania
- Dobrze zdefiniowane interfejsy polityk
- Obsługa aplikacji odpytujących o politykę i wymuszających kontrolę dostępu (na przykład, krąg uruchamianie zadań we właściwym kontekście)
- Niezależność określonych polityk i języków polityk policy
- Niezależność od określonych formatów i treści etykiet zabezpieczających
- Indywidualne etykiety i kontrolki dla obiektów i usług jądra
- Wsparcie dla zmian polityki
- Oddzielne środki ochrony integralności systemu (typu domeny) i poufności danych (wielopoziomowe zabezpieczenia)
- Elastyczna polityka
- Kontrola nad inicjalizacją i dziedziczeniem procesów oraz wykonywaniem programu
- Kontrola nad systemami plików, katalogami, plikami i otwartymi deskryptory plików
- Kontrola nad gniazdami, wiadomościami i interfejsami sieciowymi
- Kontrola nad wykorzystaniem „zdolności”
- Buforowane informacje o decyzjach dostępu poprzez Access Vector Cache (AVC)
- Domyślna odmowa polityka (wszystko, co nie zostało wyraźnie określone w polityce, jest niedozwolone).
Źródło: https://pl.Wikipedia.org/wiki/Security-Enhanced_Linux#Funkcje
Uwaga: użytkownicy są różni na SELinux i passwd.
Konfigurowanie SELinux na Debianie 10 Buster
W moim przypadku SELinux został wyłączony w Debianie 10 Buster. Włączenie SELinux jest jednym z podstawowych kroków, aby zapewnić bezpieczeństwo urządzenia z systemem Linux. Aby poznać status SELinux na swoim urządzeniu, uruchom polecenie:
/# status
Zauważyłem, że SELinux był wyłączony, aby go włączyć, musisz zainstalować kilka pakietów przed, po trafna aktualizacja, uruchom polecenie:
/# apt install selinux-basics selinux-policy-default
Na żądanie naciśnij Tak aby kontynuować proces instalacji. Biegać trafna aktualizacja po zakończeniu instalacji.
Aby włączyć SELinux, uruchom następujące polecenie:
/# selinux-aktywuj
Jak widać SELinux został poprawnie aktywowany. Aby zastosować wszystkie zmiany, musisz ponownie uruchomić system zgodnie z instrukcją.
Polecenie getenforce może być użyte do poznania statusu SELinux, jeśli jest w trybie zezwalającym lub wymuszającym:
/# getenforce
Tryb zezwalający można zastąpić, ustawiając parametr 1 (dopuszczalne jest 0). Możesz także sprawdzić tryb w pliku konfiguracyjnym za pomocą polecenia mniej:
/# mniej /etc/selinux/config
Wynik:
Jak widać pliki konfiguracyjne pokazują tryb permisywny. naciśnij Q do wyjścia.
Aby zobaczyć kontekst bezpieczeństwa pliku lub procesu, możesz użyć flagi -Z:
/# ls -Z
Format etykiety to użytkownik:rola:typ:poziom.
semanage - narzędzie do zarządzania polityką SELinux
semanage to narzędzie do zarządzania polityką SELinux. Pozwala na zarządzanie wartościami boolowskimi (które pozwalają modyfikować proces w trakcie pracy), rolami i poziomami użytkowników, interfejsami sieciowymi, modułami polityk i nie tylko. Semanage pozwala na konfigurację polityk SELinux bez konieczności kompilowania źródeł. Semanage umożliwia połączenie między użytkownikami systemu operacyjnego i SELinux oraz kontekstami bezpieczeństwa niektórych obiektów.
Aby uzyskać dodatkowe informacje na temat semanage, odwiedź stronę podręcznika pod adresem: https://linux.umierać.sieć/człowiek/8/zarząd
Wnioski i uwagi
SELinux to dodatkowy sposób administrowania dostępem z procesów do zasobów systemowych, takich jak pliki, partycje, katalogi itp. Pozwala zarządzać ogromnymi uprawnieniami w zależności od roli, poziomu lub typu. Włączenie go jest koniecznością jako środek bezpieczeństwa, a podczas korzystania z niego ważne jest, aby pamiętać o jego warstwie bezpieczeństwa i ponownie uruchomić system po włączeniu lub wyłączeniu (wyłączenie nie jest w ogóle zalecane, z wyjątkiem określonych testów). Czasami dostęp do pliku jest blokowany pomimo przyznania uprawnień systemu lub systemu operacyjnego, ponieważ SELinux tego zabrania.
Mam nadzieję, że ten artykuł o SELinuksie okazał się przydatny jako wprowadzenie do tego rozwiązania bezpieczeństwa. Śledź LinuxHint, aby uzyskać więcej wskazówek i aktualizacji dotyczących Linuksa i sieci.
Powiązane artykuły:
- SELinux w samouczku Ubuntu
- Jak wyłączyć SELinux na CentOS 7?
- Lista kontrolna wzmacniania zabezpieczeń systemu Linux
- Profile AppArmor na Ubuntu