Provided by: iptables_1.8.7-1ubuntu2_amd64 bug

NAME

       xtables-monitor — show changes to rule set and trace-events

SYNOPSIS

       xtables-monitor [-t] [-e] [-4||-6]

DESCRIPTION

       xtables-monitor  is  used  to  monitor  changes  to the ruleset or to show rule evaluation
       events for packets tagged using the TRACE target.  xtables-monitor will run until the user
       aborts execution, typically by using CTRL-C.

OPTIONS

       -e, --event

       Watch for updates to the rule set.
              Updates  include  creation  of  new  tables,  chains  and rules and the name of the
              program that caused the rule update.

       -t, --trace
              Watch for trace events generated by packets that have been tagged using  the  TRACE
              target.

       -4     Restrict output to IPv4.

       -6     Restrict output to IPv6.

EXAMPLE OUTPUT

       xtables-monitor --trace

               1  TRACE:  2  fc475095 raw:PREROUTING:rule:0x3:CONTINUE -4 -t raw -A PREROUTING -p
              icmp -j TRACE
               2 PACKET: 0 fc475095  IN=lo  LL=0x304  0000000000000000000000000800  SRC=127.0.0.1
              DST=127.0.0.1 LEN=84 TOS=0x0 TTL=64 ID=38349DF
               3 TRACE: 2 fc475095 raw:PREROUTING:return:
               4 TRACE: 2 fc475095 raw:PREROUTING:policy:ACCEPT
               5 TRACE: 2 fc475095 filter:INPUT:return:
               6 TRACE: 2 fc475095 filter:INPUT:policy:DROP
               7  TRACE:  2  0df9d3d8 raw:PREROUTING:rule:0x3:CONTINUE -4 -t raw -A PREROUTING -p
              icmp -j TRACE

       The first line shows a packet entering rule set evaluation.  The protocol number is  shown
       (AF_INET  in this case), then a packet identifier number that allows to correlate messages
       coming from rule set evaluation of this packet.  After this, the rule that was matched  by
       the packet is shown.  This is the TRACE rule that turns on tracing events for this packet.

       The  second line dumps information about the packet. Incoming interface and packet headers
       such as source and destination addresses are shown.

       The third line shows that the packet completed  traversal  of  the  raw  table  PREROUTING
       chain,  and  is  returning,  followed by use the chain policy to make accept/drop decision
       (the example shows accept being applied).  The fifth line shows that the packet leaves the
       filter  INPUT  chain,  i.e., no rules in the filter tables INPUT chain matched the packet.
       It then got DROPPED by the policy of the INPUT table, as shown by line six.  The last line
       shows another packet arriving -- the packet id is different.

       When  using  the  TRACE  target, it is usually a good idea to only select packets that are
       relevant, for example via
       iptables -t raw -A PREROUTING -p tcp --dport 80 --syn -m limit --limit 1/s -j TRACE

       xtables-monitor --event
                1 EVENT: nft: NEW table: table filter ip flags 0 use 4 handle 444
                2 EVENT: # nft: ip filter INPUT use 2 type filter hook input prio 0  policy  drop
              packets 0 bytes 0
                3  EVENT:  #  nft: ip filter FORWARD use 0 type filter hook forward prio 0 policy
              accept packets 0 bytes 0
                4 EVENT: # nft: ip filter OUTPUT use 0 type filter  hook  output  prio  0  policy
              accept packets 0 bytes 0
                5 EVENT: -4 -t filter -N TCP
                6 EVENT: -4 -t filter -A TCP -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
                7 EVENT: -4 -t filter -A TCP -p tcp -m multiport --dports 80,443 -j ACCEPT
                8 EVENT: -4 -t filter -A INPUT -p tcp -j TCP
                9  EVENT:  -4  -t  filter  -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j
              ACCEPT
               10 NEWGEN: GENID=13904 PID=25167 NAME=iptables-nftables-restore

       This example shows event monitoring.  Line one shows creation of a table (filter  in  this
       case),  followed  by  three  base  hooks INPUT, FORWARD and OUTPUT.  The iptables-nftables
       tools all create tables and base chains automatically when needed,  so  this  is  expected
       when  a  table  was not yet initialized or when it is re-created from scratch by iptables-
       nftables-restore.  Line five shows a new user-defined chain (TCP) being added, followed by
       addition a few rules. the last line shows that a new ruleset generation has become active,
       i.e., the rule set changes are now active.   This  also  lists  the  process  id  and  the
       programs name.

LIMITATIONS

       xtables-monitor  only  works  with  rules added using iptables-nftables, rules added using
       iptables-legacy cannot be monitored.

BUGS

       Should be reported or by sending email to netfilter-devel@vger.kernel.org or by  filing  a
       report on https://bugzilla.netfilter.org/.

SEE ALSO

       iptables(8), xtables(8), nft(8)