lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 1 | Allows you to restrict the number of parallel connections to a server per |
| 2 | client IP address (or client address block). |
| 3 | .TP |
| 4 | [\fB!\fP] \fB\-\-connlimit\-above\fP \fIn\fP |
| 5 | Match if the number of existing connections is (not) above \fIn\fR. |
| 6 | .TP |
| 7 | \fB\-\-connlimit\-mask\fP \fIprefix_length\fP |
| 8 | Group hosts using the prefix length. For IPv4, this must be a number between |
| 9 | (including) 0 and 32. For IPv6, between 0 and 128. |
| 10 | .P |
| 11 | Examples: |
| 12 | .TP |
| 13 | # allow 2 telnet connections per client host |
| 14 | iptables \-A INPUT \-p tcp \-\-syn \-\-dport 23 \-m connlimit \-\-connlimit\-above 2 \-j REJECT |
| 15 | .TP |
| 16 | # you can also match the other way around: |
| 17 | iptables \-A INPUT \-p tcp \-\-syn \-\-dport 23 \-m connlimit ! \-\-connlimit\-above 2 \-j ACCEPT |
| 18 | .TP |
| 19 | # limit the number of parallel HTTP requests to 16 per class C sized \ |
| 20 | network (24 bit netmask) |
| 21 | iptables \-p tcp \-\-syn \-\-dport 80 \-m connlimit \-\-connlimit\-above 16 |
| 22 | \-\-connlimit\-mask 24 \-j REJECT |
| 23 | .TP |
| 24 | # limit the number of parallel HTTP requests to 16 for the link local network \ |
| 25 | (ipv6) |
| 26 | ip6tables \-p tcp \-\-syn \-\-dport 80 \-s fe80::/64 \-m connlimit \-\-connlimit\-above |
| 27 | 16 \-\-connlimit\-mask 64 \-j REJECT |