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
Sprawdź status UFW. Nie zainstalowane? Zainstalujemy!
# Sprawdzanie UFW sudo ufw status
Instalacja i uruchomienie UFW.
# Instalacja (jeśli to konieczne) sudo apt install ufw # Włączamy zaporę sudo ufw enable
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
Weryfikacja: Po ustawieniu powinieneś zobaczyć coś w stylu:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Jeśli polecenie mówi, że "zapora jest wyłączona", należy to poprawić.
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
Sprawdzanie aktualnego statusu:
# Sprawdzamy, czy SELinux jest włączony sestatus
Jeśli tryb pokazuje
disabled
, trzeba go włączyć przez plik konfiguracyjny.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
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.
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
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
.
Utwórz katalog:
sudo mkdir /project_dir
Ustaw uprawnienia dostępu:
Przyznajmy
user1
pełen dostęp, auser2
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
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--
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
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.
SELinux:
- Sprawdź konteksty plików, aby upewnić się, że SELinux poprawnie ogranicza dostęp.
ACL:
- Zaloguj się jako użytkownicy
user1
iuser2
i spróbuj odczytać i zapisać plik w katalogu/project_dir
.
- Zaloguj się jako użytkownicy
Zadania praktyczne
- Skonfiguruj zaporę, pozwalającą tylko na dostęp przez SSH i HTTP.
- Włącz SELinux w trybie
enforcing
i upewnij się, że serwer web działa poprawnie. - Skonfiguruj ACL dla katalogu
/project_dir
, abyuser1
miał pełny dostęp, auser2
tylko prawo do odczytu. - 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!
GO TO FULL VERSION