You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写满足SSH限流及日志要求的Nftable规则?

NFTables SSH 限速+日志配置实现

核心配置思路

  • 基于filter表的input钩子处理入站流量,优先匹配SSH的TCP 22端口新建连接,避免影响已建立的正常会话
  • 用limit模块按单源IP实现速率控制:配置速率为每分钟30次,突发连接上限5,超过阈值的新建连接直接丢弃
  • 对通过限速校验的新建SSH连接先打日志,再执行放行动作

完整可运行配置示例

#!/usr/sbin/nft -f

# 清空现有规则,避免冲突
flush ruleset

# 定义IPv4 filter表
table ip filter {
    chain input {
        # 默认策略,可根据自身需求调整
        type filter hook input priority 0; policy drop;

        # 放行本地环回流量
        iif "lo" accept

        # 放行已建立、相关状态的连接,必须配置否则SSH连接建立后会被阻断
        ct state { established, related } accept

        # 匹配SSH 22端口新建TCP连接
        tcp dport 22 ct state new {
            # 单源IP限速:每分钟30次,突发5次
            limit rate 30/minute burst 5 type saddr \
            # 匹配到限速阈值内的连接打日志,前缀可自定义方便后续排查
            log prefix "nft_ssh_accept: " \
            # 放行连接
            accept
            # 超过限速的连接直接丢弃
            drop
        }

        # 其他业务端口的放行规则可在下方补充
    }
}

生效与验证方法

  1. 将上述配置保存到/etc/nftables/ssh_rules.nft
  2. 执行命令加载配置:nft -f /etc/nftables/ssh_rules.nft
  3. 执行命令查看规则是否加载成功:nft list ruleset
  4. 系统日志可在/var/log/auth.log或/var/log/syslog中按配置的日志前缀筛选SSH连接记录

内容的提问来源于stack exchange,提问作者blackbird6666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:24:03