Jak instalować, konfigurować i używać zapory ogniowej w Centos i Ubuntu
- 4384
- 520
- Juliusz Janicki
Firewalld (Demon Firewall) jest alternatywą dla iptables Usługa, do dynamicznego zarządzania zaporą systemu z obsługą stref sieciowych (lub zapory) i zapewnia interfejs D-Bus do zarządzania konfiguracją. Jest łatwy w użyciu i konfiguracji, a teraz jest to domyślne narzędzie do zarządzania zaporą zapory RHEL/CENTOS, Fedora i kilka innych rozkładów Linux.
W tym artykule omówimy, jak skonfigurować systemy zapory systemowej Firewalld i zaimplementuj podstawowe filtrowanie pakietów Centos/Rhel 7 I Ubuntu.
Podstawy zapory ogniowej
Firewalld obejmuje trzy warstwy, które są:
- warstwa rdzenia: Odpowiedzialny za obsługę konfiguracji i tylnych końców (wymienione poniżej).
- Interfejs D-Bus: Podstawowy sposób zmiany i tworzenia konfiguracji zapory.
- Backends: do interakcji z Netfilter (natywny moduł jądra używany do zapory). Obejmują one iptables, ip6Tables, eBTables, ipset, nft, linnftables; NetworkManager; i moduły.
Zarządza regułami zapory, wdrażając strefy sieci/zapory, które określają poziom zaufania połączeń sieciowych lub interfejsów. Inne obsługiwane funkcje zapory obejmują usługi, konfiguracja bezpośrednia (używana do bezpośredniego przekazywania surowej składni iptables), ipsets, a także typów ICMP.
Dwa rodzaje środowisk konfiguracyjnych są obsługiwane przez Firewalld:
- Konfiguracja środowiska wykonawczego, która jest skuteczna tylko do momentu ponownego uruchomienia maszyny lub usługi zapory ogniowej
- Stała konfiguracja, która jest zapisywana i działa uporczywie.
Narzędzie wiersza poleceń Firewall-CMD służy do zarządzania czasem wykonywania i konfiguracji stałej. Alternatywnie możesz użyć narzędzia konfiguracji graficznego interfejsu użytkownika Firewall-Config (GUI) do interakcji z demem.
Ponadto, Firewalld Oferuje dobrze zdefiniowany interfejs dla innych lokalnych usług lub aplikacji, aby bezpośrednio żądać zmian w zasadach zapory, jeśli działają z uprawnieniami root.
Globalny plik konfiguracyjny dla Firewalld znajduje się pod adresem /etc/firewalld/firewalld.conf a funkcje zapory są skonfigurowane w formacie XML.
Zrozumienie ważnych funkcji zapory
Główną cechą Firewalld jest strefy sieci/zapory. Każda inna funkcja jest ograniczona do strefy. Strefa zapory opisuje poziom zaufania dla połączenia, interfejsu lub wiązania adresu źródłowego.
Domyślna konfiguracja jest wyposażona w szereg predefiniowanych stref posortowanych zgodnie z domyślnym poziomem zaufania stref od niezaufanych do zaufanych: upuszczenie, blok, publiczny, zewnętrzny, DMZ, praca, dom, wewnętrzny i zaufany. Są one zdefiniowane w plikach przechowywanych w ramach /usr/lib/firewalld/strefy informator.
Możesz skonfigurować lub dodać strefy niestandardowe za pomocą klienta CLI lub po prostu utworzyć lub skopiować plik strefy /etc/firewalld/strefy z istniejących plików i edytuj je.
Kolejną ważną koncepcją w ramach Firewalld są usługi. Usługa jest definiowana za pomocą portów i protokołów; Te definicje reprezentują daną usługę sieciową, taką jak serwer WWW lub usługa dostępu zdalnego. Usługi są zdefiniowane w plikach przechowywanych w ramach /usr/lib/firewalld/usługi/ Lub /itp./Firewalld/Services/ informator.
Jeśli znasz podstawowe koncepcje iP6Tables/EBTables, możesz również użyć bezpośredniego interfejsu (lub konfiguracji), aby uzyskać bezpośredni dostęp do zapory. Ale dla osób bez żadnej wiedzy IPTABLES możesz zastosować bogaty język do tworzenia bardziej złożonych reguł zapory dla IPv4 i IPv6.
Jak zainstalować pakiet Firewalld w Linux
NA Centos 7, Firewalld Pakiet jest wstępnie zainstalowany i możesz zweryfikować za pomocą następującego polecenia.
$ rpm -qa firewalld
NA Ubuntu 16.04 I 18.04, Możesz go zainstalować za pomocą domyślnego menedżera pakietów, jak pokazano.
$ sudo apt instal instaluj zaporę ogniową
Jak zarządzać usługą zapory w Linux
Firewalld to zwykła usługa SystemD, którą można zarządzać za pośrednictwem polecenia SystemCtl.
$ sudo systemctl start firewalld #Start Usługa Ze tymczas $ sudo systemctl Włącz zaporę #enable Usługa do automatycznego start w czasie uruchamiania $ sudo systemCtl Status zapory #View Status usługi
Po rozpoczęciu Firewalld usługa, możesz również sprawdzić, czy demon działa, czy nie, używając Firewall-CMD narzędzie (w przypadku, gdy nie jest aktywne, to polecenie wyprowadzi „nie działa”).
$ sudo firewall-cmd-stateSprawdź status zapory ogniowej
Jeśli zdarzy ci się zapisać jakiekolwiek zmiany na stałe, możesz ponownie załadować zaporę ogniową. To ponownie załaduje zasady zapory i zachowuje informacje o stanie. Obecna konfiguracja stała stanie się nową konfiguracją środowiska wykonawczego.
$ sudo firewall-cmd-odpowiadanie
Jak pracować ze strefami zapory w zaporze ogniowej
Aby uzyskać listę wszystkich dostępnych stref i usług zapory, uruchom te polecenia.
$ sudo firewall-cmd-get-streone $ sudo firewall-cmd-get-services
Domyślną strefą jest strefa używana dla każdej funkcji zapory, która nie jest wyraźnie ograniczona do innej strefy. Można uzyskać zestaw strefy domyślnej dla połączeń sieciowych i interfejsów, uruchamiając.
$ sudo firewall-cmd-get-default-streoneLista domyślna strefa zapory ogniowej
Aby ustawić domyślną strefę, na przykład na zewnętrzne, użyj następującego polecenia. Zauważ, że dodanie opcji --stały
Ustawia konfigurację na stałe (lub umożliwia zapytanie informacji ze stałego środowiska konfiguracyjnego).
$ sudo firewall-cmd-e-set-default-streone = zewnętrzny lub $ sudo firewall-cmd-set-default-st-st-st-st-st-st-
Następnie spójrzmy, jak dodać interfejs do strefy. Ten przykład pokazuje, jak dodać adapter sieci bezprzewodowej (WLP1S0) do domu strefy, który jest używany w obszarach domowych.
$ sudo firewall-cmd-Zone = home --add-interface = wlp1s0Dodaj interfejs do strefy Firewalld
Interfejs można dodać tylko do jednej strefy. Aby przenieść go do innej strefy, użyj --Zmiana interfejsu
przełącz jak pokazano lub usuń go z poprzedniej strefy za pomocą -Usuń interfejs Przełącz, a następnie dodaj go do nowej strefy.
Zakładając, że chcesz połączyć się z publiczną siecią Wi-Fi, powinieneś przenieść swój interfejs bezprzewodowy z powrotem do strefy publicznej, tak:
$ sudo firewall-cmd --zone = public --add-interface = wlp1s0 $ sudo firewall-cmd --zone = public --change-Interface = wlp1s0Zmień interfejs strefy w Firewalld
Możesz użyć wielu stref jednocześnie. Aby uzyskać listę wszystkich stref aktywnych z włączonymi funkcjami, takimi jak interfejsy, usługi, porty, protokoły, uruchom:
$ sudo firewall-cmd-get-active-strenyWypisz aktywne strefy w Firewalld
W odniesieniu do poprzedniego punktu, jeśli chcesz znaleźć więcej informacji o określonej strefie, ja.e wszystko dodane lub włączone, użyj jednego z tych poleceń:
$ sudo firewall-cmd-strepe = home--list-all lub $ sudo firewall-cmd--info-stref publicZnajdź informacje o strefie zapory
Inną przydatną opcją jest --Get-cel
, który pokazuje cel stałej strefy. Cel jest jednym z: domyślnych, akceptuj, upuszczania, odrzucenia. Możesz sprawdzić cel różnych stref:
$ sudo firewall-cmd --Permanent --zone = public-get-cel $ sudo firewall-cmd --Permanent --zone = blok --get-cel $ sudo firewall-cmd --Permanent --zone = dmz- -Get-Target $ sudo firewall-cmd --PerManent --zone = zewnętrzny --get-cel $ sudo firewall-cmd --Permanent --zone = drop --get-celget
Jak otwierać i blokować porty w Firewalld
Aby otworzyć port (lub kombinację portu/protokołu) w zaporze, po prostu dodaj go w strefie z --Dodatek
opcja. Jeśli nie określisz wyraźnie strefy, będzie ona włączona w strefie domyślnej.
Poniższy przykład pokazuje, jak dodać port 80 I 443 Aby umożliwić ruch w sieci za pośrednictwem Http I Https Protokoły odpowiednio:
$ sudo firewall-cmd --zone = public --Permanent --add-port = 80/tcp --add-port = 443/tcp
Następnie ponownie załaduj zaporę ogniową i ponownie sprawdź włączone funkcje w strefie publicznej, powinieneś być w stanie zobaczyć właśnie dodane porty.
$ sudo firewall-cmd-rela jest $ sudo firewall-cmd--info-strefe public
Blokowanie lub zamykanie portu w zaporze jest równie łatwe, po prostu usuń go ze strefy z --Usuń-port
opcja. Na przykład, aby zamknąć porty 80 I 443 w strefie publicznej.
$ sudo firewall-cmd --zone = public --Permanent--Remove-Port = 80/tcp--Remove-Port = 443/TCP
Zamiast korzystać z kombinacji portu lub protokołu, możesz użyć nazwy usługi, do której przypisany jest port w następnej sekcji.
Jak otwierać i blokować usługi w Firewalld
Aby otworzyć usługę w zaporze, włącz ją za pomocą --Dodatek
opcja. Jeśli strefa zostanie pominięta, zostanie użyta strefa domyślna.
Poniższe polecenie na stałe włączy usługę HTTP w strefie publicznej.
$ sudo firewall-cmd-stzone = public --Permanent --add-service = http $ sudo firewall-cmd--relacje
--usuń usługę
Można użyć opcji do wyłączenia usługi.
$ sudo firewall-cmd-Zone = public --Permanent--Remove-Service = http $ sudo firewall-cmd-RELOAD
Jak włączyć i wyłączyć IP udawanie za pomocą zapory ogniowej
IP udawanie (znany również jako Ipmasq Lub Masq) jest Nat (Tłumaczenie adresu sieciowego) Mechanizm w sieci Linux, który umożliwia hostom w sieci, z prywatnymi adresami IP do komunikacji z Internetem za pomocą Serwera Linux (Gateway IPMASQ) Przypisany publiczny adres IP.
To mapowanie jeden do wielu. Ruch z twoich niewidzialnych hostów pojawi się innym komputerom w Internecie, jakby pochodziło z twojego serwera Linux.
Możesz włączyć IP udającego w pożądanej strefie, na przykład strefę publiczną. Ale zanim to zrobił, najpierw sprawdź, czy maswanka jest aktywna, czy nie (a "NIE" oznacza jego niepełnosprawne i "Tak" oznacza inaczej).
$ sudo firewall-cmd-Zone = public-Query-MasQuerade $ sudo firewall-cmd-Zone = public --add-Masquerade
Typowym przypadkiem użycia dla masy jest wykonywanie przekierowania portów. Zakładając, że chcesz SSH z zdalnego urządzenia do hosta w sieci wewnętrznej z IP 10.20.1.3, na którym demon SSHD słucha na porcie 5000.
Możesz przesłać wszystkie połączenia do portu 22 na serwerze Linux do zamierzonego portu na docelowym hoście, wydając:
$ sudo firewall-cmd --zone = public --add-forward-port = port = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3
Aby wyłączyć udręki w strefie, użyj --Usuń Masquerade
przełącznik.
$ sudo firewall-cmd-stzone = public--Remove-Masquerade
Jak włączyć i wyłączyć wiadomość IMCP w Firewalld
ICMP (Protokół komunikatu kontroli Internetu) Wiadomości to żądania informacji lub odpowiedzi na żądania informacji lub w warunkach błędów.
Możesz włączyć lub wyłączyć komunikaty ICMP w zaporze, ale przed tym pierwszą listą wszystkich obsługiwanych typów ICMP.
$ sudo firewall-cmd-get-icmppesLista obsługiwane typy ICMP w Firewalld
Aby dodać lub usunąć typ bloku, który chcesz.
$ sudo firewall-cmd --zone = home --add-icmp-block = echo-reply lub $ sudo firewall-cmd --zone = home--remove-icmp-block = echo-reportly
Możesz wyświetlić wszystkie typy ICMP dodane w strefie za pomocą --List-ICMP-Blocks
przełącznik.
$ sudo firewall-cmd-ze-gimnasty
Jak używać bezpośredniego interfejsu do przekazywania surowych poleceń iptables
Firewall-CMD zapewnia również bezpośrednie opcje (--bezpośredni
) Aby uzyskać bardziej bezpośredni dostęp do zapory. Jest to przydatne dla osób z podstawową wiedzą na temat iptables.
Ważny: Powinieneś używać bezpośrednich opcji jako ostateczności, gdy nie można używać regularnego Firewall-CMD Opcje wyjaśnione powyżej.
Oto przykład przejścia surowej reguły iptables, używając --Dodaj-rule
przełącznik. Możesz łatwo usunąć te reguły, zastępując --Dodaj-rule
z --Usuń Rule
:
$ sudo firewall -cmd - -Direct --add -rule IPv4 Filter in_public_allow 0 -m tcp -p tcp -dport 80 -J Zaakceptuj
Aby uzyskać więcej informacji o iptables, Zobacz ten przewodnik: Jak skonfigurować zaporę IPTABLES, aby umożliwić zdalny dostęp do usług w Linux.
Jeśli nie znasz składni IPTABLES, możesz wybrać Firewalld's „bogaty język”Aby stworzyć bardziej złożone zasady zapory w łatwy do zrozumienia, jak wyjaśniono następne.
Jak używać bogatego języka w zaporze ogniowej
bogaty język (znany również jako bogate zasady) służy do dodawania bardziej złożonych zasad zaporowych dla IPv4 I IPv6 Bez znajomości składni iptables.
Rozszerza funkcje strefy (usługa, port, blok ICMP, maskarada i poród naprzód), które omówiliśmy. Obsługuje adresy źródłowe i docelowe, rejestrowanie, działania i limity dzienników i akcji.
--Dodaj-bogactwo
służy do dodawania bogatych zasad. Ten przykład pokazuje, jak zezwolić na nowe IPv4 I IPv6 Połączenia serwisu HTTP i log 1 na minutę za pomocą audytu:
$ sudo firewall-cmd --add-rich-rule = 'Nazwa usługi reguły = "http" Audyt limit wartość = "1/m" akceptuj' '
Aby usunąć dodaną regułę, wymień --Dodaj-bogactwo
opcja z --usuń bogatą rolę
.
$ sudo firewall-cmd--Remove-Rich-Rule = 'Nazwa usługi reguły = "http" Wartość limitu audytu = "1/m" akceptuj' '
Ta funkcja pozwala również na blokowanie lub umożliwienie ruchu z określonego adresu IP. Poniższy przykład pokazuje, jak odrzucić połączenia z IP 10.20.1.20.
$ sudo firewall-cmd-stzone = public --add-bogacko-rule = 'reguła rodzina = "ipv4" adres źródłowy = "192.168.0.254 „Odrzucaj”
Jak włączyć i wyłączyć tryb paniki w zaporze ogniowej
Tryb paniki to tryb specjalny pod zaporą ogniową, w którym wszystkie pakiety w obrębie i poza.
Możesz włączyć ten tryb w sytuacjach awaryjnych, w których zagrożenie dla środowiska sieciowego wychodzi.
Aby zapytać o tryb paniki, użyj --Zapytanie-panica
opcja.
$ sudo firewall-cmd-Query-Panic
Aby włączyć tryb paniki, użyj --Panika
opcja. Możesz przetestować, czy działa przy użyciu polecenia ping, jak pokazano. Ponieważ pakiet jest upuszczony, nazwa www.Google.com nie można rozwiązać, stąd wyświetlony błąd.
$ sudo firewall-cmd--panic-on $ ping -c 2 www.Google.comWłącz tryb paniki w zaporze ogniowej
Aby wyłączyć tryb paniki, użyj --Paniki
opcja.
$ sudo firewall-cmd--panic-off
Jak zablokować zaporę ogniową
Pamiętaj, że wspominaliśmy pod podstawami o zaporze ogniowej, że lokalne aplikacje lub usługi są w stanie zmienić konfigurację zapory, jeśli działają z uprawnieniami root. Możesz kontrolować, które aplikacje mogą żądać zmian w zaporze, określając, a następnie w białej białej.
Ta funkcja jest domyślnie wyłączona, możesz włączyć lub wyłączyć za pomocą --Lokowanie
Lub --izolacja
przełącz receptywnie.
$ sudo firewall-cmd-lockdown-on lub $ sudo firewall-cmd--lockdown-off
Zauważ, że zaleca się włączenie lub wyłączenie tej funkcji poprzez edycję głównego pliku konfiguracyjnego, ponieważ Firewall-CMD może nie istnieć na blokady białej lobowowej, gdy włączysz blokadę.
$ sudo vim/etc/firewalld/firewalld.conf
Znajdź parametr Izolacja i zmień swoją wartość z NIE
(oznacza) do Tak
(oznacza).
LockDown = Tak
Aby to ustawienie stałe przeładuj zaporę ogniową.
$ sudo firewall-cmd-odpowiadanie
Streszczenie
Firewalld jest łatwym w użyciu wymiany dla usługi IPTABLES, która wykorzystuje iptables jako backend. W tym artykule pokazaliśmy, jak zainstalować pakiet Firewalld, wyjaśniliśmy ważne funkcje Firewalld i omówiliśmy, jak je skonfigurować w środowiskach wykonawczych i stałych konfiguracji.
Jeśli masz jakieś pytania lub komentarze, skontaktuj się z nami za pośrednictwem poniższego formularza komentarza. Więcej informacji można odwołać się do strony manualnej zapory (Man Firewalld) lub dokumentacji Firewalld na stronie internetowej projektu, aby uzyskać więcej informacji.
- « NIX - Menedżer pakietu czysto funkcjonalnego dla Linux
- Hegemon - narzędzie do monitorowania systemu modułowego dla Linuksa »