Iptables
| Autor | Netfilter Core Team |
|---|---|
| Pierwsze wydanie | 1998 |
| Aktualna wersja stabilna | 1.8.13 (4 marca 2026) [±] |
| Język programowania | C |
| System operacyjny | Linux |
| Rodzaj | filtr pakietów |
| Licencja | GNU General Public License |
| Strona internetowa | |
iptables – 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
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
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
- fwbuilder – rozbudowane narzędzie pozwalające na konfigurację różnych firewalli, w tym iptables
- Firestarter – interfejs graficzny dla iptables
- ipmenu – tekstowy interfejs użytkownika umożliwiający konfigurację iptables
Zobacz też
- przekierowanie portów
- czas życia pakietu
- Netfilter
- ebtables – odpowiednik iptables dla mostu
Przypisy
- ↑ iptables. dev.medozas.de. [zarchiwizowane z tego adresu (2009-06-12)]. manpages.
Linki zewnętrzne
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.