Настройка firewall в CentOS 7 (firewalld)
Spisu treści:
- Wymagania wstępne
- Podstawowe pojęcia dotyczące zapory ogniowej
- Strefy zapory ogniowej
- Usługi zapory ogniowej
- Firewalld Runtime and Permanent Settings
- Instalowanie i włączanie FirewallD
- Praca ze strefami zapory ogniowej
- Zmiana strefy interfejsu
- Zmiana strefy domyślnej
- Otwieranie portu lub usługi
- Tworzenie nowej usługi FirewallD
- Port przekazywania z zaporą ogniową
- Tworzenie zestawu reguł za pomocą FirewallD
- Wniosek
Prawidłowo skonfigurowana zapora ogniowa jest jednym z najważniejszych aspektów ogólnego bezpieczeństwa systemu.
FirewallD to kompletne rozwiązanie zapory ogniowej, które zarządza regułami systemu iptables i zapewnia interfejs D-Bus do ich obsługi. Począwszy od CentOS 7, FirewallD zastępuje iptables jako domyślne narzędzie do zarządzania zaporą.
W tym samouczku pokażemy, jak skonfigurować zaporę ogniową za pomocą FirewallD w systemie CentOS 7 i wyjaśnimy podstawowe pojęcia FirewallD.
Wymagania wstępne
Przed rozpoczęciem tego samouczka upewnij się, że jesteś zalogowany na serwerze za pomocą konta użytkownika z uprawnieniami sudo lub użytkownika root. Najlepszą praktyką jest uruchamianie poleceń administracyjnych jako użytkownik sudo zamiast root. Jeśli nie masz użytkownika sudo w swoim systemie CentOS, możesz go utworzyć, postępując zgodnie z tymi instrukcjami.
Podstawowe pojęcia dotyczące zapory ogniowej
FirewallD używa koncepcji stref i usług zamiast łańcucha i reguł iptables. W oparciu o strefy i usługi, które skonfigurujesz, możesz kontrolować, jaki ruch jest dozwolony lub zabroniony do iz systemu.
FirewallD może być konfigurowany i zarządzany za pomocą narzędzia wiersza polecenia
firewall-cmd
.
Strefy zapory ogniowej
Strefy to predefiniowane zestawy reguł określające, jaki ruch powinien być dozwolony na podstawie poziomu zaufania w sieciach, do których komputer jest podłączony. Możesz przypisać interfejsy sieciowe i źródła do strefy.
Poniżej znajdują się strefy dostarczone przez FirewallD uporządkowane według poziomu zaufania strefy od niezaufanego do zaufanego:
- drop: wszystkie połączenia przychodzące są odrzucane bez powiadomienia. Dozwolone są tylko połączenia wychodzące. blok: Wszystkie połączenia przychodzące są odrzucane z komunikatem
icmp6-adm-prohibiteddla hosta IPmp dlaIPv4i dla IPv6nicmp6-adm-prohibiteddlaicmp6-adm-prohibited. Dozwolone są tylko połączenia wychodzące. public: Do użytku w niezaufanych miejscach publicznych. Nie ufasz innym komputerom w sieci, ale możesz zezwolić na wybrane połączenia przychodzące. zewnętrzne: Do użytku w sieciach zewnętrznych z włączonym maskowaniem NAT, gdy system działa jako brama lub router. Dozwolone są tylko wybrane połączenia przychodzące. wewnętrzna: Do użytku w sieciach wewnętrznych, gdy system działa jako brama lub router. Inne systemy w sieci są ogólnie zaufane. Dozwolone są tylko wybrane połączenia przychodzące. dmz: Używany dla komputerów znajdujących się w strefie zdemilitaryzowanej, które mają ograniczony dostęp do reszty sieci. Dozwolone są tylko wybrane połączenia przychodzące. praca: Używany do maszyn roboczych. Inne komputery w sieci są ogólnie zaufane. Dozwolone są tylko wybrane połączenia przychodzące. home: Używany do maszyn domowych. Inne komputery w sieci są ogólnie zaufane. Dozwolone są tylko wybrane połączenia przychodzące. zaufany: wszystkie połączenia sieciowe są akceptowane. Ufaj wszystkim komputerom w sieci.
Usługi zapory ogniowej
Usługi zapory ogniowej to predefiniowane reguły obowiązujące w strefie i określające niezbędne ustawienia umożliwiające ruch przychodzący do określonej usługi.
Firewalld Runtime and Permanent Settings
Firewalld używa dwóch oddzielnych zestawów konfiguracji, środowiska wykonawczego i konfiguracji stałej.
Konfiguracja środowiska wykonawczego jest faktyczną konfiguracją działającą i nie jest trwała przy ponownym uruchomieniu. Po uruchomieniu usługi zapory ładuje konfigurację stałą, która staje się konfiguracją środowiska wykonawczego.
Domyślnie podczas wprowadzania zmian w konfiguracji Firewalld za pomocą narzędzia
firewall-cmd
zmiany są stosowane w konfiguracji środowiska wykonawczego. Aby zmiany były trwałe, musisz użyć opcji
--permanent
.
Instalowanie i włączanie FirewallD
-
Firewalld jest instalowany domyślnie na CentOS 7, ale jeśli nie jest zainstalowany w twoim systemie, możesz zainstalować pakiet, wpisując:
sudo yum install firewalldUsługa zapory jest domyślnie wyłączona. Możesz sprawdzić stan zapory za pomocą:
sudo firewall-cmd --stateAby uruchomić usługę FirewallD i włączyć ją podczas rozruchu:
sudo systemctl start firewalldsudo systemctl enable firewalld
Praca ze strefami zapory ogniowej
Po włączeniu usługi FirewallD po raz pierwszy strefa
public
jest ustawiana jako strefa domyślna. Możesz wyświetlić strefę domyślną, wpisując:
sudo firewall-cmd --get-default-zone
public
Aby uzyskać listę wszystkich dostępnych stref, wpisz:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Domyślnie wszystkim interfejsom sieciowym przypisana jest strefa domyślna. Aby sprawdzić, które strefy są używane przez interfejs sieciowy:
sudo firewall-cmd --get-active-zones
public interfaces: eth0 eth1
Powyższy wynik mówi nam, że oba interfejsy
eth0
i
eth1
są przypisane do strefy publicznej.
Możesz wydrukować ustawienia konfiguracji strefy za pomocą:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Z powyższego wyniku wynika, że strefa publiczna jest aktywna i ustawiona jako domyślna, używana zarówno przez interfejsy
eth0
jak i
eth1
. Ponadto dozwolone są połączenia związane z klientem DHCP i SSH.
sudo firewall-cmd --list-all-zones
Polecenie drukuje ogromną listę z ustawieniami wszystkich dostępnych stref.
Zmiana strefy interfejsu
Możesz łatwo zmienić Strefę Interfejsu, używając opcji
--zone
w połączeniu z opcją
--change-interface
. Następujące polecenie przypisze interfejs
eth1
do strefy pracy:
sudo firewall-cmd --zone=work --change-interface=eth1
Sprawdź zmiany, wpisując:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
Zmiana strefy domyślnej
Aby zmienić strefę domyślną, użyj opcji
--set-default-zone
, a następnie nazwy strefy, którą chcesz ustawić jako domyślną.
Na przykład, aby zmienić domyślną strefę na domową, uruchom następujące polecenie:
sudo firewall-cmd --set-default-zone=home
Sprawdź zmiany za pomocą:
sudo firewall-cmd --get-default-zone
Otwieranie portu lub usługi
Za pomocą FirewallD możesz zezwolić na ruch dla określonych portów w oparciu o predefiniowane reguły zwane usługami.
Aby uzyskać listę wszystkich domyślnych dostępnych usług, należy:
sudo firewall-cmd --get-services

Więcej informacji o każdej usłudze można znaleźć, otwierając powiązany plik.xml w katalogu
/usr/lib/firewalld/services
. Na przykład usługa HTTP jest zdefiniowana w następujący sposób:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
Aby zezwolić na przychodzący ruch HTTP (port 80) dla interfejsów w strefie publicznej, tylko dla bieżącej sesji (konfiguracja środowiska wykonawczego):
sudo firewall-cmd --zone=public --add-service=http
Jeśli modyfikujesz strefę domyślną, możesz
--zone
opcję
--zone
.
Aby sprawdzić, czy usługa została pomyślnie dodana, użyj opcji
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
sudo firewall-cmd --permanent --zone=public --add-service=http
Użyj
--list-services
wraz z opcją
--permanent
, aby zweryfikować zmiany:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
Składnia usuwania usługi jest taka sama, jak podczas dodawania usługi. Wystarczy użyć opcji
--remove-service
zamiast opcji
--add-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
Powyższe polecenie usuwa usługę http ze stałej konfiguracji strefy publicznej.
Co się stanie, jeśli korzystasz z aplikacji takiej jak Plex Media Server, dla której nie ma dostępnej odpowiedniej usługi?
W takich sytuacjach masz dwie opcje. Możesz otworzyć odpowiednie porty lub zdefiniować nową usługę FirewallD.
Na przykład serwer Plex nasłuchuje na porcie 32400 i używa protokołu TCP, aby otworzyć port w strefie publicznej dla bieżącej sesji, użyj opcji
--add-port=
:
sudo firewall-cmd --zone=public --add-port=32400/tcp
Protokoły mogą mieć postać
tcp
lub
udp
.
Aby sprawdzić, czy port został pomyślnie dodany, użyj opcji
--list-ports
:
sudo firewall-cmd --zone=public --list-ports
32400/tcp
Aby port
32400
pozostawał otwarty po ponownym uruchomieniu, dodaj regułę do ustawień stałych, uruchamiając to samo polecenie, używając opcji
--permanent
.
Składnia usuwania portu jest taka sama, jak podczas dodawania portu. Wystarczy użyć opcji
--remove-port
zamiast opcji
--add-port
.
sudo firewall-cmd --zone=public --remove-port=32400/tcp
Tworzenie nowej usługi FirewallD
Jak już wspomniano, usługi domyślne są przechowywane w katalogu
/usr/lib/firewalld/services
. Najłatwiejszym sposobem utworzenia nowej usługi jest skopiowanie istniejącego pliku usługi do katalogu
/etc/firewalld/services
, który jest miejscem dla usług utworzonych przez użytkownika i zmodyfikowanie ustawień pliku.
Na przykład, aby utworzyć definicję usługi dla Plex Media Server, możemy użyć pliku usługi SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
Otwórz nowo utworzony plik
plexmediaserver.xml
i zmień krótką nazwę i opis usługi w
port
, który określa numer portu i protokół, który chcesz otworzyć.
W poniższym przykładzie otwieramy porty
1900
UDP i
32400
TCP.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
Zapisz plik i ponownie załaduj usługę FirewallD:
sudo firewall-cmd --reload
Możesz teraz korzystać z usługi
plexmediaserver
w swoich strefach tak samo, jak innych usług.
Port przekazywania z zaporą ogniową
Aby przekierować ruch z jednego portu do drugiego portu lub adresu, najpierw włącz maskaradę dla żądanej strefy za pomocą przełącznika
--add-masquerade
. Na przykład, aby włączyć maskaradę dla typu strefy
external
:
sudo firewall-cmd --zone=external --add-masquerade
- Przekazywanie ruchu z jednego portu do drugiego na tym samym serwerze
W poniższym przykładzie przekazujemy ruch z portu
80
do portu
8080
na tym samym serwerze:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
- Przekaż ruch do innego serwera
W poniższym przykładzie przekazujemy ruch z portu
80
do portu
80
na serwerze o IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
- Przekaż ruch do innego serwera na innym porcie
W poniższym przykładzie przekierowujemy ruch z portu
80
do portu
8080
na serwerze o IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
Tworzenie zestawu reguł za pomocą FirewallD
W poniższym przykładzie pokażemy, jak skonfigurować zaporę, jeśli korzystasz z serwera WWW. Zakładamy, że twój serwer ma tylko jeden interfejs
eth0
i chcesz zezwolić na ruch przychodzący tylko na porty SSH, HTTP i
-
Zmień domyślną strefę na dmz
Użyjemy strefy dmz (zdemilitaryzowanej), ponieważ domyślnie zezwala tylko na ruch SSH. Aby zmienić domyślną strefę na dmz i przypisać ją do interfejsu
eth0, uruchom następujące polecenia:sudo firewall-cmd --set-default-zone=dmzsudo firewall-cmd --zone=dmz --add-interface=eth0Otwórz porty HTTP i
Aby otworzyć porty HTTP i HTTPS, dodaj stałe reguły usług do strefy dmz:
sudo firewall-cmd --permanent --zone=dmz --add-service=httpsudo firewall-cmd --permanent --zone=dmz --add-service=httpsWprowadź zmiany od razu, ponownie ładując zaporę:
sudo firewall-cmd --reloadSprawdź zmiany
Aby sprawdzić ustawienia konfiguracji strefy dmz:
sudo firewall-cmd --zone=dmz --list-alldmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:Powyższe dane wyjściowe mówią nam, że dmz jest strefą domyślną, jest stosowany do interfejsu
eth0i porty ssh (22) http (80) i https (443) są otwarte.
Wniosek
Nauczyłeś się konfigurować i zarządzać usługą FirewallD w systemie CentOS.
Upewnij się, że zezwalasz na wszystkie połączenia przychodzące, które są niezbędne do prawidłowego funkcjonowania systemu, jednocześnie ograniczając wszystkie niepotrzebne połączenia.
firewalld firewall iptables centos securityJak skonfigurować, skonfigurować, używać Kontroli rodzicielskiej w Windows 7
Dowiedz się, jak włączyć, wyłączyć, skonfigurować i używać funkcji Kontroli rodzicielskiej w systemie Windows 7 do monitorowania i kontrolowania aktywności internetowych dzieci.
Jak skonfigurować i skonfigurować ustawienia routera Zapora
Dowiedz się, jak skonfigurować zaporę routera, uzyskać dostęp do strony routera sprzętowego, skonfigurować ustawienia zapory routera. Sprawdź, które porty są niezbędne na komputerze.
Jak zatrzymać i wyłączyć firewalld na Centos 7
Począwszy od CentOS 7, FirewallD zastępuje iptables jako domyślne narzędzie do zarządzania zaporą. W tym samouczku pokażemy, jak wyłączyć FirewallD w systemach CentOS 7.







