Wprowadzenie do polecenia Firewalld i Firewall-CMD w Linux
- 4349
- 640
- Tomasz Szatkowski
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
- « Jak zainstalować i weryfikować portfel Electrrum Bitcoin w Linux
- Jak uzyskać informacje o baterii laptopa i stan ładowania w Linux »