Wprowadzenie do polecenia Firewalld i Firewall-CMD w Linux

Wprowadzenie do polecenia Firewalld i Firewall-CMD w Linux

Cel

Dowiedz się podstawowych pojęć Firewalld i sposobu interakcji z nim za pomocą narzędzia Firewall-CMD

Wymagania

  • Uprawnienia korzeniowe

Trudność

ŁATWY

Konwencje

  • # - Wymaga podanych poleceń Linuksa, które można wykonać z uprawnieniami root
    bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
  • $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Wstęp

Ponieważ wersja 7 Rhel i Centos oraz wersja 18 Fedory, Firewalld jest domyślnym systemem zapory. Jedną z jego bardziej charakterystycznych cech jest jego modułowość: działa na koncepcję połączenia strefy. W tym samouczku dowiemy się o tym więcej i jak wchodzić w interakcje Firewall-CMD pożytek.

Zapora oparta na strefach

Firewalld to zapora oparta na strefie: każdą strefę można skonfigurować do akceptowania lub odmowy niektórych usług lub portów, a zatem z innym poziomem bezpieczeństwa. Strefy mogą być powiązane z jednym lub więcej interfejsami sieciowymi. Zwykle zapora jest wyposażona w zestaw stref wstępnie skonfigurowanych: Aby wymienić te strefy, a bardziej ogólnie w interakcji z zaporą, użyjemy Firewall-CMD pożytek. Działam w systemie Fedora 27, sprawdźmy, jakie są dostępne strefy:

$ Firewall-CMD-get-streone fedoraserver fedoraworkstation blok dmz upuszcza zewnętrzne domy wewnętrzne zaufanie publiczne prace publiczne 


Jak widać, powyższe polecenie zwraca listę wszystkich dostępnych interfejsów w moim systemie. Ich nazwa jest dość wskazywna na ich cel, ale musimy wiedzieć, jakie usługi i porty są dostępne za pośrednictw. Każdy interfejs jest następnie konfigurowany z pewnymi wyjątkami, w zależności od usług, które muszą być dozwolone. Jeśli chcemy mieć listę wszystkich usług powiązanych ze strefą, możemy uruchomić Firewall-CMD z --usługi opcja. Jeśli strefa nie zostanie wyraźnie przekazana do polecenia, strefa domyślna zostanie zapytana:

# Firewall-Cmd--liter-all public (aktywny) Cel: Domyślna inwersja ICMP-BLOCK: Brak interfejsów: ENS5F5 Źródła: Usługi: SSH MDNS DHCPV6-CLIENT Porty: Protokoły: Maskarada: Brak napastników: źródło-porty: ICMP-BLOCKS: Rich Zasady: 

Polecenie zwróciło podsumowanie stanu strefy (w tym przypadku domyślny „publiczny”). Wśród innych rzeczy możesz wyraźnie zobaczyć, jakie interfejsy sieciowe są powiązane z tą strefą (ENS5F5 w tym przypadku) i jakie usługi są dozwolone (SSH, MDNS, DHCPV6-CLIENT). Jeśli chcemy pobrać informacje o konkretnej strefie bez debalia, powinniśmy przekazać nazwę strefy jako argument --strefa opcja. Na przykład, aby pobrać informacje o zewnętrzny strefa, uruchomilibyśmy:

# Firewall-CMD --Zone = zewnętrzny--list-all cel zewnętrzny: Domyślna inwersja ICMP-BLOCK: Brak interfejsów: Źródła: Usługi: SSH Porty: Protokoły: Maskarada: Tak. : bogate zasady: 


Manipulacja strefami

Jak powiedziano wcześniej, podczas korzystania z Firewall-CMD narzędzie, jeśli nie zostanie określona strefa, odwołuje się domyślnie. Możemy chcieć zmienić strefę domyślną. Powiedzmy na przykład, że chcemy ustawić strefę zewnętrzną jako domyślną:

# Firewall-CMD-SET-default = zewnętrzny

Preatty łatwe, prawda??. Teraz zobaczmy, jak możemy dodać lub usunąć usługi lub porty do określonej strefy. Przede wszystkim usługi są wstępnie skonfigurowanym zestawem portów powiązanych z określonym protokołem. Na przykład: ssh Usługa będzie obejmować Port TCP 22, podczas Samba Usługa zrozumie zestaw portów 139 i 445 TCP I 137 i 138 UDP. Korzystając z usług, możemy unikać konieczności zapamiętywania określonych portów za każdym razem. Powiedzmy, że chcemy dodać Samba Obsługa strefy zewnętrznej, tylko zrobilibyśmy:

# Firwall-CMD-Zone = zewnętrzny --add-service = sukces samba 

Firewalld Daemon odpowiedział powodzenie, Oznacza to, że wykonanie zakończyło się powodzeniem. Aby to zweryfikować, sprawdźmy usługi stref:

$ sudo firewall-cmd-Zone = zewnętrzne--list-services ssh samba 

Jak widać, użyliśmy --usługi listy opcja do tego celu. Wynik polecenia wyraźnie oznacza, że Samba Usługa została dodana do strefy. Jednak modyfikacje dokonane w ten sposób są tymczasowe i nie przetrwają ponownego uruchomienia Firewalld Demon. Sprawdźmy to. Najpierw ponownie załadujemy usługę:

 # Firewall-CMD--RELOOD

Następnie sprawdzamy ponownie usługi dozwolone w zewnętrzny strefa:

# Firewall-CMD-Zone = zewnętrzne--list-services SSH 

Jak widać, jedyna usługa dozwolona w zewnętrzny strefa jest ssh. Aby wprowadzić trwałą modyfikację strefy, musimy użyć --stały opcja:

 # Firewall-CMD --Permanent --Zone = zewnętrzny --add-service = samba

Stałe modyfikacje będą wymagały przeładowania zapory, aby stać się skutecznym.

Jeśli chcemy dokonać operacji odwrotnej, a zatem usuń usługę ze strefy, wykonalibyśmy:

 # Firewall-CMD --Permanent-Zone = zewnętrzny--Remove-Service = samba

Składnia jest bardzo intuicyjna i nie wymaga dalszego wyjaśnienia. Ale co jeśli chcemy dodać określony port zamiast serwisu? Składnia nieznacznie zmieniłaby się:

 # Firewall-CMD --Permanent --Zone = zewnętrzny --add-port = 139/tcp

Aby sprawdzić, czy port został dodany do strefy:

# Firewall-CMD-Zone = zewnętrzny--list-porty 139/TCP 

Operacja zakończyła się sukcesem. W ten sam sposób, aby usunąć port:

# Firewall-CMD --Permanent-Zone = zewnętrzny--Remove-port = 139/TCP


Tworzenie strefy niestandardowej

Do tej pory widzieliśmy tylko, jak modyfikować istniejące strefy. Możliwe jest również stworzenie nowych i jest to równie łatwe. Załóżmy, że chcemy utworzyć niestandardową strefę o nazwie Linuxconfig:

# Firewall-CMD --Permanent --New-Zone = Linuxconfig

Utworzono nową pustą strefę: domyślnie nie dozwolone usługi ani porty. Możliwe jest również utworzenie strefy poprzez załadowanie pliku konfiguracyjnego:

# Firewall-CMD --PerManent --New-Zone-From-File = File --Name = LinuxConfig

Gdzie plik jest ścieżką do pliku zawierającego definicję strefy. Zauważ, że podczas tworzenia lub usuwania strefy --stały Opcja jest obowiązkowa: błąd zostanie podniesiony, jeśli nie zostanie dostarczony.

Skojarzyć strefę z interfejsem

Tworzenie strefy to tylko pierwszy krok: musimy teraz kojarzyć ją z interfejsem sieciowym. Powiedzmy, że chcemy użyć naszej nowej strefy utworzonej, kojarząc ją z interfejsem Ethernet ENS5F5: Oto polecenie, które pozwól nam wykonać zadanie:

# Firewall-CMD --Permanent --zone = LinuxConfig --add-Interface = ENS5F5

Jeśli zapytamy o strefę przypisanych do niej interfejsów, powinniśmy zobaczyć:

# Firewall-CMD-Zone = Linuxconfig--list-interfaces ENS5F5 

Usunięcie interfejsu ze strefy jest równie łatwe, jak:

# Firewall-CMD--Remove-Interface = ENS5F5 --Zone = Linuxconfig


Bogate zasady

W niektórych sytuacjach może być konieczne stworzenie bardziej złożonej reguły, a nie tylko zezwolić na niektóre porty lub usługi w danej strefie. Na przykład możemy chcieć utworzyć regułę, aby zablokować pewien rodzaj ruchu z określonej maszyny. To jest co bogate zasady są dla. Zasada zasadniczo składa się z dwóch części: w pierwszej określamy warunki, które należy spełnić, aby reguła została zastosowana, aw drugim działanie do wykonania: zaakceptować, upuszczać, Lub odrzucić.

Powiedzmy, że chcemy zablokować ruch z maszyny za pomocą IP 192.168.0.37 W sieci lokalnej: oto sposób, w jaki skomponowalibyśmy naszą zasadę:

# Firewall-CMD --zone = LinuxConfig --add-Rich-Rule = "reguła \ family =" IPv4 "\ Adres źródłowy = 192.168.0.37 \ Nazwa usługi = ssh \ reject \ 

Aby dodać bogatą zasadę, użyliśmy --Dodaj-bogactwo Opcja, opisując regułę jako jej argument. Reguła zaczyna się od reguła Słowo kluczowe. Z rodzina Określiliśmy, że reguła dotyczy tylko IPv4 pakiety: jeśli to słowo kluczowe nie jest podane, reguła jest stosowana zarówno IPv4 I IPv6. Następnie dostarczyliśmy adres źródłowy, który pakiety muszą mieć, aby reguła została uruchomiona adres źródłowy. Z praca W tym przypadku określiliśmy rodzaj usługi dla reguły ssh. Na koniec zapewniliśmy działanie do wykonania, jeśli pakiet pasuje do reguły, w tym przypadku odrzucić. Jeśli teraz spróbujemy ustanowić połączenie SSH z maszyny z 192.168.0.37 IP, otrzymujemy:

SSH 192.168.0.35 SSH: Połącz się z hostem 192.168.0.35 Port 22: Odrzucone połączenie 

Ten powyżej jest naprawdę prosty, ale reguła może stać się naprawdę złożona. Powinieneś sprawdzić dokumentację zapory, aby zobaczyć wszystkie zakres dostępnych ustawień i opcji.

Tryb paniki

Tryb paniki to tryb, którego należy stosować tylko w sytuacjach, w których naprawdę poważne problemy z środowiskiem sieciowym. Gdy ten tryb jest aktywny, wszystkie istniejące połączenia są odrzucane, a wszystkie pakiety przychodzące i wychodzące są upuszczane. Można go włączyć:

# Firewall-Cmd--Panic-on

Aby wyjść z trybu paniki, polecenie to:

# Firewall-Cmd--Panic-Off

Możliwe jest nawet zapytanie Tryb paniki Status, uruchamianie:

# Firewall-CMD-Query-Panic

Te opcje są ważne tylko w czas wykonawczy i nie można go używać z --stały.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak zdefiniować niestandardową strefę zapory
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Pobierz Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Mastering Bash Script Loops
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Linux Pliki konfiguracyjne: Top 30 Najważniejsze