18.3.5. Target Options
Once a packet has matched a particular rule, the rule can direct the packet to a number of different targets that decide its fate and, possibly, take additional actions. Each chain has a default target, which is used if none of the rules on that chain match a packet or if none of the rules which match the packet specify a target.
The following are the standard targets:
<user-defined-chain>
— Replace <user-defined-chain> with the name of a user-defined chain within the table. This target passes the packet to the target chain.ACCEPT
— Allows the packet to successfully move on to its destination or another chain.DROP
— Drops the packet without responding to the requester. The system that sent the packet is not notified of the failure.QUEUE
— The packet is queued for handling by a user-space application.RETURN
— Stops checking the packet against rules in the current chain. If the packet with aRETURN
target matches a rule in a chain called from another chain, the packet is returned to the first chain to resume rule checking where it left off. If theRETURN
rule is used on a built-in chain and the packet cannot move up to its previous chain, the default target for the current chain decides what action to take.
In addition to these standard targets, various other targets may be used with extensions called target modules. For more information about match option modules, refer to Section 18.3.4.4, “Additional Match Option Modules”.
There are many extended target modules, most of which only apply to specific tables or situations. A couple of the most popular target modules included by default in Red Hat Enterprise Linux are:
LOG
— Logs all packets that match this rule. Since the packets are logged by the kernel, the/etc/syslog.conf
file determines where these log entries are written. By default, they are placed in the/var/log/messages
file.Additional options can be used after theLOG
target to specify the way in which logging occurs:--log-level
— Sets the priority level of a logging event. A list of priority levels can be found within thesyslog.conf
man page.--log-ip-options
— Logs any options set in the header of a IP packet.--log-prefix
— Places a string of up to 29 characters before the log line when it is written. This is useful for writing syslog filters for use in conjunction with packet logging.--log-tcp-options
— Logs any options set in the header of a TCP packet.--log-tcp-sequence
— Writes the TCP sequence number for the packet in the log.
REJECT
— Sends an error packet back to the remote system and drops the packet.TheREJECT
target accepts--reject-with <type>
(where <type> is the rejection type) allowing more detailed information to be sent back with the error packet. The messageport-unreachable
is the default<type>
error given if no other option is used. For a full list of<type>
options, refer to theiptables
man page.
Other target extensions, including several that are useful for IP masquerading using the
nat
table or with packet alteration using the mangle
table, can be found in the iptables
man page.