xref: /aosp_15_r20/external/iptables/extensions/libxt_recent.man (revision a71a954618bbadd4a345637e5edcf36eec826889)
1*a71a9546SAutomerger Merge WorkerAllows you to dynamically create a list of IP addresses and then match against
2*a71a9546SAutomerger Merge Workerthat list in a few different ways.
3*a71a9546SAutomerger Merge Worker.PP
4*a71a9546SAutomerger Merge WorkerFor example, you can create a "badguy" list out of people attempting to connect
5*a71a9546SAutomerger Merge Workerto port 139 on your firewall and then DROP all future packets from them without
6*a71a9546SAutomerger Merge Workerconsidering them.
7*a71a9546SAutomerger Merge Worker.PP
8*a71a9546SAutomerger Merge Worker\fB\-\-set\fP, \fB\-\-rcheck\fP, \fB\-\-update\fP and \fB\-\-remove\fP are
9*a71a9546SAutomerger Merge Workermutually exclusive.
10*a71a9546SAutomerger Merge Worker.TP
11*a71a9546SAutomerger Merge Worker\fB\-\-name\fP \fIname\fP
12*a71a9546SAutomerger Merge WorkerSpecify the list to use for the commands. If no name is given then
13*a71a9546SAutomerger Merge Worker\fBDEFAULT\fP will be used.
14*a71a9546SAutomerger Merge Worker.TP
15*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-set\fP
16*a71a9546SAutomerger Merge WorkerThis will add the source address of the packet to the list. If the source
17*a71a9546SAutomerger Merge Workeraddress is already in the list, this will update the existing entry. This will
18*a71a9546SAutomerger Merge Workeralways return success (or failure if \fB!\fP is passed in).
19*a71a9546SAutomerger Merge Worker.TP
20*a71a9546SAutomerger Merge Worker\fB\-\-rsource\fP
21*a71a9546SAutomerger Merge WorkerMatch/save the source address of each packet in the recent list table. This
22*a71a9546SAutomerger Merge Workeris the default.
23*a71a9546SAutomerger Merge Worker.TP
24*a71a9546SAutomerger Merge Worker\fB\-\-rdest\fP
25*a71a9546SAutomerger Merge WorkerMatch/save the destination address of each packet in the recent list table.
26*a71a9546SAutomerger Merge Worker.TP
27*a71a9546SAutomerger Merge Worker\fB\-\-mask\fP \fInetmask\fP
28*a71a9546SAutomerger Merge WorkerNetmask that will be applied to this recent list.
29*a71a9546SAutomerger Merge Worker.TP
30*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-rcheck\fP
31*a71a9546SAutomerger Merge WorkerCheck if the source address of the packet is currently in the list.
32*a71a9546SAutomerger Merge Worker.TP
33*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-update\fP
34*a71a9546SAutomerger Merge WorkerLike \fB\-\-rcheck\fP, except it will update the "last seen" timestamp if it
35*a71a9546SAutomerger Merge Workermatches.
36*a71a9546SAutomerger Merge Worker.TP
37*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-remove\fP
38*a71a9546SAutomerger Merge WorkerCheck if the source address of the packet is currently in the list and if so
39*a71a9546SAutomerger Merge Workerthat address will be removed from the list and the rule will return true. If
40*a71a9546SAutomerger Merge Workerthe address is not found, false is returned.
41*a71a9546SAutomerger Merge Worker.TP
42*a71a9546SAutomerger Merge Worker\fB\-\-seconds\fP \fIseconds\fP
43*a71a9546SAutomerger Merge WorkerThis option must be used in conjunction with one of \fB\-\-rcheck\fP or
44*a71a9546SAutomerger Merge Worker\fB\-\-update\fP. When used, this will narrow the match to only happen when the
45*a71a9546SAutomerger Merge Workeraddress is in the list and was seen within the last given number of seconds.
46*a71a9546SAutomerger Merge Worker.TP
47*a71a9546SAutomerger Merge Worker\fB\-\-reap\fP
48*a71a9546SAutomerger Merge WorkerThis option can only be used in conjunction with \fB\-\-seconds\fP.
49*a71a9546SAutomerger Merge WorkerWhen used, this will cause entries older than the last given number of seconds
50*a71a9546SAutomerger Merge Workerto be purged.
51*a71a9546SAutomerger Merge Worker.TP
52*a71a9546SAutomerger Merge Worker\fB\-\-hitcount\fP \fIhits\fP
53*a71a9546SAutomerger Merge WorkerThis option must be used in conjunction with one of \fB\-\-rcheck\fP or
54*a71a9546SAutomerger Merge Worker\fB\-\-update\fP. When used, this will narrow the match to only happen when the
55*a71a9546SAutomerger Merge Workeraddress is in the list and packets had been received greater than or equal to
56*a71a9546SAutomerger Merge Workerthe given value. This option may be used along with \fB\-\-seconds\fP to create
57*a71a9546SAutomerger Merge Workeran even narrower match requiring a certain number of hits within a specific
58*a71a9546SAutomerger Merge Workertime frame. The maximum value for the hitcount parameter is given by the
59*a71a9546SAutomerger Merge Worker"ip_pkt_list_tot" parameter of the xt_recent kernel module. Exceeding this
60*a71a9546SAutomerger Merge Workervalue on the command line will cause the rule to be rejected.
61*a71a9546SAutomerger Merge Worker.TP
62*a71a9546SAutomerger Merge Worker\fB\-\-rttl\fP
63*a71a9546SAutomerger Merge WorkerThis option may only be used in conjunction with one of \fB\-\-rcheck\fP or
64*a71a9546SAutomerger Merge Worker\fB\-\-update\fP. When used, this will narrow the match to only happen when the
65*a71a9546SAutomerger Merge Workeraddress is in the list and the TTL of the current packet matches that of the
66*a71a9546SAutomerger Merge Workerpacket which hit the \fB\-\-set\fP rule. This may be useful if you have problems
67*a71a9546SAutomerger Merge Workerwith people faking their source address in order to DoS you via this module by
68*a71a9546SAutomerger Merge Workerdisallowing others access to your site by sending bogus packets to you.
69*a71a9546SAutomerger Merge Worker.PP
70*a71a9546SAutomerger Merge WorkerExamples:
71*a71a9546SAutomerger Merge Worker.IP
72*a71a9546SAutomerger Merge Workeriptables \-A FORWARD \-m recent \-\-name badguy \-\-rcheck \-\-seconds 60 \-j DROP
73*a71a9546SAutomerger Merge Worker.IP
74*a71a9546SAutomerger Merge Workeriptables \-A FORWARD \-p tcp \-i eth0 \-\-dport 139 \-m recent \-\-name badguy \-\-set \-j DROP
75*a71a9546SAutomerger Merge Worker.PP
76*a71a9546SAutomerger Merge Worker\fB/proc/net/xt_recent/*\fP are the current lists of addresses and information
77*a71a9546SAutomerger Merge Workerabout each entry of each list.
78*a71a9546SAutomerger Merge Worker.PP
79*a71a9546SAutomerger Merge WorkerEach file in \fB/proc/net/xt_recent/\fP can be read from to see the current
80*a71a9546SAutomerger Merge Workerlist or written two using the following commands to modify the list:
81*a71a9546SAutomerger Merge Worker.TP
82*a71a9546SAutomerger Merge Worker\fBecho +\fP\fIaddr\fP\fB >/proc/net/xt_recent/DEFAULT\fP
83*a71a9546SAutomerger Merge Workerto add \fIaddr\fP to the DEFAULT list
84*a71a9546SAutomerger Merge Worker.TP
85*a71a9546SAutomerger Merge Worker\fBecho \-\fP\fIaddr\fP\fB >/proc/net/xt_recent/DEFAULT\fP
86*a71a9546SAutomerger Merge Workerto remove \fIaddr\fP from the DEFAULT list
87*a71a9546SAutomerger Merge Worker.TP
88*a71a9546SAutomerger Merge Worker\fBecho / >/proc/net/xt_recent/DEFAULT\fP
89*a71a9546SAutomerger Merge Workerto flush the DEFAULT list (remove all entries).
90*a71a9546SAutomerger Merge Worker.PP
91*a71a9546SAutomerger Merge WorkerThe module itself accepts parameters, defaults shown:
92*a71a9546SAutomerger Merge Worker.TP
93*a71a9546SAutomerger Merge Worker\fBip_list_tot\fP=\fI100\fP
94*a71a9546SAutomerger Merge WorkerNumber of addresses remembered per table.
95*a71a9546SAutomerger Merge Worker.TP
96*a71a9546SAutomerger Merge Worker\fBip_pkt_list_tot\fP=\fI20\fP
97*a71a9546SAutomerger Merge WorkerNumber of packets per address remembered.
98*a71a9546SAutomerger Merge Worker.TP
99*a71a9546SAutomerger Merge Worker\fBip_list_hash_size\fP=\fI0\fP
100*a71a9546SAutomerger Merge WorkerHash table size. 0 means to calculate it based on ip_list_tot, default: 512.
101*a71a9546SAutomerger Merge Worker.TP
102*a71a9546SAutomerger Merge Worker\fBip_list_perms\fP=\fI0644\fP
103*a71a9546SAutomerger Merge WorkerPermissions for /proc/net/xt_recent/* files.
104*a71a9546SAutomerger Merge Worker.TP
105*a71a9546SAutomerger Merge Worker\fBip_list_uid\fP=\fI0\fP
106*a71a9546SAutomerger Merge WorkerNumerical UID for ownership of /proc/net/xt_recent/* files.
107*a71a9546SAutomerger Merge Worker.TP
108*a71a9546SAutomerger Merge Worker\fBip_list_gid\fP=\fI0\fP
109*a71a9546SAutomerger Merge WorkerNumerical GID for ownership of /proc/net/xt_recent/* files.
110