Iptables to oprogramowanie zapory używane w dystrybucjach oprogramowania Linux, które działa poprzez filtrowanie pakietów przez system tabel zawierających łańcuch reguł filtrowania pakietów. Łańcuchy i zestawy reguł zawarte w zaporze określają, czy pakiet jest dozwolony, a jeśli tak, to w jaki sposób jest obsługiwany. Same tabele są przechowywane w pamięci, a oprogramowanie iptables zapewnia konfigurację łańcuchów w tabelach.
Każdy pakiet danych wysyłany przez sieć zawiera informacje identyfikujące, które są odczytywane przez system odbierający. Oprogramowanie Iptables pobiera te informacje i określa, co z nimi zrobić, przenosząc je przez szereg powiązanych reguł. Reguły klasyfikują pakiet na podstawie jego informacji identyfikujących, takich jak adres protokołu internetowego (IP). Po zidentyfikowaniu pakiet przechodzi z jednego łańcucha do drugiego, w zależności od skonfigurowanego zestawu reguł. Łańcuchy określają sposób dystrybucji pakietu przez system.
Reguły określają sposób, w jaki pakiet porusza się w łańcuchach decyzyjnych iptables. Pakiet będzie przechodził od jednej reguły do drugiej, o ile spełnia wymagania dla każdego łańcucha. Każdy pakiet zostanie zaakceptowany, przekazany, odrzucony, umieszczony w kolejce, zresetowany lub zwrócony.
Akceptacja przenosi pakiet do następnego łańcucha, a odrzucenie całkowicie usuwa pakiet. Jeśli pakiet jest umieszczony w kolejce, jest przenoszony i adresowany w oddzielnej procedurze obsługi kolejki w przestrzeni użytkownika. Gdy pakiet zostanie zwrócony, wraca do ostatniego zaakceptowanego łańcucha.
Iptables to aplikacja w przestrzeni użytkownika, co oznacza, że działa w wydzielonej przestrzeni w ramach funkcji jądra systemu Linux. Kryteria używane do identyfikacji i dystrybucji pakietów przez zaporę są w pełni konfigurowalne i dostosowywane za pomocą zestawu opcji poleceń. Obejmuje to konfigurowanie limitu dla ustanowionych sesji, blokowanie rodzajów ruchu i dostępu oraz zezwalanie tylko na określony ruch na określonych portach. Oprogramowanie można również skonfigurować tak, aby rejestrowało cały ruch przychodzący lub rejestrowało tylko określone rodzaje ruchu.
Oprogramowanie Iptables jest utrzymywane przez projekt Nefilter i po raz pierwszy zostało uruchomione w 1998 roku. Oprócz tego, że jest używany jako zapora sieciowa i oprogramowanie do manipulacji pakietami, Iptables może być również używany do maskowania IP, przejrzystej implementacji proxy i analizy logów. Umożliwia to zaporze wykrywanie potencjalnie złośliwych działań i zapobieganie im, dodatkowo chroniąc system. Oprogramowanie jest również skonfigurowane do konfiguracji z rozszerzeniami innych firm, ponieważ zawiera kilka warstw interfejsów programowania aplikacji. Iptables jest zazwyczaj domyślnie instalowany w większości dystrybucji systemów operacyjnych Linux.