首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UFW限速:设定限值

UFW限速:设定限值
EN

Server Fault用户
提问于 2012-03-11 12:35:34
回答 3查看 51.7K关注 0票数 30

UFW的手册页面提到,它可以为我设置iptable速率限制:

ufw支持连接速率限制,这对于防止蛮力登录攻击很有用.如果IP地址在过去30秒内试图启动6个或更多连接,ufw将拒绝连接。详情请参见http://www.debian-administration.org/articles/187。典型用法是: ufw限制ssh/tcp

不幸的是,这是我能找到的所有文档。我想坚持使用UFW,而不是使用更复杂的iptables命令(以保持“简单”)。

我将如何使用ufw限制每30秒80到20个连接端口上的所有传入(所以不是传出)通信量?如何禁用端口30000到30005的速率限制?默认情况下,所有端口都启用了速率限制吗?

EN

回答 3

Server Fault用户

发布于 2012-08-26 14:47:40

正如上一篇文章中提到的,您可以自定义user.rules。我需要我的smtp连接速率限制最多12个连接在6秒内。我添加了一条规则,如下所示。注意:这增加了一个限制规则,默认情况下允许在30秒内6。

代码语言:javascript
复制
ufw limit smtp

我编辑了/lib/ufw/ other .规则(我保存了这个文件的自定义副本,还有很多其他的调整),如下所示.

代码语言:javascript
复制
### tuple ### limit tcp 25 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 25 -m state --state NEW -m recent --set
-A ufw-user-input -p tcp --dport 25 -m state --state NEW -m recent --update --seconds 6 --hitcount 12 -j ufw-user-limit
-A ufw-user-input -p tcp --dport 25 -j ufw-user-limit-accept
票数 9
EN

Server Fault用户

发布于 2012-04-12 08:50:18

可以在可以找到/lib/ufw/user.rules的UFW规则文件上更改利率限制。

默认情况下,对所有端口都没有启用限制。您应该手动或通过编辑user.rules文件来添加每个端口。

票数 5
EN

Server Fault用户

发布于 2018-03-31 19:01:23

值得指出的是,使用ufw的极限功能可能带来意想不到的后果。

假设对端口22/tcp设置了一个包层限制,作为第一个ufw规则:

代码语言:javascript
复制
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     LIMIT IN    Anywhere                  
...

假设在限制下工作的任何连接仍然可以通过遵循ufw规则和最后的默认策略“拒绝(传入)”来过滤。

至少对于ufw 0.35来说,这种假设是错误的。事实上,逻辑中的极限立即接受没有被限制准则拒绝的任何输入。

在psuedocode中,极限逻辑是

if CONDITION then DENY else ACCEPT

而其他ufw规则似乎有逻辑:

if CONDITION then (DENY|ACCEPT) else continue to next rule

我个人发现这是ufw限制的意外行为,只有通过意外地在系统日志文件中找到许多端口22登录尝试才发现它,因为其他ufw规则过滤了这些尝试。

行为确认

的细节

ufw插入的iptable代码的相关行如下:

代码语言:javascript
复制
-A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 6 --name DEFAULT --mask 255.255.255.255 --rsource -j ufw-user-limit
-A ufw-user-input -p tcp -m tcp --dport 22 -j ufw-user-limit-accept
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT

上面的清单可以用

代码语言:javascript
复制
iptables -S | grep ufw-user-limit

前两行在ufw-user-input中是连续的,可以用

代码语言:javascript
复制
iptables -S | grep ufw-user-input
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/368523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档