Iptables is firewall software used in Linux software distributions that works by filtering packets through a system of tables containing a chain of rules for packet filtering. Chains and rule sets contained in the firewall determine whether a packet is allowed and, if so, how it is handled. The tables themselves are kept in memory, and the iptables software provides the configuration of the chains within the tables.
Each packet of data sent over a network has identifying information that is read by the receiving system. Iptables software takes this information and determines what to do with it by moving it through a series of chained rules. The rules work to classify the packet based on its identifying information, such as an Internet protocol (IP) address. After it has been identified, the packet moves from one chain to the next, depending on the configured rule set. The chains determine how the system distributes the packet.
The rules are criteria for how a packet moves within the iptables decision chains. The packet will move from one rule to the next, as long it as meets the requirements for each chain. Each packet will be either accepted, forwarded, dropped, queued, reset or returned.
Acceptance moves the packet through to the next chain, and dropping removes the packet completely. If the packet is queued, it is moved and addressed in a separate queue handler within the user space. When a packet is returned, it moves back to the last accepted chain.
Iptables is a user space application, meaning that it operates within a segregated space within the Linux kernel features. The criteria used to identify and distribute packets by the firewall are completely configurable and customizable using a set of command options. This includes setting up allowance for established sessions, blocking types of traffic and access and allowing only specific traffic on certain ports. The software also can be set up to log all incoming traffic or to log only specific types of traffic.
The Iptables software is maintained by the Nefilter project and first began in 1998. Beyond being used as a firewall and packet manipulation software, Iptables also can be used for IP masquerading, transparent proxy implementation and log analysis. This enables the firewall to detect and prevent potentially malicious activity, further protecting the system. The software also is set up for configuration with third-party extensions, because it contains several layers of application programming interfaces. Iptables is typically installed by default on most distributions of Linux operating systems.