CodeGym /Kursy /Docker SELF /Konfiguracja zapory sieciowej, SELinux i podstawowych reg...

Konfiguracja zapory sieciowej, SELinux i podstawowych reguł ACL

Docker SELF
Poziom 5 , Lekcja 5
Dostępny

Konfiguracja zapory sieciowej, SELinux i podstawowych reguł ACL

1. Krok 1: Instalacja i konfiguracja zapory sieciowej

Cześć! Dzisiaj zajmiemy się praktyką i wykorzystamy wszystko, czego nauczyliście się o bezpieczeństwie Linux przez cały dzień. Skonfigurujemy zaporę sieciową, przeanalizujemy działanie SELinux i zrozumiemy wygodę użycia ACL do zarządzania dostępem do plików. Ten wykład to wasz "poligon treningowy". Czas założyć nasze adminowe "pagony bezpieczeństwa" i zaczynać!

Już wiecie, że dobra zapora sieciowa to jak strażnik przy wejściu. Decyduje, kogo wpuścić, a komu powiedzieć "O nie, nie!". Na początek ustawimy ochronę naszego systemu, ograniczając dostęp tylko do usług SSH i HTTP.

Praca z UFW

  1. Sprawdź status UFW. Nie zainstalowane? Zainstalujemy!

    # Sprawdzanie UFW
    sudo ufw status
  2. Jeśli polecenie mówi, że "zapora jest wyłączona", należy to poprawić.

  3. Instalacja i uruchomienie UFW.

    # Instalacja (jeśli to konieczne)
    sudo apt install ufw
    
    # Włączamy zaporę
    sudo ufw enable
  4. Konfiguracja dostępu. Chcemy zezwolić tylko na SSH (port 22) i HTTP (port 80), blokując wszystko inne. Logika jest oczywista: serwer to nie trzygwiazdkowy hotel dla każdego.

    # Zezwól na SSH
    sudo ufw allow 22
    
    # Zezwól na HTTP
    sudo ufw allow 80
    
    # Sprawdź ustawienia
    sudo ufw status
  5. Weryfikacja: Po ustawieniu powinieneś zobaczyć coś w stylu:

    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    80                         ALLOW       Anywhere
    

Jeśli używasz iptables, konfiguracja jest trochę bardziej skomplikowana, ale logika jest taka sama: tworzymy zasady dla SSH i HTTP, a resztę blokujemy.


2. Krok 2: Praca z SELinux

SELinux to taki surowy nauczyciel, który pilnuje zachowania plików i użytkowników na twoim serwerze. Jego motto brzmi: "Ufaj, ale sprawdzaj". Włączmy SELinux i sprawdźmy, jak działa.

Włączanie SELinux

  1. Sprawdzanie aktualnego statusu:

    # Sprawdzamy, czy SELinux jest włączony
    sestatus

    Jeśli tryb pokazuje disabled, trzeba go włączyć przez plik konfiguracyjny.

  2. Włączanie SELinux przez konfigurację:

    Plik ustawień SELinux znajduje się w ścieżce /etc/selinux/config. Otwórz go za pomocą edytora tekstu (np. nano).

    sudo nano /etc/selinux/config
    

    Znajdź linię:

    SELINUX=disabled
    

    Zamień na:

    SELINUX=enforcing
    

    Zapisz zmiany i uruchom system ponownie, aby zmiany zaczęły działać:

    sudo reboot
    
  3. Sprawdzenie po ponownym uruchomieniu.

    Po załadowaniu serwera ponownie sprawdź status SELinux:

    getenforce
    

    Jeśli system odpowiada Enforcing, gratulacje, stojesz na straży bezpieczeństwa!


Przykład z SELinux i serwerem web

Załóżmy, że masz serwer web, który przechowuje pliki w katalogu /var/www/html. Sprawdźmy, jak SELinux go chroni.

  1. Podgląd kontekstu plików: SELinux używa kontekstów do zarządzania dostępem. Zobaczmy, jaki kontekst ma katalog /var/www/html.

    ls -Z /var/www/html
    

    Przykład wyjścia:

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    

    Jeśli coś jest nie tak, można tymczasowo zmienić kontekst:

    sudo chcon -t httpd_sys_content_t /var/www/html
    
  2. Sprawdzanie działania serwera web: Po skonfigurowaniu kontekstu sprawdź, czy serwer działa i czy nie występują błędy dostępu.


3. Krok 3: Zarządzanie uprawnieniami za pomocą ACL

ACL (Access Control List) – to jak "dodatkowy klucz" do zarządzania dostępem. Kiedy standardowe uprawnienia rwx ograniczają, ACL pozwala precyzyjnie dostosować dostęp dla konkretnych użytkowników.

Utwórz katalog testowy

Spróbujmy utworzyć katalog project_dir i skonfigurujmy go dla dostępu dwóch użytkowników: user1 i user2.

  1. Utwórz katalog:

    sudo mkdir /project_dir
    
  2. Ustaw uprawnienia dostępu:

    Przyznajmy user1 pełen dostęp, a user2 tylko do odczytu:

    # Pełen dostęp dla user1
    sudo setfacl -m u:user1:rwx /project_dir
    
    # Tylko odczyt dla user2
    sudo setfacl -m u:user2:r-- /project_dir
  3. Sprawdź ACL:

    # Sprawdzenie aktualnych uprawnień
    getfacl /project_dir

    Wyjście powinno pokazać twoje ustawienia:

    # plik: /project_dir
    user::rwx
    user:user1:rwx
    user:user2:r--
  4. Ustaw uprawnienia domyślne:

    Aby wszystkie nowe pliki w katalogu automatycznie dziedziczyły uprawnienia ACL, ustawmy je domyślnie:

    sudo setfacl -d -m u:user1:rwx /project_dir
    sudo setfacl -d -m u:user2:r-- /project_dir
    

4. Sprawdzenie końcowej konfiguracji

  1. Zapora:

    • Upewnij się, że porty SSH i HTTP są dostępne, a reszta jest zablokowana. Spróbuj połączyć się z serwerem przez SSH i otworzyć stronę w przeglądarce.
  2. SELinux:

    • Sprawdź konteksty plików, aby upewnić się, że SELinux poprawnie ogranicza dostęp.
  3. ACL:

    • Zaloguj się jako użytkownicy user1 i user2 i spróbuj odczytać i zapisać plik w katalogu /project_dir.

Zadania praktyczne

  1. Skonfiguruj zaporę, pozwalającą tylko na dostęp przez SSH i HTTP.
  2. Włącz SELinux w trybie enforcing i upewnij się, że serwer web działa poprawnie.
  3. Skonfiguruj ACL dla katalogu /project_dir, aby user1 miał pełny dostęp, a user2 tylko prawo do odczytu.
  4. Sprawdź aktywnych użytkowników w systemie za pomocą polecenia who.

Te ćwiczenia pomogą Ci utrwalić wiedzę i zrozumieć, jak ją stosować w praktyce. I pamiętaj: bezpieczeństwo w Linuxie to nie tylko konfiguracje, ale i ciągła uwaga na szczegóły. Powodzenia!

1
Опрос
Praca z użytkownikami w Linuxie,  5 уровень,  5 лекция
недоступен
Praca z użytkownikami w Linuxie
Praca z użytkownikami w Linuxie
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION