18.3. Options Used within iptables Commands

Rules for filtering packets are put in place using the iptables command. The following aspects of the packet are most often used as criteria:
  • Packet Type — Specifies the type of packets the command filters.
  • Packet Source/Destination — Specifies which packets the command filters based on the source or destination of the packet.
  • Target — Specifies what action is taken on packets matching the above criteria.
For more information on specific options which address these aspects of a packet, refer to Section 18.3.4, “iptables Match Options” and Section 18.3.5, “Target Options”.
The options used with given iptables rules must be grouped logically, based on the purpose and conditions of the overall rule, for the rule to be valid. The remainder of this section explains commonly-used options for the iptables command.

18.3.1. Structure of iptables Options

Many iptables commands have the following structure:
iptables [-t <table-name>] <command> <chain-name> <parameter-1> \
         <option-1> <parameter-n> <option-n>
The <table-name> option allows the user to select a table other than the default filter table to use with the command. The <command> option dictates a specific action to perform, such as appending or deleting the rule specified by the <chain-name> option. Following the <chain-name> are pairs of parameters and options that define what happens when a packet matches the rule.
When looking at the structure of an iptables command, it is important to remember that, unlike most other commands, the length and complexity of an iptables command can change based on its purpose. A command to remove a rule from a chain can be very short, while a command designed to filter packets from a particular subnet using a variety of specific parameters and options can be rather lengthy. When creating iptables commands, it is helpful to recognize that some parameters and options may create the need for other parameters and options to further specify the previous option's request. To construct a valid rule, this must continue until every parameter and option that requires another set of options is satisfied.
Type iptables -h to view a comprehensive list of iptables command structures.