For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/pl/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/pl/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/pl/guides/bare-metal-cloud/dedicated-servers/firewall-linux-iptable.md.
Przejdź do treści

Konfiguracja iptables na serwerze dedykowanym z systemem Linux

Pokaż jako Markdown

Zabezpiecz serwer dedykowany, konfigurując reguły zapory iptables w celu filtrowania ruchu sieciowego w systemie Linux

Wprowadzenie

Twój serwer dedykowany jest wyposażony w zaporę sieciową. Zapory sieciowe tworzą barierę między siecią zaufaną a siecią niezaufaną. Zapory sieciowe działają w oparciu o reguły określające zarówno dozwolony, jak i blokowany ruch. Narzędziem zapory sieciowej opracowanym dla systemów Linux jest iptables.

Dowiedz się, jak zabezpieczyć serwer dedykowany za pomocą iptables.

Warning

OVHcloud udostępnia różnorodne usługi, jednak to Ty odpowiadasz za ich konfigurację i zarządzanie nimi. Ponosisz więc odpowiedzialność za ich prawidłowe funkcjonowanie.

Niniejszy przewodnik ułatwi Ci realizację bieżących zadań. Niemniej jednak, w przypadku trudności lub wątpliwości związanych z administrowaniem serwerem, korzystaniem z niego lub jego zabezpieczaniem, zalecamy skontaktowanie się z wyspecjalizowanym dostawcą lub naszą społecznością.

Wymagania początkowe

  • Serwer dedykowany na Twoim koncie OVHcloud
  • Dostęp administratora (root/sudo) do serwera przez SSH

W praktyce

Info

Ten przewodnik zawiera polecenia dla dystrybucji Ubuntu Server.

Ten przewodnik ma charakter ogólny. W zależności od używanej dystrybucji lub systemu operacyjnego może być konieczne dostosowanie niektórych poleceń. Niektóre wskazówki mogą sugerować użycie narzędzi innych firm. W przypadku pytań dotyczących korzystania z nich zapoznaj się z ich oficjalną dokumentacją.

Większość reguł opisanych w tym przewodniku zakłada, że Twoja konfiguracja iptables domyślnie odrzuca (DROP) ruch przychodzący, a Ty selektywnie zezwalasz na ruch przychodzący. Jeśli zamierzasz zastosować inny typ konfiguracji, zalecamy zapoznanie się z dodatkową dokumentacją.

Etap 1: aktualizacja systemu

Twórcy dystrybucji i systemów operacyjnych regularnie udostępniają aktualizacje pakietów oprogramowania, bardzo często ze względów bezpieczeństwa. Utrzymywanie aktualności dystrybucji lub systemu operacyjnego jest niezbędne do zabezpieczenia serwera.

Więcej informacji znajdziesz w naszym przewodniku dotyczącym zabezpieczania serwera dedykowanego.

Etap 2: instalacja zapory iptables w systemie Ubuntu

Info

Istnieją dwie różne wersje iptables: dla IPv4 i dla IPv6. Reguły, które omawiamy w tym samouczku iptables dla systemu Linux, odnoszą się do IPv4. Aby skonfigurować iptables dla IPv6, musisz użyć narzędzia ip6tables. Te dwa różne protokoły nie współpracują ze sobą i muszą być konfigurowane niezależnie.

iptables jest domyślnie zainstalowany w większości systemów Linux. Aby upewnić się, że iptables jest zainstalowany, użyj następującego polecenia:

sudo apt install iptables

Zazwyczaj polecenie iptables wygląda następująco:

sudo iptables [option] CHAIN_rule [-j target]

Oto lista niektórych popularnych opcji iptables:

  • -A --append: dodaje regułę do łańcucha (na końcu).
  • -C --check: wyszukuje regułę odpowiadającą wymaganiom łańcucha.
  • -D --delete: usuwa określone reguły z łańcucha.
  • -F --flush: usuwa wszystkie reguły.
  • -I --insert: dodaje regułę do łańcucha w określonym miejscu.
  • -L --list: wyświetla wszystkie reguły łańcucha.
  • -N --new-chain: tworzy nowy łańcuch.
  • -v --verbose: wyświetla więcej informacji podczas korzystania z opcji listy.
  • -X --delete-chain: usuwa wskazany łańcuch.

Etap 3: sprawdzenie bieżącego stanu iptables

Aby wyświetlić wszystkie bieżące reguły na serwerze, wpisz w oknie terminala następujące polecenie:

sudo iptables -L

System wyświetli stan Twoich łańcuchów.

Wynik będzie zawierał trzy łańcuchy:

Wynik polecenia sudo iptables -L z łańcuchami INPUT, FORWARD i OUTPUT

Etap 4: zezwolenie na ruch na localhost

Aby zezwolić na ruch z Twojego własnego systemu (localhost), dodaj regułę do łańcucha INPUT, wpisując następujące polecenie:

sudo iptables -A INPUT -i lo -j ACCEPT

To polecenie konfiguruje zaporę tak, aby akceptowała ruch dla interfejsu (-i) localhost (lo). Od teraz wszystko, co pochodzi z Twojego systemu, będzie przechodzić przez zaporę. Musisz ustawić tę regułę, aby umożliwić aplikacjom komunikację z interfejsem localhost.

Etap 5: zezwolenie na ruch na określonych portach

Te reguły zezwalają na ruch na różnych portach, które określasz za pomocą poleceń wymienionych poniżej. Port to punkt końcowy komunikacji przeznaczony dla określonego typu danych.

Aby zezwolić na ruch HTTP, wpisz następujące polecenie:

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

Aby zezwolić wyłącznie na przychodzący ruch SSH (Secure Shell), wpisz następujące polecenie (używamy domyślnego numeru portu SSH, czyli 22. Jeśli Twój numer portu jest inny, odpowiednio dostosuj polecenia):

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

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

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

Opcje działają w następujący sposób:

  • -p: sprawdza określony protokół (tcp).
  • --dport: określa port docelowy.
  • -j jump: wykonuje akcję.
Warning

Jeśli utracisz dostęp do serwera, zawsze możesz użyć narzędzia KVM/IPMI, aby ponownie uzyskać do niego dostęp i zmienić konfigurację lub usunąć reguły.

Więcej informacji na temat dostępu do tego narzędzia znajdziesz w naszym przewodniku Jak korzystać z konsoli IPMI na serwerze dedykowanym.

Etap 6: kontrola ruchu według adresu IP

Użyj następującego polecenia, aby akceptować ruch z określonego adresu IP.

sudo iptables -A INPUT -s twój_adres_IP_do_autoryzacji -j ACCEPT

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

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

sudo iptables -A INPUT -s twój_adres_IP_do_zablokowania -j DROP

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

Możesz odrzucać ruch z zakresu adresów IP za pomocą następującego polecenia:

sudo iptables -A INPUT -m iprange --src-range twój_początkowy_adres_IP-twój_końcowy_adres_IP -j REJECT

Opcje iptables użyte w przykładach działają w następujący sposób:

  • -m: ładuje moduł dopasowania, w tym przypadku iprange.
  • iprange: dopasowuje zakres adresów IP zamiast pojedynczego adresu.
  • --src-range: określa zakres adresów IP.

Etap 7: odrzucenie niepożądanego ruchu

Przed zablokowaniem pozostałego ruchu zezwól na odpowiedzi na połączenia, które Twój serwer nawiązuje samodzielnie (aktualizacje pakietów, zapytania DNS itp.). Bez tej reguły te odpowiedzi również zostałyby zablokowane:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Jeśli definiujesz reguły zapory iptables, musisz zapobiec nieautoryzowanemu dostępowi, odrzucając cały ruch 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ż zdefiniowane przez Ciebie, zostanie ono przerwane.

Warning

Jeśli wpiszesz to polecenie przed wykonaniem etapu 5, zablokujesz cały dostęp, w tym bieżący dostęp przez SSH. Jest to szczególnie problematyczne w przypadku maszyny, do której łączysz się zdalnie.

Etap 8: usunięcie reguły

Aby usunąć regułę, użyj numeru jej wiersza.

Najpierw wyświetl listę wszystkich reguł, wpisując następujące polecenie:

sudo iptables -L --line-numbers
Wynik polecenia sudo iptables -L --line-numbers z numerami reguł

Znajdź wiersz reguły zapory, którą chcesz usunąć, i uruchom to polecenie:

sudo iptables -D INPUT <Number>

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

Etap 9: zapisanie zmian

Po ponownym uruchomieniu systemu narzędzie iptables nie zachowuje utworzonych przez Ciebie reguł. Za każdym razem, gdy konfigurujesz iptables w systemie Linux, wprowadzone zmiany obowiązują tylko do następnego ponownego uruchomienia.

W systemach opartych na Ubuntu pakiet iptables-persistent odpowiada za przywracanie reguł podczas uruchamiania systemu. Zainstaluj go za pomocą polecenia:

sudo apt install iptables-persistent
Info

Podczas instalacji pojawi się pytanie, czy zapisać bieżące reguły IPv4 i IPv6. Odpowiedz Yes, aby zachować właśnie utworzone reguły.

Następnie możesz w dowolnym momencie zapisać reguły za pomocą 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).

Przy następnym uruchomieniu systemu narzędzie iptables automatycznie ponownie wczyta reguły zapory.

Możesz teraz skonfigurować podstawowe reguły zapory iptables dla swojego serwera Linux. Śmiało eksperymentuj, ponieważ zawsze możesz usunąć niepotrzebne reguły lub wyczyścić wszystkie reguły i zacząć od nowa.

Sprawdź również

Aktywacja i konfiguracja Edge Network Firewall

Monitorowanie ataków DDoS za pomocą panelu Anti-DDoS

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

Czy ta strona była pomocna?