Blog / Baza Wiedzy

Jak skonfigurować firewalld na AlmaLinux, CentOS, Rocky Linux i Fedora: Kompletny przewodnik serwera

(Zaktualizowano: )
6 min czytania
Jak skonfigurować firewalld na AlmaLinux, CentOS, Rocky Linux i Fedora: Kompletny przewodnik serwera

Jeśli śledziłeś nasz przewodnik dotyczący zabezpieczania Ubuntu, prawdopodobnie nauczyłeś się o UFW. Ale po stronie Red Hat świata Linuksa, AlmaLinux, CentOS Stream, Rocky Linux i Fedora, domyślnym, oficjalnie wspieranym menedżerem zapory sieciowej jest firewalld.

Podczas gdy UFW zakłada, że twój serwer ma tylko jedno proste połączenie z internetem, firewalld używa koncepcji zwanej "Strefami". Pozwala to na posiadanie całkowicie różnych reguł dla twojego publicznego połączenia internetowego w porównaniu z twoją prywatną siecią lokalną łączącą serwery bazy danych.

Dla standardowego serwera WWW lub VPS jest jednak równie łatwy do skonfigurowania. Oto wszystko co musisz wiedzieć aby zabezpieczyć swój system.

Krok 1: Uruchom i włącz firewalld

Na większości dystrybucji rodziny RHEL, firewalld jest domyślnie zainstalowany ale może nie działać.

Uruchamianie sudo systemctl enable --now firewalld na AlmaLinux lub Rocky Linux aby uruchomić i włączyć usługę firewalld przy starcie systemu

sudo systemctl enable --now firewalld
sudo systemctl status firewalld

Jeśli status to "active (running)", wszystko w porządku. Jeśli nie jest zainstalowany, możesz go pobrać przez menedżer pakietów dnf:

sudo dnf install firewalld -y
sudo systemctl enable --now firewalld

Krok 2: Zrozumienie "Stref"

firewalld organizuje reguły w "strefy" na podstawie poziomu zaufania interfejsu sieciowego. Dla VPS podłączonego bezpośrednio do publicznego internetu, cały ruch zazwyczaj przechodzi przez strefę public.

Sprawdź w której strefie znajduje się twój główny interfejs sieciowy:

Uruchamianie sudo firewall-cmd --get-active-zones na AlmaLinux aby wyświetlić które strefy firewalld są aktywne i które interfejsy są do nich przypisane

sudo firewall-cmd --get-active-zones

Zobaczysz wynik podobny do tego:

public
  interfaces: eth0

Potwierdza to, że twoje aktywne połączenie internetowe (eth0) używa strefy public. Jeśli nie określisz inaczej, wszystkie uruchamiane polecenia będą dotyczyć tej domyślnej strefy.

Krok 3: Sprawdź swoje aktualne reguły

Zanim zaczniesz dodawać reguły, zobacz co jest już otwarte:

Uruchamianie sudo firewall-cmd --list-all na AlmaLinux aby wyświetlić wszystkie aktualnie aktywne reguły zapory i otwarte usługi w strefie publicznej

sudo firewall-cmd --list-all

Dystrybucje RHEL zazwyczaj mają domyślnie włączone ssh i dhcpv6-client abyś nie przypadkowo nie zablokował sobie dostępu. Reguła "odrzuć cały ruch przychodzący" jest niejawnie stosowana do wszystkiego co nie znajduje się na tej liście.

Krok 4: Zezwól na usługi i porty

Najczystszym sposobem użycia firewalld jest zezwalanie na predefiniowane usługi. "Usługa" w firewalld to po prostu oznaczona reguła dla jednego lub więcej portów.

Na przykład, aby otworzyć serwer na ruch WWW HTTP i HTTPS:

Uruchamianie sudo firewall-cmd --permanent --add-service=http aby trwale zezwolić na ruch HTTP przez firewalld na AlmaLinux lub Rocky Linux

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Flaga --permanent jest niezwykle ważna. Jeśli ją pominiesz, reguła jest stosowana natychmiast ale znika przy następnym restarcie serwera. Dodając --permanent, reguła jest zapisywana na dysku, zapewniając przetrwanie restartu systemu.

Otwieranie konkretnych portów

Jeśli uruchamiasz niestandardową aplikację, powiedzmy, aplikację Node.js na porcie 3000, użyj formatu portu zamiast tego:

sudo firewall-cmd --permanent --add-port=3000/tcp

Usuwanie reguł

Dodałeś coś przez pomyłkę? Polecenie odwrotne jest identyczne, po prostu zamień "add" na "remove":

sudo firewall-cmd --permanent --remove-port=3000/tcp

Krok 5: Przeładuj i zweryfikuj

Ponieważ użyłeś flagi --permanent w Kroku 4, żadne z twoich nowych reguł jeszcze nie działa aktywnie. Istnieją tylko na dysku. Aby przesłać zapisane reguły do aktywnego stanu zapory, musisz przeładować:

Uruchamianie sudo firewall-cmd --reload na AlmaLinux aby zastosować trwałe zmiany reguł zapory bez restartowania serwera

sudo firewall-cmd --reload

Na koniec uruchom --list-all ponownie aby zweryfikować, że twoje nowe polityki są na miejscu:

Uruchamianie sudo firewall-cmd --list-all po przeładowaniu na AlmaLinux aby potwierdzić że nowe reguły HTTP i HTTPS są teraz aktywne

sudo firewall-cmd --list-all

Powinieneś zobaczyć nowo dodane usługi i porty pod liniami services: i ports:.

Zaawansowane: Zezwalanie na konkretne IP

Co jeśli masz bazę danych MySQL na porcie 3306 i chcesz aby tylko twój serwer aplikacyjny (203.0.113.55) miał do niej dostęp, nie cały internet?

Możesz użyć "Rich Rule" aby trwale powiązać port z konkretnym źródłowym IP:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.55" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

Podsumowanie

Po skonfigurowaniu, firewalld działa cicho w tle zabezpieczając system. Ponieważ natywnie integruje się z rdzeniem Fedory, Rocky, CentOS i AlmaLinux, elegancko obsługuje złożone operacje takie jak mostkowanie kontenerów czy routowanie sieci wewnętrznych. Połączone z fail2ban, twój serwer jest wysoce odporny na ogólne próby siłowe botów internetowych.

Aby przetestować swoje umiejętności bezpieczeństwa w aktywnym internecie bez ryzykowania jakichkolwiek produkcyjnych danych, sprawdzenie tymczasowego, niskopoziomowego Budget VPS jest taniym, niezawodnym sposobem na praktykowanie konfiguracji nieprzeniknionego systemu RHEL.

Najczęściej zadawane pytania

Firewalld to dynamiczny menedżer zapory sieciowej oparty na strefach (zones), stosowany głównie w systemach z rodziny RHEL (AlmaLinux, Rocky Linux, CentOS, Fedora). W przeciwieństwie do UFW, pozwala na przypisywanie różnych reguł bezpieczeństwa dla różnych interfejsów sieciowych.
Bez flagi --permanent reguły są stosowane tylko w pamięci podręcznej i znikną przy restarcie serwera. Flaga ta zapisuje zmiany na dysku, dzięki czemu są one trwałe (wymagają przeładowania zapory za pomocą --reload, aby weszły w życie).
Możesz zatrzymać zaporę wpisując sudo systemctl stop firewalld. Aby zapobiec jej automatycznemu uruchamianiu przy starcie systemu, wpisz dodatkowo sudo systemctl disable firewalld.
Domyślną strefę sprawdzisz za pomocą polecenia: sudo firewall-cmd --get-default-zone. Na świeżej instalacji domyślną strefą jest zazwyczaj strefa 'public'.
Bogata reguła (Rich Rule) to zaawansowana dyrektywa konfiguracyjna, która pozwala na tworzenie bardzo precyzyjnych zasad zapory, na przykład zezwolenie na ruch na konkretnym porcie tylko i wyłącznie dla wybranego adresu IP.

Sugeruj poprawki na GitHubie

Zauważyłeś literówkę lub chcesz ulepszyć ten poradnik? Ten wpis jest open-source i możesz go edytować.

Edytuj ten wpis
Wróć do listy wpisów

Języki