首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置iptable的误区

配置iptable的误区
EN

Server Fault用户
提问于 2019-08-21 06:34:58
回答 1查看 172关注 0票数 0

是否有可能以这种方式创建iptable逻辑?

  1. 接受ssh,http,https
  2. 如果ip已经连接,则删除连接(每ip /1秒只有一个连接)。
  3. 如果每ip /1秒有超过50个连接,则将其列入黑名单(ipset,我猜)
  4. 每小时清理黑名单。

如果你发布了一些准备好使用配置的文章,我会很高兴的。现在,我试图使连接限制50 50conn/1秒,但我看到了上千个连接。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-08-21 09:12:15

我假设有限制(你在第2和第3段提到过)。应用于允许的到ssh/http/https的连接。

此外,我假设您希望对源IP应用限制,而不管对目标端口的限制(也就是说,如果我的IP由于SSH尝试而被禁止,那么HTTP/HTTPS流量也将被禁止)。

在这种情况下,你需要:

代码语言:javascript
复制
# flush all rules
iptables -F
# delete all user-defined chains
iptables -X
# set default policies
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# allow packets from already estabilished connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP

# limit connection to SSH to 1 per IP
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
# dtto for http
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
# dtto for https
iptables -A INPUT -p tcp --syn --dport 443 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

# create new chain called "my-limited-chain"
iptables -N my-limited-chain
# set limits (allow 50 connections, erase failed attempts at a speed 50 attempts per hour), accept satisfactory traffic
iptables -A my-limited-chain -m limit --limit 50/hour --limit-burst 50 -j ACCEPT
# drop traffic over the limits
iptables -A my-limited-chain -j DROP

# redirect new SSH/HTTP/HTTPS connections to my-limited-chain
iptables -A INPUT -p tcp --dport 22,80,443 -m state --state NEW -j my-limited-chain

注意:

  • 限制HTTP和HTTPS通信量仅为一个连接可能会导致性能下降,因为大多数HTTP/S客户端使用多个连接来加快多元素网页的加载。
  • 这个片段完全忽略了IPv6。如果您试图为IPv6提供此解决方案,请注意--connlimit-mask,因为在IPv6中,有些机器可以有一个IPv6地址(--connlimit-mask 128),而一些机器甚至可以(而且应该)有多达2^64 IPv6地址(--connlimit-mask 64)。
  • 有了这个精确的规则,"50/h“限制将禁止我建立新的连接,但它不会关闭我已经建立的连接。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/980089

复制
相关文章

相似问题

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