Jak zainstalować SELinux na Ubuntu 24.04/22.04/20.04

Security-Enhanced Linux (SELinux) jest niezbędny do zarządzania polityką bezpieczeństwa kontroli dostępu w systemach Linux. Używany głównie przez administratorów systemów, programistów i specjalistów ds. bezpieczeństwa, SELinux oferuje solidne bezpieczeństwo na poziomie jądra. Jego wdrożenie na serwerach Ubuntu, szczególnie w wersjach 24.04, 22.04 i 20.04 LTS, wzmacnia bezpieczeństwo tych systemów.

Kluczowe cechy SELinux, które zwiększają bezpieczeństwo Ubuntu obejmują:

  • Obowiązkowa kontrola dostępu (MAC): W przeciwieństwie do tradycyjnych, uznaniowych systemów kontroli dostępu, SELinux wymusza rygorystyczne zasady, które ograniczają procesy systemowe i użytkowników, minimalizując ryzyko nieautoryzowanego dostępu.
  • Kontrola drobnoziarnista: Zapewnia szczegółową kontrolę nad procesami systemowymi i ich interakcjami z plikami i innymi zasobami.
  • Zwiększone zasady bezpieczeństwa: Dostosowane polityki bezpieczeństwa pomagają chronić przed zagrożeniami zewnętrznymi i wewnętrznymi.
  • Audyt i rejestrowanie: Wszechstronne możliwości rejestrowania ułatwiają monitorowanie i śledzenie zdarzeń związanych z bezpieczeństwem, pomagając w szybkiej identyfikacji i rozwiązywaniu problemów.

Integracja SELinuksa ze środowiskiem serwerowym Ubuntu, zwłaszcza dla tych, którzy zarządzają krytycznymi aplikacjami lub wrażliwymi danymi, znacznie zwiększa bezpieczeństwo systemu. Celem tego przewodnika, skupiającego się na instalacji i podstawowym użytkowaniu SELinuksa, jest przedstawienie prostego podejścia do wykorzystania korzyści związanych z bezpieczeństwem.

Wyłącz usługę AppArmor

Aby zapewnić kompatybilność, sprawdź, czy AppArmor jest aktywny, ponieważ jednoczesne uruchamianie AppArmor i SELinux może powodować konflikty. Określ status AppArmor za pomocą:

sudo systemctl status apparmor

Jeśli AppArmor działa, wyłącz go, aby zapobiec jakimkolwiek zakłóceniom z SELinux. Wykonaj następujące polecenie, aby dezaktywować AppArmor:

sudo systemctl disable apparmor --now

Zainstaluj SELinux za pomocą polecenia APT

Ten etap obejmuje instalację kluczowych pakietów SELinux: policycoreutils, selinux-utils, I selinux-basics. Są one niezbędne do zarządzania politykami SELinux i zapewniania podstawowej obsługi SELinux.

Rozpocznij instalację za pomocą tego polecenia:

sudo apt install policycoreutils selinux-utils selinux-basics

Wykonanie tego spowoduje zainstalowanie wymaganych pakietów SELinux w systemie Ubuntu.

Aktywuj SELinuksa

Po zainstalowaniu niezbędnych pakietów aktywuj SELinux, aby mieć pewność, że załaduje się przy uruchomieniu. Ta aktywacja ma kluczowe znaczenie dla włączenia funkcji bezpieczeństwa SELinux. Uruchom następującą komendę z uprawnieniami roota:

sudo selinux-activate

Ten krok konfiguruje system tak, aby inicjował SELinux podczas procesu rozruchu.

Wymuś tryb SELinux

Ustawienie SELinux w tryb wymuszania jest kluczowe. W tym trybie SELinux aktywnie stosuje swoją politykę bezpieczeństwa, odmawiając dostępu w oparciu o predefiniowane reguły. Przejdź do trybu wymuszania, używając:

sudo selinux-config-enforcing

Ta akcja modyfikuje konfigurację SELinux, aby działała w trybie wymuszania.

Ponowne uruchomienie systemu w celu aktywacji SELinux

Zakończ proces instalacji, uruchamiając ponownie system. Dzięki temu wszystkie zmiany zostaną zastosowane, a SELinux zacznie działać w ustawionym trybie:

sudo reboot

Po ponownym uruchomieniu system będzie działał z zainstalowanym, aktywowanym i skonfigurowanym SELinuxem tak, aby egzekwował swoje zasady bezpieczeństwa. Poniższe sekcje poprowadzą Cię w dalszym dostosowywaniu SELinux do Twoich potrzeb bezpieczeństwa.

Skonfiguruj SELinuksa

Zrozumienie trybów SELinux

SELinux działa w trzech różnych trybach:

  • Tryb wymuszania: Ustawienie domyślne, gdzie SELinux rygorystycznie egzekwuje swoje zasady bezpieczeństwa, odmawiając dostępu zgodnie z ustalonymi regułami.
  • Tryb zezwalający: Tutaj SELinux rejestruje naruszenia zasad, ale nie egzekwuje ich aktywnie. Ten tryb jest przydatny do testowania zasad i rozwiązywania problemów.
  • Tryb wyłączony: W tym trybie SELinux jest całkowicie wyłączony i nie są stosowane żadne zasady.

Edytuj plik konfiguracyjny SELinux

Aby dostosować ustawienia SELinux, edytuj plik /etc/selinux/config plik. Do tego zadania użyj preferowanego edytora tekstu, takiego jak nano:

sudo nano /etc/selinux/config

Wewnątrz pliku zmodyfikuj SELINUX linię, aby ustawić preferowany tryb. Na przykład, aby włączyć tryb wymuszania:

SELINUX=enforcing

Stosowanie zmian konfiguracyjnych

Aby zmiany zaczęły obowiązywać, uruchom ponownie system:

sudo reboot

Dostosowywanie dodatkowych opcji konfiguracji SELinux

SELinux oferuje kilka opcji dostosowywania:

  • SETLOCALDEFS: Określa użycie lokalnie zdefiniowanych kontekstów plików. Aby użyć kontekstów domyślnych, ustaw tę opcję na 0. Zmodyfikuj /etc/selinux/config plik odpowiednio:
SETLOCALDEFS=0
  • TYP SELINUX: Ustawia typ polityki. Wspólny typ polityki „ukierunkowany” koncentruje się na ochronie określonych usług systemowych. Aby to ustawić, zaktualizuj plik SELINUXTYPE linia w pliku konfiguracyjnym:
SELINUXTYPE=targeted

Przykład: konfiguracja SELinux dla serwera WWW

Rozważ skonfigurowanie SELinux tak, aby zezwalał na ruch HTTP i HTTPS na serwerze internetowym Ubuntu. The semanage polecenie służy do zarządzania polityką.

Najpierw zainstaluj semanage pożytek:

sudo apt install policycoreutils-python-utils

Następnie zezwól na ruch HTTP na porcie 80:

sudo semanage port -a -t http_port_t -p tcp 80

Oraz ruch HTTPS na porcie 443:

sudo semanage port -a -t http_port_t -p tcp 443

Te polecenia zaktualizują politykę SELinux, umożliwiając Twojemu serwerowi WWW odbieranie połączeń przychodzących na portach 80 (HTTP) i 443 (HTTPS), zapewniając bezpieczne działanie usług internetowych.

Weryfikacja trybu SELinux

Sprawdzanie statusu SELinux po ponownym uruchomieniu

Po ponownym uruchomieniu systemu Ubuntu ważne jest, aby potwierdzić status operacyjny SELinux. Weryfikacja ta gwarantuje, że system poprawnie zastosuje ustawienia konfiguracyjne SELinux.

Wykonaj następujące polecenie, aby sprawdzić bieżący stan:

sestatus

To polecenie udostępnia szczegółowe informacje na temat SELinuksa, w tym jego bieżący stan operacyjny, tryb, w którym działa (wymuszony, zezwalający lub wyłączony) oraz używane zasady. Porównaj to wyjście z ustawieniami w pliku /etc/selinux/config plik, aby potwierdzić, że SELinux działa zgodnie z oczekiwaniami.

Rozwiązywanie typowych problemów z SELinuxem

Przywracanie domyślnych kontekstów plików

Nieprawidłowe konteksty plików często prowadzą do odmowy dostępu przez SELinux, zakłócając funkcjonalność aplikacji. Aby to naprawić, użyj restorecon Komenda. Na przykład, aby rozwiązać problemy w /var/www/html katalog, wykonaj:

sudo restorecon -Rv /var/www/html

To polecenie rekursywnie przywraca domyślny kontekst dla wszystkich znajdujących się w nim plików i katalogów /var/www/html, z pełnymi danymi wyjściowymi szczegółowo opisującymi zmiany.

Tymczasowe przełączanie do trybu zezwolenia w celu rozwiązywania problemów

Nie jesteś pewien, czy SELinux powoduje konkretny problem? Tymczasowo przełącz się w tryb zezwalający, aby zdiagnozować. Ten tryb rejestruje naruszenia bez ich egzekwowania. Aktywuj tryb zezwalający za pomocą:

sudo setenforce 0

Przetestuj swoją aplikację już teraz. Jeśli problemy ustaną, prawdopodobnie wynikają one z zasad SELinux. Pamiętaj, aby po testach powrócić do trybu wymuszania:

sudo setenforce 1

Przeglądanie dzienników SELinux w celu diagnozy problemów

Dzienniki SELinux są niezbędne do identyfikowania naruszeń zasad. W systemie Ubuntu głównym dziennikiem SELinux jest /var/log/audit/audit.log. Aby zobaczyć ostatnie wpisy użyj:

sudo tail /var/log/audit/audit.log

Wyszukaj w dziennikach wpisy „odmowa” lub „AVC”, aby wskazać potencjalne naruszenia.

Generowanie niestandardowych modułów zasad za pomocą audytu2allow

Napotykasz problemy związane z polityką? Spożytkować audit2allow do analizy dzienników audytu i utworzenia niestandardowego modułu zasad. Na przykład:

sudo grep 'denied' /var/log/audit/audit.log | audit2allow -M mycustommodule
sudo semodule -i mycustommodule.pp

Pierwsze polecenie generuje politykę o nazwie „mycustommodule” na podstawie „odrzuconych” wpisów w dzienniku audytu. Drugi instaluje tę politykę, potencjalnie rozwiązując problem.

Zarządzanie wartościami logicznymi SELinux

Wartości logiczne SELinux kontrolują określone funkcjonalności. Aby wyświetlić listę wszystkich wartości logicznych i ich stanów, użyj:

sudo getsebool -a

Aby zmodyfikować wartość logiczną, na przykład włączyć httpd_can_network_connect, wykonać:

sudo setsebool -P httpd_can_network_connect 1

The -P flaga zapewnia trwałość przy ponownym uruchomieniu.

Konfigurowanie SELinux dla aplikacji internetowych: Zezwolenie na ruch HTTP i HTTPS

W przypadku aplikacji internetowych, takich jak WordPress, kluczowe znaczenie ma otwarcie niezbędnych portów sieciowych w SELinux. Włącz porty 80 (HTTP) i 443 (HTTPS) za pomocą:

sudo semanage port -a -t http_port_t -p tcp 80
sudo semanage port -a -t http_port_t -p tcp 443

Konfiguracja SELinux dla WordPress

Dostosuj zasady SELinux, aby zapewnić płynne działanie WordPressa:

  • Połączenia sieciowe dla skryptów i modułów HTTPD: Włącz tę opcję dla aktualizacji wtyczek i motywów:
sudo setsebool -P httpd_can_network_connect 1
  • Dostęp do odczytu i zapisu w katalogu WordPress: Upewnij się, że HTTPD może wchodzić w interakcję z plikami WordPress:
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-content
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-config.php

Dodatkowe opcje konfiguracji SELinux dotyczące rozwiązywania problemów

Dostosuj SELinux do różnych wymagań oprogramowania:

  • Dostęp do katalogów niestandardowych: Modyfikuj konteksty plików dla niestandardowych katalogów internetowych, np. /opt/myapp:
sudo chcon -R -t httpd_sys_content_t /opt/myapp
  • Dostęp FTP do serwera WWW: Włącz dostęp FTP, jeśli jest to wymagane:
sudo setsebool -P allow_ftpd_full_access 1
  • Funkcjonalność poczty e-mail serwera WWW: Jeśli Twoja aplikacja wymaga możliwości wysyłania wiadomości e-mail:
sudo setsebool -P httpd_can_sendmail 1

Konfiguracje te ilustrują elastyczność SELinux w zaspokajaniu określonych potrzeb w zakresie bezpieczeństwa i operacyjnych.

Wniosek

To już podsumowanie naszego przewodnika dotyczącego instalacji SELinux na Ubuntu 24.04, 22.04 lub 20.04. Przeszliśmy przez proces instalacji, omówiliśmy kilka podstawowych poleceń i zapoznaliśmy się z kilkoma kluczowymi wskazówkami dotyczącymi konfiguracji. Pamiętaj, że regularne aktualizacje i ciągłe monitorowanie mają kluczowe znaczenie dla utrzymania bezpieczeństwa systemu. Możesz eksperymentować z polityką SELinux, aby lepiej odpowiadać potrzebom swojego serwera, ale zawsze twórz kopię zapasową konfiguracji przed wprowadzeniem zmian.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)