Tak, SELinux sprawia, że Red Hat (i każda inna dystrybucja Linuksa, która z niego korzysta) jest bezpieczniejsza, zakładając, że jest w użyciu.
SELinux implementuje obowiązkową kontrolę dostępu . Normalne uprawnienia Unix, listy ACL itp. Wprowadzają uznaniową kontrolę dostępu . Obie się uzupełniają.
Aby działać, SELinux wymaga polityki określającej, jakie akcje w systemie mogą być dozwolone. Chociaż możliwe jest utworzenie całej polityki systemowej od zera, większość dystrybucji Linuksa dostarcza politykę opartą na tak zwanej polityce referencyjnej . Oznacza to, między innymi, że konfiguracja SELinuksa dla różnych dystrybucji będzie bardzo podobna. (Większość dystrybucji Linuksa udostępnia politykę referencyjną SELinux w swoich repozytoriach pakietów, choć może nie być domyślnie instalowana).
SELinux działa poprzez ograniczenie użytkowników i procesów do wykonywania tylko działań dozwolonych im w polityce. Domyślnie zasadą jest odmowa, więc jeśli zasada wyraźnie nie zezwala na działanie, to tak się nie dzieje. Właśnie dlatego tak często napotykasz problemy z SELinuksem, który nie pozwala na coś, co próbujesz zrobić.
Z drugiej strony zapobiega to wymykaniu się exploitów, nawet exploitów 0-dniowych. Na przykład, jeśli twój serwer WWW (Apache) zostanie wykorzystany, szkody są ograniczone tylko do tych rzeczy, do których Apache może uzyskać dostęp. Na przykład nie byłby w stanie odczytać twojego /etc/shadow
pliku, nawet przy użyciu exploita zdalnego roota. Podczas gdy uprawnienia Unix (DAC) pozwalają rootowi na odczytanie pliku, SELinux (MAC) nie pozwala, aby zagrożony proces przekroczył granice.
Duża gotowość polega na tym, że do usługi musi być załadowany moduł polityki SELinux. Jeśli zainstalujesz na swoim urządzeniu usługę, która nie zawiera modułu zasad SELinuksa, będzie działać bez ograniczeń i będzie mógł robić, co tylko zechce. SELinux nie będzie miał do niego zastosowania.
Kolejną rzeczą, o której powinieneś wiedzieć, jest booleany . Te przestrajalne parametry są dostarczane przez polityki SELinuksa w celu dostosowania ich do konkretnych instalacji oraz zezwalania lub odmowy dostępu w zależności od potrzeb konfiguracji lokalnej. Na przykład możesz przyznać Apache dostęp do udziałów Samby, umożliwić Sambie udostępnianie domowych katalogów użytkowników i wiele innych potencjalnie użytecznych rzeczy, które są niezbędne w niektórych konfiguracjach, ale nie w innych.
Najlepszym przewodnikiem po SELinux, który widziałem obecnie, jest Podręcznik użytkownika Red Hat z ulepszonym bezpieczeństwem w Linuksie . Pomoże Ci szybko rozpocząć pracę, a także uzupełni tło o tym, co się dzieje. Zawiera także obszerny przewodnik rozwiązywania problemów, który pomaga uruchomić proces w SELinux.
To jest użyteczne?
SELinux chroni przed procesami (i użytkownikami, jeśli ograniczyłeś użytkowników) wykonującymi nieoczekiwane rzeczy. Poważnie ogranicza szkody, które może wyrządzić zdalny exploit. Jeśli nigdy nie spotkałeś się z odległym kompromisem, masz (1) szczęście i (2) prawdopodobnie nowy. Jeśli nie pracował zdalnego kompromis, na pewno nie chcesz, aby nigdy się nie powtórzy.
Nie jest to tak przydatne w warunkach domowych , chyba że w domu korzystasz z usług internetowych (a niektórzy to robią). W takim przypadku obowiązują wszystkie powyższe informacje.
SELinux może być ostatnią rzeczą, która stoi pomiędzy twoimi danymi a atakującym z exploitem 0-day, który naprawdę tego chce. Jeśli możesz go użyć, dlaczego nie miałbyś tego zrobić?