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的速率限制?默认情况下,所有端口都启用了速率限制吗?
发布于 2012-08-26 14:47:40
正如上一篇文章中提到的,您可以自定义user.rules。我需要我的smtp连接速率限制最多12个连接在6秒内。我添加了一条规则,如下所示。注意:这增加了一个限制规则,默认情况下允许在30秒内6。
ufw limit smtp我编辑了/lib/ufw/ other .规则(我保存了这个文件的自定义副本,还有很多其他的调整),如下所示.
### 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发布于 2012-04-12 08:50:18
可以在可以找到/lib/ufw/user.rules的UFW规则文件上更改利率限制。
默认情况下,对所有端口都没有启用限制。您应该手动或通过编辑user.rules文件来添加每个端口。
发布于 2018-03-31 19:01:23
值得指出的是,使用ufw的极限功能可能带来意想不到的后果。
假设对端口22/tcp设置了一个包层限制,作为第一个ufw规则:
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代码的相关行如下:
-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上面的清单可以用
iptables -S | grep ufw-user-limit前两行在ufw-user-input中是连续的,可以用
iptables -S | grep ufw-user-inputhttps://serverfault.com/questions/368523
复制相似问题