iptables

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
iptables
Filtr pakietów
Producent Netfilter Core Team
System operacyjny Linux
Pierwsze wydanie 1998
Aktualna wersja stabilna 1.4.17
25 grudnia 2012
Licencja GNU General Public License
Książki w Wikibooks Książki w Wikibooks
www.netfilter.org

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]