IPTables 是一个 Linux 内核的防火墙工具,可以用于设置和管理网络规则
限制措施
以 1.2.3.4 通过 53 端口访问 DNS 服务为例:
- 禁止所有IP
iptables -I INPUT -p tcp --dport 53 -j DROP
- 连接速率限制为100Mbps
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 53 -m limit --limit 100mbit/s -j ACCEPT
- 一般限制请求连接数
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 53 -m connlimit --connlimit-above 2 -j DROP
- 限制请求连接数
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 53 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
这个命令中,“-m connlimit” 参数用于指定使用连接限制模块,“–connlimit-above 5” 参数用于指定每秒钟最多建立 5 个连接,“–connlimit-mask 32” 参数用于指定要限制的是源 IP 地址,“-j REJECT --reject-with tcp-reset” 参数用于将超过连接限制的连接拒绝,并向客户端发送 TCP RESET 报文
其他
connlimit 没有找到
可以使用以下命令检查你的系统是否安装了 connlimit 模块:
modprobe -c | grep connlimit
如果命令输出了 alias net-pf-10-connlimit 或者类似的信息,则表示 connlimit 模块已经被安装了。如果没有输出,则表示该模块未安装
另外,你也可以使用 lsmod | grep connlimit 命令来检查该模块是否已经被加载到内核中。如果该命令没有输出,则表示该模块没有被加载。如果有输出,则表示该模块已经被加载了
如果系统没有安装 connlimit 模块,你可以尝试重新编译内核或者安装相应的软件包来启用该模块
–connlimit-mask 32 是什么
“–connlimit-mask 32” 参数是用来指定要限制的是源 IP 地址的最后 32 位。IPv4 地址是由四个 8 位整数组成,每个整数的范围是 0~255,通常用点分十进制表示。例如,IP 地址 192.168.1.100,其中 192、168、1 和 100 都是一个 8 位整数
“–connlimit-mask” 参数用来指定要匹配的 IP 地址位数,单位是位。在这个命令中,“–connlimit-mask 32” 指定要限制的是源 IP 地址的最后 32 位,也就是只限制每个具体的 IP 地址的连接数,不考虑子网掩码的影响。这样可以精确地限制每个 IP 地址的连接数,避免影响其他 IP 地址的正常访问。
如果你希望限制整个子网的连接数,可以将 “–connlimit-mask” 参数设置为较小的值,以匹配子网掩码的位数。例如,“–connlimit-mask 24” 指定要限制的是源 IP 地址的最后 24 位,这样就可以限制整个子网的连接数,而不是单个 IP 地址的连接数
3147

被折叠的 条评论
为什么被折叠?



