Konfigurowanie zapory w CentOS 7

Zapora sieciowa zainstalowana w systemie operacyjnym służy do zapobiegania nieautoryzowanemu ruchowi przechodzącemu przez sieci komputerowe. Ręcznie lub automatycznie utwórz specjalne reguły dla zapory, które są odpowiedzialne za kontrolę dostępu. W systemie operacyjnym opracowanym na jądrze Linuksa CentOS 7 ma wbudowaną zaporę ogniową i jest zarządzany za pomocą zapory. FirewallD jest domyślnie włączony i chcielibyśmy dziś porozmawiać o jego konfiguracji.

Konfigurowanie zapory w CentOS 7

Jak wspomniano powyżej, standardowa zapora ogniowa w CentOS 7 jest przypisana do narzędzia FirewallD. Dlatego konfiguracja zapory zostanie rozważona na przykładzie tego narzędzia. Możesz ustawić reguły filtrowania przy użyciu tych samych iptables, ale odbywa się to w nieco inny sposób. Zalecamy zapoznanie się z konfiguracją wspomnianego narzędzia, klikając poniższy link, a rozpoczniemy analizowanie FirewallD.

Zobacz także: Konfigurowanie iptables w CentOS 7

Koncepcje zapory

Istnieje kilka stref - zestawy reguł zarządzania ruchem w oparciu o zaufanie do sieci. Wszystkie mają własne zasady, których całość tworzy konfigurację zapory. Każda strefa ma przypisany jeden lub więcej interfejsów sieciowych, co pozwala również dostosować filtrowanie. Obowiązujące zasady zależą bezpośrednio od używanego interfejsu. Na przykład, po połączeniu z publicznie dostępnym Wi-Fi, zapora zwiększy poziom kontroli, aw sieci domowej otworzy dodatkowy dostęp dla uczestników łańcucha. W tej zaporze znajdują się takie strefy:

  • trusted - maksymalny poziom zaufania do wszystkich urządzeń w sieci;
  • home to lokalna grupa sieci. Istnieje zaufanie do środowiska, ale w ten sposób połączenia przychodzące są dostępne tylko dla niektórych maszyn;
  • work - obszar roboczy. Istnieje zaufanie do większości urządzeń, a także dodatkowe usługi są aktywowane;
  • dmz - strefa dla izolowanych komputerów. Takie urządzenia są odłączone od reszty sieci i zezwalają tylko na określony ruch przychodzący;
  • internal strefa sieci wewnętrznych. Zaufanie dotyczy wszystkich maszyn, otwierane są dodatkowe usługi;
  • external - powrót do poprzedniej strefy. W sieciach zewnętrznych aktywne jest maskowanie NAT, zamykające sieć wewnętrzną, ale nie blokujące możliwości uzyskania dostępu;
  • public - strefa sieci publicznych z brakiem zaufania do wszystkich urządzeń i indywidualnego odbioru ruchu przychodzącego;
  • block - wszystkie przychodzące żądania są resetowane za pomocą błędu icmp-host lub icmp6-adm-zabronione ;
  • drop - minimalny poziom zaufania. Połączenia przychodzące są odrzucane bez powiadomienia.

Sami politycy są tymczasowi i permanentni. Gdy parametry pojawiają się lub są edytowane, działanie zapory natychmiast zmienia się bez konieczności ponownego uruchamiania. Jeśli zastosowano tymczasowe reguły, po ponownym uruchomieniu FirewallD zostaną zresetowane. Stała reguła nazywa się tak - będzie utrzymywana na stałe podczas stosowania argumentu - stała.

Włącz zaporę FirewallD

Najpierw musisz uruchomić FirewallD lub upewnić się, że jest w stanie aktywnym. Tylko działający demon (program działający w tle) zastosuje reguły zapory. Aktywacja odbywa się za pomocą kilku kliknięć:

  1. Uruchom klasyczny „Terminal” dowolną dogodną metodą, na przykład za pomocą menu „Aplikacje” .
  2. Uruchamianie terminala w celu dalszej konfiguracji zapory w CentOS 7

  3. Wpisz sudo systemctl start firewalld.service i naciśnij klawisz Enter .
  4. Uruchamianie usług Firewall w systemie operacyjnym CentOS 7

  5. Zarządzanie narzędziami odbywa się w imieniu superużytkownika, więc trzeba uwierzytelnić, podając hasło.
  6. Wprowadzanie hasła, aby uruchomić usługi zapory w terminalu CentOS 7

  7. Aby upewnić się, że funkcje usługi, określ firewall-cmd --state .
  8. Wyświetl aktualny stan zapory przez terminal w CentOS 7

  9. Potwierdź autentyczność w otwartym oknie graficznym.
  10. Wprowadzanie hasła do uwierzytelniania podczas przeglądania stanu zapory CentOS 7

  11. Zostanie wyświetlony nowy wiersz. Wartość „działa” oznacza, że ​​zapora działa.
  12. Wyświetla aktualny stan zapory w systemie operacyjnym CentOS 7

Jeśli kiedyś musisz tymczasowo lub na stałe wyłączyć zaporę, zalecamy skorzystanie z instrukcji zawartych w naszym innym artykule pod następującym linkiem.

Więcej szczegółów: Wyłącz zaporę w CentOS 7

Wyświetl domyślne reguły i dostępne strefy

Nawet pracując w trybie zwykłym, zapora sieciowa ma swoje własne reguły i dostępne strefy. Przed rozpoczęciem edycji zasad zalecamy zapoznanie się z bieżącą konfiguracją. Odbywa się to za pomocą prostych poleceń:

  1. Komenda firewall-cmd --get-default-zone pomoże firewall-cmd --get-default-zone .
  2. Wyświetl domyślną strefę zapory w CentOS 7

  3. Po jego aktywacji pojawi się nowy wiersz, w którym zostanie wyświetlony wymagany parametr. Na przykład na poniższym zrzucie ekranu strefa „publiczna” jest uważana za aktywną.
  4. Wyświetlanie domyślnej strefy zapory w CentOS 7

  5. Jednak kilka stref może być aktywnych jednocześnie, ponadto są one powiązane z oddzielnym interfejsem. firewall-cmd --get-active-zones te informacje przez firewall-cmd --get-active-zones .
  6. Wyświetl wszystkie aktywne strefy zapory w CentOS 7

  7. Komenda firewall-cmd --list-all wyświetli reguły zdefiniowane dla strefy domyślnej. Zobacz zrzut ekranu poniżej. Widać, że reguła „domyślna” jest przypisana do strefy aktywnej „publicznie” - domyślna operacja, interfejs „enp0s3” i dwie usługi są dodawane.
  8. Zobacz podstawowe reguły zapory przez terminal w CentOS 7

  9. Jeśli chcesz znać wszystkie dostępne strefy zapory, wpisz firewall-cmd --get-zones .
  10. Pobieranie listy wszystkich dostępnych stref zapory przez terminal w CentOS 7

  11. Parametry konkretnej strefy są definiowane przez firewall-cmd --zone=name --list-all , gdzie nazwa jest nazwą strefy.
  12. Wyświetlanie reguł określonej strefy zapory przez terminal w CentOS 7

Po określeniu niezbędnych parametrów można przystąpić do ich modyfikacji i dodania. Przyjrzyjmy się bliżej niektórym z najpopularniejszych konfiguracji.

Konfigurowanie stref interfejsu

Jak wiadomo z powyższych informacji, każdy interfejs ma własną strefę domyślną. Pozostanie w nim, dopóki ustawienia nie zostaną zmienione przez użytkownika lub programowo. Możliwe jest ręczne przeniesienie interfejsu do strefy na jedną sesję, a odbywa się to poprzez aktywację polecenia sudo firewall-cmd --zone=home --change-interface=eth0 . Wynik „sukcesu” wskazuje, że transfer się powiódł. Przypomnij sobie, że takie ustawienia są resetowane natychmiast po ponownym uruchomieniu zapory.

Przypisanie określonego interfejsu do strefy zapory w CentOS 7

Przy takiej zmianie parametrów należy pamiętać, że praca usług może zostać zresetowana. Niektóre z nich nie obsługują operacji w niektórych strefach, na przykład SSH, chociaż są one dostępne w „domu” , ale usługa odmówi pracy w usługach użytkownika lub usługach specjalnych. Możesz firewall-cmd --get-active-zones , firewall-cmd --get-active-zones interfejs został pomyślnie powiązany z nową gałęzią, wpisując firewall-cmd --get-active-zones .

Zobacz rdzeń firewalla i jego interfejs w CentOS 7

Jeśli chcesz zresetować poprzednie ustawienia, uruchom ponownie zaporę: sudo systemctl restart firewalld.service .

Ponowne uruchomienie zapory po wprowadzeniu zmian w CentOS 7

Czasami zmiana strefy interfejsu przez jedną sesję nie zawsze jest wygodna. W takim przypadku należy edytować plik konfiguracyjny, aby wszystkie ustawienia były wprowadzane na stałe. W tym celu zalecamy użycie edytora tekstu nano , który jest instalowany z oficjalnego sudo yum install nano repozytorium sudo yum install nano . Pozostaje wykonać następujące czynności:

  1. Otwórz plik konfiguracyjny za pomocą edytora, wpisując sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 , gdzie eth0 jest nazwą wymaganego interfejsu.
  2. Otwieranie pliku konfiguracyjnego interfejsu zapory w CentOS 7

  3. Uwierzytelnij swoje konto do dalszych działań.
  4. Wprowadzanie hasła do otwierania pliku konfiguracyjnego interfejsu w CentOS 7

  5. Znajdź parametr „ZONE” i zmień jego wartość na żądaną, na przykład public lub home .
  6. Zmiana strefy interfejsu za pomocą pliku konfiguracyjnego w CentOS 7

  7. Przytrzymaj Ctrl + O, aby zapisać zmiany.
  8. Zapis zmian w edytorze tekstu CentOS 7

  9. Nie zmieniaj nazwy pliku, po prostu naciśnij Enter .
  10. Przypisywanie plików do zapisywania zmian w edytorze tekstu CentOS 7

  11. Zamknij edytor tekstu za pomocą Ctrl + X.
  12. Wyjdź z edytora tekstu po zmianie CentOS 7

Teraz strefa interfejsu będzie taka, jak ją określiłeś, aż do następnej edycji pliku konfiguracyjnego. Aby zaktualizowane ustawienia zaczęły obowiązywać, uruchom sudo systemctl restart network.service i sudo systemctl restart firewalld.service .

Ustawianie strefy domyślnej

Powyżej pokazaliśmy już polecenie, które pozwoliło nam znaleźć domyślną strefę. Można to również zmienić, ustawiając wybraną opcję. Aby to zrobić, wystarczy zarejestrować sudo firewall-cmd --set-default-zone=name w konsoli, gdzie name jest nazwą wymaganej strefy.

Przypisywanie domyślnej strefy zapory w CentOS 7

Sukces polecenia zostanie wskazany przez napis „sukces” w osobnej linii. Następnie wszystkie bieżące interfejsy zostaną powiązane z określoną strefą, chyba że w plikach konfiguracyjnych określono inaczej.

Pomyślne przypisanie strefy domyślnej w CentOS 7

Tworzenie reguł dla programów i narzędzi

Na samym początku artykułu rozmawialiśmy o działaniu każdej strefy. Zdefiniowanie usług, narzędzi i programów w takich gałęziach pozwoli każdemu z nich zastosować indywidualne parametry dla każdego żądania użytkownika. Na początek radzimy zapoznać się z pełną listą aktualnie dostępnych usług: firewall-cmd --get-services .

Polecenie przeglądania usług CentOS 7 dostępnych w systemie.

Wynik jest wyświetlany bezpośrednio w konsoli. Każdy serwer jest oddzielony spacją, a na liście można łatwo znaleźć interesujące Cię narzędzie. Jeśli brakuje wymaganej usługi, należy ją dodatkowo zainstalować. O regułach instalacji przeczytaj oficjalną dokumentację oprogramowania.

Lista dostępnych usług w CentOS 7

Powyższe polecenie pokazuje tylko nazwy usług. Szczegółowe informacje na temat każdego z nich są uzyskiwane poprzez pojedynczy plik znajdujący się wzdłuż ścieżki /usr/lib/firewalld/services . Takie dokumenty są w formacie XML, na przykład ścieżka do SSH wygląda następująco: /usr/lib/firewalld/services/ssh.xml , a dokument ma następującą zawartość:

SSH
Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.

Aktywowana jest ręczna obsługa usługi w określonej strefie. W „Terminalu” powinieneś ustawić polecenie sudo firewall-cmd --zone=public --add-service=http , gdzie --zone = public to strefa aktywacji, a --add-service = http to nazwa usługi. Zauważ, że ta zmiana wejdzie w życie tylko w ciągu jednej sesji.

Dodawanie usługi do określonej strefy zapory CentOS 7

Trwałe dodawanie jest wykonywane przez sudo firewall-cmd --zone=public --permanent --add-service=http , a wynik „sukcesu” wskazuje na pomyślne zakończenie operacji.

Stałe dodanie usługi do strefy zapory CentOS 7

Możesz wyświetlić pełną listę stałych reguł dla określonej strefy, wyświetlając listę w osobnej linii konsoli: sudo firewall-cmd --zone=public --permanent --list-services .

Wyświetl listę stałych usług zapory CentOS 7

Rozwiązanie problemu braku dostępu do usługi

Standardowo najbardziej popularne i bezpieczne usługi są wymienione w regułach zapory jako dozwolone, ale blokują niektóre aplikacje standardowe lub innych firm. W takim przypadku użytkownik będzie musiał ręcznie zmienić ustawienia, aby rozwiązać problem z dostępem. Można to zrobić na dwa różne sposoby.

Przekierowanie portów

Jak wiadomo, wszystkie usługi sieciowe korzystają z określonego portu. Jest łatwo wykrywany przez zaporę i może blokować blokady. Aby uniknąć takich działań przez zaporę, musisz otworzyć wymagany port za pomocą sudo firewall-cmd --zone=public --add-port=0000/tcp , gdzie --zone = public to strefa dla portu, --add-port = 0000 / tcp - numer portu i protokół. Opcja firewall-cmd --list-ports wyświetli listę otwartych portów.

Otwieranie portu w określonej strefie zapory CentOS 7

Jeśli chcesz otworzyć porty znajdujące się w tym zakresie, użyj linii sudo firewall-cmd --zone=public --add-port=0000-9999/udp , gdzie --add-port = 0000-9999 / udp to zakres portów i ich protokół.

Otwarcie szeregu portów w określonej strefie zapory CentOS 7

Powyższe polecenia pozwolą jedynie przetestować użycie takich parametrów. Jeśli się powiodło, powinieneś dodać te same porty do stałych ustawień, a robi się to wpisując sudo firewall-cmd --zone=public --permanent --add-port=0000/tcp lub sudo firewall-cmd --zone=public --permanent --add-port=0000-9999/udp . Lista otwartych trwałych portów jest wyświetlana jako: sudo firewall-cmd --zone=public --permanent --list-ports .

Definicja usługi

Jak widać, dodawanie portów nie powoduje żadnych trudności, ale procedura jest skomplikowana, gdy używana jest duża liczba aplikacji. Trudno jest śledzić wszystkie używane porty, co oznacza, że ​​definicja usługi będzie bardziej poprawna:

  1. Skopiuj plik konfiguracyjny, pisząc sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml , gdzie service.xml to nazwa pliku usługi, a example.xml to nazwa jego kopii.
  2. Kopiowanie pliku ustawień usługi zapory do CentOS 7

  3. Otwórz kopię do edycji w dowolnym edytorze tekstu, na przykład sudo nano /etc/firewalld/services/example.xml .
  4. Uruchomienie skopiowanego pliku usługi CentOS 7

  5. Na przykład stworzyliśmy kopię usługi HTTP. W dokumencie zasadniczo widzisz różne metadane, takie jak krótka nazwa i opis. Wpływa na zmianę tylko numeru portu i protokołu na serwerze. Nad linią » Należy dodać otworzyć port. tcp to używany protokół, a 0000 to numer portu.
  6. Zmiany w pliku usługi otwierania portów w CentOS 7

  7. Zapisz wszystkie zmiany ( Ctrl + O ), zamknij plik ( Ctrl + X ), a następnie uruchom ponownie zaporę, aby zastosować ustawienia przez sudo firewall-cmd --reload . Następnie usługa pojawi się na liście dostępnych, które można przeglądać za pośrednictwem firewall-cmd --get-services .
  8. Ponowne uruchamianie usługi zapory w CentOS 7

Wystarczy wybrać najbardziej odpowiednią metodę rozwiązania problemu z dostępem do usługi i postępować zgodnie z podanymi instrukcjami. Jak widzisz, wszystkie działania są wykonywane dość łatwo i nie powinny pojawić się żadne trudności.

Tworzenie stref niestandardowych

Już wiesz, że początkowo w FirewallD utworzono dużą liczbę różnych stref z pewnymi regułami. Istnieją jednak sytuacje, w których administrator systemu musi utworzyć strefę użytkownika, taką jak „publicweb” dla zainstalowanego serwera WWW lub „privateDNS” dla serwera DNS. W tych dwóch przykładach analizujemy dodanie gałęzi:

  1. Utwórz dwie nowe stałe strefy za pomocą sudo firewall-cmd --permanent --new-zone=publicweb i sudo firewall-cmd --permanent --new-zone=privateDNS .
  2. Dodawanie nowych stref użytkownika zapory CentOS 7

  3. Będą dostępne po przeładowaniu narzędzia sudo firewall-cmd --reload . Aby wyświetlić strefy stałe, wprowadź sudo firewall-cmd --permanent --get-zones .
  4. Wyświetl dostępne strefy zapory w CentOS 7

  5. Przypisz im niezbędne usługi, na przykład „SSH” , „HTTP” i „HTTPS” . Robi się to za pomocą komend sudo firewall-cmd --zone=publicweb --add-service=ssh , sudo firewall-cmd --zone=publicweb --add-service=http i sudo firewall-cmd --zone=publicweb --add-service=https , gdzie --zone = publicweb to nazwa strefy do dodania. Możesz zobaczyć aktywność usług, firewall-cmd --zone=publicweb --list-all .
  6. Dodawanie usług do strefy użytkownika CentOS 7

W tym artykule dowiedziałeś się, jak tworzyć własne strefy i dodawać do nich usługi. Opisaliśmy już wcześniej ustawienie ich domyślnie i przypisywanie interfejsów, wystarczy tylko podać poprawne nazwy. Nie zapomnij zrestartować zapory po dokonaniu jakichkolwiek trwałych zmian.

Jak widać, zapora FirewallD jest dość dużym narzędziem, które pozwala na najbardziej elastyczną konfigurację zapory. Pozostaje tylko upewnić się, że narzędzie zostanie uruchomione wraz z systemem, a określone reguły natychmiast rozpoczną pracę. Zrób to za pomocą sudo systemctl enable firewalld .