Powrót do bloga

Konfiguracja zapory sieciowej za pomocą FirewallD na CentOS 7

Konfiguracja zapory sieciowej za pomocą FirewallD na CentOS 7

Wprowadzenie

Firewalld to rozwiązanie do zarządzania zaporą sieciową, które jest dostępne dla wielu dystrybucji Linuksa. Służy jako interfejs do systemu filtrowania pakietów iptables dostarczanego przez jądro Linuksa. W tym poradniku dowiesz się, jak skonfigurować zaporę sieciową dla swojego serwera. Pokażemy Ci również podstawy zarządzania zaporą za pomocą narzędzia administracyjnego firewall-cmd.

Podstawy Firewalld

FirewallD korzysta z pojęć stref i usług, a nie z łańcuchów i reguł iptables. W zależności od skonfigurowanych stref i usług możesz kontrolować, jaki ruch jest dozwolony lub niedozwolony do i z systemu. FirewallD można konfigurować i zarządzać nim za pomocą narzędzia wiersza poleceń firewall-cmd.

Instalacja i włączanie zapory sieciowej przy uruchamianiu systemu

W większości dystrybucji Linuksa firewallD jest już zainstalowany. Jeśli jednak musisz zainstalować go samodzielnie, wpisz poniższe polecenie:

Po zainstalowaniu firewalld możesz włączyć usługę i zrestartować serwer:

Następnie zrestartuj serwer. Zapora sieciowa zostanie włączona po pomyślnym ponownym uruchomieniu serwera. Następnie użyj poniższego polecenia, aby zweryfikować, czy usługa została aktywowana:

check firewall state FirewallD

Dane wyjściowe pokazują, że domyślne ustawienie zapory sieciowej działa.

Sprawdzanie ustawień domyślnych

Możesz sprawdzić strefę wybraną przez serwer za pomocą tego polecenia:

check firewall default zone

Zweryfikuj aktywną strefę, wpisując:

firewall active zones

Wyświetl konfigurację domyślnej strefy, aby poznać reguły przypisane do obszaru publicznego, używając następującej składni:

list all rules FirewallD

Dane wyjściowe wskazują, że ta strefa jest zarówno strefą domyślną, jak i aktywną. Pokazują również, że interfejsy eth0 i eth1 są przypisane do tej strefy.

Sprawdzanie alternatywnych stref

Oprócz stref domyślnych i aktywnych istnieją inne strefy, które możesz zbadać. Wpisz to polecenie, aby zobaczyć wszystkie dostępne strefy:

firewall check other zones

Sprawdź konkretną konfigurację przypisaną do strefy, dodając parametr –zone= w poleceniu –list-all:

check zone configuration FirewallD

 Zmiana strefy interfejsu

Możesz łatwo zmienić strefę interfejsu za pomocą opcji –change-interface połączonej z opcją –change-interface. Poniższe polecenie przypisze interfejs eth1 do obszaru roboczego:

Możesz zweryfikować zmiany, wpisując:

changing firewall interface zones FirewallD

Zmiana domyślnej strefy

Aby zmienić domyślną strefę, 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 start, należy uruchomić następujące polecenie:

Następnie możesz zweryfikować zmiany za pomocą:

firewall change default zone

Ustawianie reguł dla aplikacji

Przejdźmy przez podstawy wymagane do zdefiniowania wyjątków zapory sieciowej dla usług:

Dodawanie usługi do stref

Najprostszym sposobem jest dodanie potrzebnych portów lub usług do używanych stref. Podobnie, możesz użyć opcji –get-services, aby zobaczyć wszystkie dostępne usługi:

firewall get services FirewallD

Możesz aktywować usługę dla strefy za pomocą parametru –add-service =. Działanie to dotyczy strefy domyślnej lub dowolnej strefy zdefiniowanej przez parametr –zone =. Domyślnie konfigurowana jest tylko bieżąca sesja zapory sieciowej. Możesz skonfigurować stałą konfigurację zapory, aktywując flagę –permanent. Na przykład, jeśli uruchamiasz serwer WWW, który obsługuje zwykły ruch HTTP, możesz zezwolić na ten ruch dla interfejsów w naszej strefie “public” dla tej sesji, wpisując:

Możesz pominąć –zone =, jeśli chcesz zmienić domyślną strefę. Możesz sprawdzić powodzenie operacji za pomocą operacji –list-all lub –list-services:

add service to zone

Po zweryfikowaniu, że wszystko działa zgodnie z oczekiwaniami, najprawdopodobniej zechcesz zmienić reguły zapory na stałe, aby Twoja usługa była nadal dostępna po restarcie. Możemy wprowadzić zmianę w naszej strefie “public” na stałe, wpisując składnię:

Możesz sprawdzić, czy operacja zakończyła się sukcesem, dodając flagę –permanent do operacji –list-services. Musisz użyć sudo dla wszystkich stałych operacji:

Twoja strefa “public” zezwala teraz na ruch HTTP na porcie 80. Możesz dodać to do bieżącej sesji i zestawu reguł trwałych za pomocą poniższego polecenia:

Jeśli nie ma usług odpowiadających Twoim wymaganiom, masz dwie doskonałe opcje poradzenia sobie z tą sytuacją:

  1. Otwieranie portu dla swoich stref

Najprostszym sposobem na dodanie obsługi konkretnej aplikacji jest otwarcie portów używanych w każdej strefie. Jest to tak proste, jak określenie portu lub zakresu portów oraz odpowiedniego protokołu dla portów, które należy otworzyć. Na przykład, jeśli Twoja aplikacja działa na porcie 5000 i korzysta z protokołu TCP, możesz dodać ją do strefy “public” dla tej sesji za pomocą parametru –add-port =. Protokołami mogą być TCP lub UDP:

Aby sprawdzić, czy operacja zakończyła się sukcesem, użyj operacji –list-ports:

Możesz również określić zakres dla interfejsu szeregowego, oddzielając port początkowy i końcowy w zakresie myślnikiem. Na przykład, jeśli Twoja aplikacja korzysta z portów UDP od 4990 do 4999, możesz otworzyć je w strefie “public”, wpisując:

Po przetestowaniu prawdopodobnie zechcemy dodać je do stałej zapory sieciowej. Możesz to zrobić, wpisując następujące polecenia:

adding ports to permanent firewall

  1. Definiowanie usługi

Usługa to zbiór portów z przypisaną nazwą i opisem. Usługi są łatwiejsze w zarządzaniu niż porty, ale wymaga to trochę początkowej pracy. Najprostszym sposobem na rozpoczęcie pracy jest skopiowanie istniejącego skryptu (w / usr / lib / firewalld / services) do katalogu /etc/firewalld/services. Na przykład można skopiować definicję usługi SSH, aby użyć jej w definicji usługi “example” w następujący sposób. Nazwa pliku bez rozszerzenia XML określa nazwę usługi na liście usług zapory sieciowej:

W tym momencie możesz dostosować definicję w skopiowanym pliku:

Po pierwsze, plik zawiera skopiowaną definicję SSH:

Większość tej definicji składa się z metadanych. Musisz zmienić krótką nazwę usługi w znacznikach <short>. Jest to czytelna nazwa usługi. Wyobraź sobie, że dla naszej usługi “example” musimy otworzyć port 7777 dla TCP i 8888 dla UDP. Możesz zmienić istniejącą definicję, wchodząc w tryb INSERT poprzez naciśnięcie i:

Następnie naciśnij ESC i wpisz :x, aby zapisać i zamknąć plik. Następnie wpisz poniższe polecenie, aby zrestartować zaporę sieciową w celu uzyskania dostępu do nowej usługi;

Następnie użyj poniższego polecenia, aby wyświetlić listę dostępnych usług:

get services

Ta usługa jest teraz dostępna w Twojej strefie.

Tworzenie własnych stref

Chociaż predefiniowane strefy prawdopodobnie będą wystarczające dla większości użytkowników, przydatne może być zdefiniowanie własnych stref, które dokładniej opisują ich funkcję.

Dodając strefę, dodaj ją do stałych ustawień zapory sieciowej. Następnie możesz przeładować zaporę, aby zastosować ustawienia w bieżącej sesji. Na przykład możesz utworzyć dwie omówione wcześniej strefy, wpisując:

Możesz potwierdzić, że są one obecne w stałej konfiguracji, używając tego polecenia:

firewall zones

Przeładuj zaporę sieciową, aby przenieść te nowe strefy do aktywnej konfiguracji:

Teraz możesz przypisać odpowiednie usługi i porty do swoich stref. Na przykład dla strefy “publicweb” możesz chcieć dodać usługi SSH, HTTP i HTTPS:

list public web zone

 

Możesz również dodać usługę DNS do strefy „privateDNS” za pomocą tego polecenia:

list privateDNS zone FirewallD

Następnie możesz zmienić swoje interfejsy na te nowe strefy, aby je przetestować:

Przetestuj konfigurację, aby sprawdzić, czy działa. Jeśli te wartości Ci odpowiadają, musisz dodać te same reguły do konfiguracji stałej. Możesz to zrobić, ponownie stosując reguły ze wskaźnikiem —permanent:

 

Po stałym zastosowaniu tych reguł możesz zrestartować sieć i ponownie załadować usługę zapory sieciowej:

Sprawdź, czy strefy zostały przypisane poprawnie:

check active zones FirewallD

Ponadto upewnij się, że obie strefy mają odpowiednią usługę:

Jeśli chcesz ustawić jedną ze swoich stref jako domyślną dla innych interfejsów, musisz skonfigurować to zachowanie za pomocą parametru –set-default-zone= przy użyciu tego polecenia:

Podsumowanie

W tym momencie pomyślnie utworzyłeś własne strefy. Powinieneś już posiadać podstawową wiedzę na temat administrowania usługą firewalld w systemie CentOS do codziennego użytku. Dobre zrozumienie usługi firewalld pozwala w pełni wykorzystać jej możliwości i elastyczność.

Miłego korzystania z komputera!

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.