iptables

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
iptables
Filtr pakietów
Autor Netfilter Core Team
System operacyjny Linux
Pierwsze wydanie 1998
Aktualna wersja stabilna 1.4.17
25 grudnia 2012
Licencja GNU General Public License
Strona internetowa

iptables to program sterujący filtrem pakietów (głównie używanym jako zapora sieciowa bądź NAT) opracowany dla systemu operacyjnego Linux. Autor Rusty Russell napisał pierwszą wersję w 1998 roku w języku C. Program może być używany jako filtr pakietów, bądź tzw. stanowa zapora dla systemów Linux z jądrem począwszy od serii 2.4.x, kontrolujący połączenia wchodzące i wychodzące do sieci komputerowej lub stacji roboczej. Wymaga jądra skompilowanego z modułem ip_tables.

Iptables wymaga uprawnień roota do uruchomienia. W większości dystrybucji Linuksowych iptables jest instalowane w katalogu /usr/sbin/iptables, jednakże w niektórych z nich można go znaleźć w /sbin/iptables.

Zasady działania[edytuj | edytuj kod]

Iptables umożliwia administratorowi systemu definiowanie tabel zawierających łańcuchy reguł stosowanych dla pakietów. Każda z tabel służy do przetwarzania pakietów różnego rodzaju i zawiera kilka łańcuchów[1]:

  • filter – domyślna tabela
    • INPUT – pakiety przeznaczone dla lokalnego komputera
    • FORWARD – pakiety routowane przez lokalny komputer
    • OUTPUT – pakiety wygenerowane przez lokalny komputer
  • nat – pakiety nawiązujące nowe połączenia
    • PREROUTING – dla zmian w pakietach zanim zostaną routowane
    • OUTPUT – dla zmian w lokalnie wygenerowanych pakietach zanim zostaną routowane
    • POSTROUTING – dla zmian w pakietach tuż przed ich wysłaniem
  • mangle – dla wyspecjalizowanych zmian w pakietach
    • PREROUTING – dla zmian w pakietach przychodzących zanim zostaną routowane
    • OUTPUT – dla zmian w lokalnie wygenerowanych pakietach, przed ich routowaniem
    • INPUT – dla zmian w pakietach zmierzających do lokalnego komputera
    • FORWARD – dla zmian w pakietach routowanych przez lokalny komputer
    • POSTROUTING – dla zmian w pakietach po routingu, tuż przed ich wysłaniem
  • raw – do tej tabeli pakiety trafiają najpierw - ma ona najwyższy priorytet
    • PREROUTING – pakiety przychodzące przez jakikolwiek interfejs sieciowy
    • OUTPUT – pakiety generowane przez lokalne procesy

Każdy z tych predefiniowanych łańcuchów posiada sposób postępowania względem pakietów, które do niego trafiają, np. DROP (odrzucenie pakietu). Administrator może w razie potrzeby tworzyć swoje własne łańcuchy. Reguły pozwalają na podjęcie określonych działań z uwzględnieniem rodzaju i przeznaczenia pakietu, np. port, host, wykorzystany protokół, czas życia (TTL) itp.

Gdy pakiet trafia do łańcucha wędruje przez znajdujące się w nim reguły dopóki nie trafi na taką, która skierowuje go do określonego celu. Niektóre z nich to ACCEPT (zaakceptowanie pakietu), DROP (odrzucenie) i REJECT (odrzucenie z powiadomieniem nadawcy).

Przykład[edytuj | edytuj kod]

Po wpisaniu poniższych komend komputer będzie akceptował wyłącznie połączenia skierowane na porty HTTP i SSH:

 # iptables -P FORWARD DROP
 # iptables -P INPUT DROP
 # iptables -A INPUT --protocol tcp --destination-port 22 -j ACCEPT
 # iptables -A INPUT --protocol tcp --destination-port 80 -j ACCEPT

Nakładki[edytuj | edytuj kod]

Interfejs graficzny[edytuj | edytuj kod]

  • fwbuilder - rozbudowane narzędzie pozwalające na konfigurację różnych firewalli, w tym iptables
  • Firestarter - interfejs graficzny dla iptables

Interfejs tekstowy[edytuj | edytuj kod]

  • ipmenu - tekstowy interfejs użytkownika umożliwający konfigurację iptables

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. iptables manpages

Linki zewnętrzne[edytuj | edytuj kod]