Recipe 2.16 Listing Your Firewall Rules

2.16.1 Problem

You want to see your firewall rules.

2.16.2 Solution

For iptables:

# iptables -L [chain]

For ipchains:

# ipchains -L [chain]

For more detailed output, append the -v option.

If iptables takes a long time to print the rule list, try appending the -n option to disable reverse DNS lookups. Such lookups of local addresses, such as, may cause delays due to timeouts.

2.16.3 Discussion

An iptables rule like:

# iptables -A mychain -p tcp -s -d --dport smtp -j chain2

has a listing like:

Chain mychain (3 references)
target     prot opt source               destination
chain2     tcp  --                tcp dpt:smtp

which is basically a repeat of what you specified: any SMTP packets from IP address to should be forwarded to target chain2. Here's a similar ipchains rule that adds logging:

# ipchains -A mychain -p tcp -s -d --dport smtp -l -j chain2

Its listing looks like:

Chain mychain (3 references):
target   prot opt     source      destination    ports
chain2   tcp  ----l-        any -> smtp

A detailed listing (-L -v) adds packet and byte counts and more:

Chain mychain (3 references): 
pkts bytes  target  prot opt     tosa tosx ifname source   destination  ports
15   2640   chain2  tcp  ----l-  0xFF 0x00 any      any -> smtp

Another way to view your rules is in the output of iptables-save or ipchains-save [Recipe 2.19], but this more concise format is not as readable. It's meant only to be processed by iptables-restore or ipchains-restore, respectively:

# ipchains-save
 ... Saving 'mychain'.
-A foo -s -d 25:25 -p 6 -j chain2 -l

2.16.4 See Also

iptables(8), ipchains(8).

    Chapter 9. Testing and Monitoring