Iptables är brandväggsprogram som används i Linux-programvarudistributioner som fungerar genom att filtrera paket genom ett system av tabeller som innehåller en kedja av regler för paketfiltrering. Kedjor och regeluppsättningar som finns i brandväggen avgör om ett paket är tillåtet och i så fall hur det hanteras. Själva tabellerna hålls i minnet och iptables-mjukvaran tillhandahåller konfigurationen av kedjorna i tabellerna.
Varje datapaket som skickas över ett nätverk har identifierande information som läses av det mottagande systemet. Iptables programvara tar denna information och bestämmer vad den ska göra med den genom att flytta den genom en serie kedjade regler. Reglerna fungerar för att klassificera paketet baserat på dess identifierande information, till exempel en IP-adress (Internet Protocol). Efter att det har identifierats flyttas paketet från en kedja till nästa, beroende på den konfigurerade regeluppsättningen. Kedjorna bestämmer hur systemet distribuerar paketet.
Reglerna är kriterier för hur ett paket rör sig inom iptables beslutskedjor. Paketet kommer att flyttas från en regel till en annan, så länge det uppfyller kraven för varje kedja. Varje paket kommer att antingen accepteras, vidarebefordras, släpps, köas, återställas eller returneras.
Acceptans flyttar paketet vidare till nästa kedja, och om du släpper tas paketet bort helt. Om paketet står i kö flyttas det och adresseras i en separat köhanterare inom användarutrymmet. När ett paket returneras flyttas det tillbaka till den senast accepterade kedjan.
Iptables är en användarrymdapplikation, vilket betyder att den fungerar inom ett segregerat utrymme inom Linux-kärnans funktioner. Kriterierna som används för att identifiera och distribuera paket av brandväggen är helt konfigurerbara och anpassningsbara med hjälp av en uppsättning kommandoalternativ. Detta inkluderar att ställa in tillåtelse för etablerade sessioner, blockera typer av trafik och åtkomst och endast tillåta specifik trafik på vissa portar. Programvaran kan också ställas in för att logga all inkommande trafik eller att endast logga specifika typer av trafik.
Iptables-mjukvaran underhålls av Nefilter-projektet och började först 1998. Förutom att användas som brandvägg och paketmanipuleringsmjukvara kan Iptables också användas för IP-maskering, transparent proxyimplementering och logganalys. Detta gör det möjligt för brandväggen att upptäcka och förhindra potentiellt skadlig aktivitet, vilket ytterligare skyddar systemet. Mjukvaran är också inställd för konfiguration med tredjepartstillägg, eftersom den innehåller flera lager av applikationsprogrammeringsgränssnitt. Iptables är vanligtvis installerat som standard på de flesta distributioner av Linux-operativsystem.