Konfiguracja firewalla w systemie Linux z systemem iptables

Pokaż jako Markdown

Dowiedz się, jak zabezpieczyć serwer korzystając z iptables

Wprowadzenie

Twój serwer VPS jest wyposażony w zaporę sieciową. Firewall tworzą barierę między zaufaną siecią a niewiarygodną siecią. Firewall działa poprzez określenie zasad regulujących dozwolony ruch i zablokowany ruch. Firewall użytkowy opracowany dla systemów Linux jest nie do przyjęcia.

Dowiedz się, jak zabezpieczyć serwer korzystając z iptables.

Informacje dotyczące administrowania usługami OVHcloud oraz jak znaleźć odpowiednią pomoc

Podczas korzystania z przewodników OVHcloud pamiętaj o następujących warunkach:

  • Instrukcje zawierają możliwie najwięcej szczegółów, ale nie mogą obejmować wszystkich indywidualnych przypadków użycia. Może być konieczne dostosowanie opisanych działań do Twoich potrzeb.
  • Ekosystem OVHcloud został zaprojektowany z myślą o elastyczności i swobodzie wyboru. Klienci są zatem odpowiedzialni za bezpieczną i prawidłową konfigurację swoich usług. Aby zapobiec utracie danych, zdecydowanie zalecamy stosowanie strategii kopii zapasowych dla wszystkich ważnych danych.
  • Nasze przewodniki i tutoriale mogą odwoływać się do oprogramowania lub usług firm trzecich w połączeniu z rozwiązaniami OVHcloud. Wsparcie techniczne OVHcloud nie obejmuje konfiguracji systemów ani produktów pozostających poza naszą odpowiedzialnością. Dotyczy to między innymi:
    • Systemów operacyjnych i interfejsów użytkownika (Windows, Debian, Plesk itp.).
    • Wszelkiego innego oprogramowania firm trzecich (klienty FTP, programy pocztowe itp.).
    • Usług oferowanych przez innych dostawców (DNS, API, interfejsy użytkownika itp.).

Aby uzyskać odpowiednią pomoc w przypadku problemów, postępuj zgodnie z poniższymi wskazówkami:

  • Szukasz spersonalizowanej porady lub chcesz omówić temat, który nie został szczegółowo opisany w naszej dokumentacji?
    Dołącz do społeczności OVHcloud, aby wyszukać swój temat i skontaktować się z innymi użytkownikami.
  • Musisz zgłosić incydent dotyczący Twojej usługi OVHcloud lub masz trudności w panelu klienta OVHcloud?
    Utwórz zgłoszenie do wsparcia w naszym centrum pomocy.
  • Potrzebujesz profesjonalnej pomocy przy swoim projekcie lub wsparcia w zadaniach wykraczających poza zakres naszego wsparcia?
    Odwiedź nasz portal partnerów, aby znaleźć ekspertów znających rozwiązania OVHcloud.
  • Szukasz bardziej szczegółowych informacji o naszych poziomach wsparcia i usługach Professional Services?
    Odwiedź nasze strony internetowe: poziomy wsparcia OVHcloud oraz OVHcloud Professional Services.

Możesz uczestniczyć w ulepszaniu naszej dokumentacji:

  • Chcesz przekazać opinię, aby ulepszyć stronę przewodnika, lub zgłosić niewystarczające informacje na konkretnej stronie?
    Skorzystaj z przycisków „Czy ta strona była pomocna?” na dole strony, aby nas o tym poinformować.
  • Chcesz zaproponować konkretną aktualizację dokumentacji?
    Skorzystaj z funkcji „Edytuj tę stronę”, dostępnej na dole strony oraz w panelu bocznym.

Wymagania początkowe

  • Posiadanie serwera VPS na koncie OVHcloud
  • Dostęp administratora (root/sudo) do serwera przez SSH

W praktyce

Info

Niniejszy przewodnik zawiera informacje o zamówieniach na dystrybucję Ubuntu Server.

Niniejsza instrukcja ma charakter poglądowy. Być może będziesz musiał dostosować niektóre komendy do konkretnej dystrybucji i/lub systemu operacyjnego, którego używasz. W niektórych sytuacjach rekomendujemy użycie narzędzi zewnętrznych. W przypadku pytań dotyczących korzystania z tych narzędzi zapoznaj się z oficjalną dokumentacją producenta.

Większość reguł opisanych w tym przewodniku zakłada, że iptables jest domyślnie skonfigurowany do DROP ruchu przychodzącego i że selektywnie zezwalasz na ruch przychodzący. Jeśli zamierzasz ustawić inny typ konfiguracji, zalecamy zapoznanie się z dodatkową dokumentacją.

Etap 1: aktualizacja systemu

Producenci dystrybucji i systemów operacyjnych sugerują częste aktualizacje pakietów oprogramowania ze względów bezpieczeństwa. Aktualizacja dystrybucji lub systemu operacyjnego jest kluczowa dla bezpieczeństwa Twojego serwera.

Więcej informacji znajdziesz w przewodniku dotyczącym bezpieczeństwa serwera VPS.

Etap 2: zainstalować firewall iptables pod Ubuntu

Info

Istnieją dwie różne wersje iptables dla IPv4 i IPv6. Zasady, które opisujemy w tym tutorialu Linux iptables dotyczą IPv4. Aby skonfigurować IPv6, użyj narzędzia iptables6. Te dwa różne protokoły nie działają razem i muszą być skonfigurowane niezależnie.

iptables jest domyślnie zainstalowany na większości systemów Linux. Aby potwierdzić, że usługa iptables jest zainstalowana, wpisz następujące polecenie:

sudo apt install iptables

Przykład wydania w Ubuntu potwierdza, że najnowsza wersja iptables jest już dostępna:

wersja-iptables

Zwykle polecenie iptables jest następujące:

sudo iptables [option] CHAIN_rule [-j target]

Poniżej znajduje się lista kilku opcji Do wyboru:

  • -A --append: Dodaj regułę do łańcucha (na końcu).
  • -C --check: Wyszukiwanie reguły, która odpowiada wymaganiom łańcucha.
  • -D --delete: Usuwa określone reguły łańcucha.
  • -F --flush: Usuń wszystkie reguły.
  • -I --insert: Dodaje regułę do danego łańcucha.
  • -L --list: Wyświetl wszystkie reguły łańcucha.
  • -N --new-chain: Stwórz nowy kanał.
  • -v --verbose: Wyświetla więcej informacji podczas korzystania z opcji listy.
  • -X --delete-chain: Usuń ciąg.

Etap 3: sprawdź obecny stan iptables

Aby wyświetlić wszystkie aktualne reguły na Twoim serwerze, wprowadź następujące polecenie w oknie terminala:

sudo iptables -L

System wyświetla status twoich kanałów.
Wyjście będzie zawierać trzy kanały:

Check-Current-iptables

Etap 4: zezwalaj na ruch na localhost

Aby zezwolić na ruch z własnego systemu (localhost), dodaj ciąg wejściowy, wprowadzając następujące elementy:

sudo iptables -A INPUT -i lo -j ACCEPT

Komenda ta konfiguruje firewall, aby zaakceptować ruch dla interfejsu localhost (lo) (-i). Wszystko, co pochodzi z twojego systemu, będzie przechodzić przez twoją zaporę sieciową. Aby umożliwić komunikację z interfejsem localhost, należy zdefiniować tę regułę.

Etap 5: zezwalaj na ruch w określonych portach

Reguły te zezwalają na ruch w różnych portach, które określiłeś za pomocą poleceń wymienionych poniżej. Port jest określonym punktem zakończenia komunikacji dla określonego typu danych.

Aby zezwolić na ruch sieciowy HTTP, wprowadź następujące polecenie:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Aby zezwolić tylko na ruch przychodzący przez SSH (Secure Shell), wprowadź (zauważ, że używamy portu 22, który jest domyślnym numerem portu SSH. Jeśli Twój numer portu jest inny, pamiętaj, aby odpowiednio dostosować poniższe polecenia):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Aby zezwolić na ruch internetowy HTTPS, wprowadź następujące polecenie:

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Opcje działają następująco:

  • -p : Sprawdź określony protokół (tcp).
  • --dport: Określa port docelowy.
  • -j jump: Wykonaj czynność
Warning

W przypadku utraty dostępu do serwera, możesz nadal używać narzędzia KVM/IPMI, aby uzyskać do niego dostęp, zmienić konfigurację lub usunąć reguły.

Więcej informacji na temat dostępu do tego narzędzia znajdziesz w tym przewodniku.

Etap 6: kontrola ruchu na adres IP

Aby zaakceptować ruch z określonego adresu IP, użyj następującego polecenia.

sudo iptables -A INPUT -s adres_IP_do_autoryzacji -j ACCEPT

Zastąp adres IP w zamówieniu adresem IP, który chcesz autoryzować.

Możesz również zablokować ruch z adresu IP

sudo iptables -A INPUT -s adres_IP_do_blokowania -j DROP

Zastąp adres IP w zamówieniu adresem IP, który chcesz zablokować.

Możesz odrzucić ruch z zakresu adresów IP, używając następującego polecenia:

sudo iptables -A INPUT -m iprange --src-range adres_IP_początku_adresu_IP_fin -j REJECT

Opcje iptables, których używaliśmy w przykładach działają następująco:

  • -m: Odpowiada określonej opcji.
  • -iprange: Wskazuje, że system będzie czekać na określony zakres adresów IP zamiast na jeden.
  • --src-range: Określa zakres adresów IP.

Etap 7: usuń niepożądany ruch

Jeśli określisz reguły firewalla iptables, musisz zapobiec nieautoryzowanemu dostępowi poprzez usunięcie wszelkiego ruchu z innych portów:

sudo iptables -A INPUT -j DROP

Opcja -A dodaje nową regułę do łańcucha. Jeśli połączenie przechodzi przez porty inne niż te, które zdefiniowałeś, zostanie ono przerwane.

Warning

Uwaga, jeśli wpiszesz to polecenie przed wykonaniem etapu piątego, zablokujesz dostęp do wszystkich usług, w tym do bieżącego dostępu, do SSH. Jest to szczególnie problematyczne w maszynie do zdalnego dostępu.

Etap 8: usuń regułę

Bardziej precyzyjna metoda polega na usunięciu numeru linii z reguły.

sudo iptables -P INPUT DROP 

Po pierwsze, wprowadź wszystkie reguły:

sudo iptables -L --line-numbers
line-numbers

Wyszukaj wiersz reguły firewalla, którą chcesz usunąć i wprowadź następującą komendę:

sudo iptables -D INPUT <Number>

Zastąp Number numerem linii reguły, którą chcesz usunąć.

Etap 9: zapisz zmiany

Podczas restartu systemu, iptables nie zachowuje reguł, które utworzyłeś. Za każdym razem, gdy skonfigurujesz iptables w Linuxie, wszystkie wprowadzone przez Ciebie zmiany dotyczą tylko do kolejnego restartu.

W systemach opartych na Ubuntu pakiet iptables-persistent odpowiada za przywracanie reguł przy uruchamianiu systemu. Zainstaluj go za pomocą następującego polecenia:

sudo apt install iptables-persistent
Info

Podczas instalacji zostaniesz zapytany, czy zapisać aktualne reguły IPv4 i IPv6. Odpowiedz Yes, aby zachować reguły, które właśnie utworzyłeś.

Następnie możesz zapisać reguły w dowolnym momencie za pomocą następującego polecenia:

sudo netfilter-persistent save

Reguły IPv4 są zapisywane w pliku /etc/iptables/rules.v4 (a reguły IPv6 w pliku /etc/iptables/rules.v6).

Po kolejnym uruchomieniu systemu iptables automatycznie przeładuje reguły firewalla.

Możesz teraz skonfigurować podstawowe reguły firewalla iptables dla Twojego serwera Linux. Nie wahaj się doświadczyć, ponieważ zawsze możesz usunąć reguły, których nie potrzebujesz, lub usunąć wszystkie reguły i zacząć od nowa.

Sprawdź również

Dołącz do grona naszych użytkowników.

Czy ta strona była pomocna?