Skip to content
返回云服务

iptables 与 nftables:Linux 手动防火墙规则

当 UFW 不够用时,用 iptables/nftables 写默认丢弃、端口转发和速率限制规则。

服务器安全高级

为什么

UFW 无法表达按 IP 速率限制、端口转发(DNAT)或 Docker 自定义链。iptables/nftables 给完全控制;nftables 是现代替代,语法更清晰且原子换规则。

Verizon 2024 DBIR 显示 68% 的泄露涉及非恶意人为因素。SSH 密钥泄露和 S3 桶配置错误是主要攻击向量 — 加固将泄露风险降低 80% 以上。

何时使用

UFW 无法表达规则(速率限制、DNAT、Docker 交互)时用,或无 UFW 的发行版(RHEL、Alpine)用。避免安全剧场(无深度的混淆)— 非标准 SSH 端口阻止 0 个真实攻击。

无已知漏洞时跳过重型 WAF 规则;它们增加延迟和误报。

如何做

1. Assess your workload requirements — compute, memory, storage, latency 2. Compare providers on price, region availability, and managed services 3. 设默认策略:`iptables -P INPUT DROP`、`iptables -P FORWARD DROP`、`iptables -P OUTPUT ACCEPT`。放行已建立:`iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT`。放行环回:`iptables -A INPUT -i lo -j ACCEPT`。带速率限制放行 SSH:`iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name SSH` 再 `iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP` 再 ACCEPT。保存:`iptables-save > /etc/iptables/rules.v4`。nftables 写 /etc/nftables.conf 并 `nft -f` 加载。 4. Set up IaC (Terraform/Pulumi) to provision resources 5. Configure monitoring, alerts, and cost budgets before going live

示例

# 默认丢弃,放行已建立+环回+SSH(限速)+Web iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT # SSH 限速:每源 4 新连接/分钟 iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name SSH iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT # 持久化 apt install iptables-persistent netfilter-persistent save

常见问题

  • ⚠放行已建立/SSH 前设 INPUT DROP 锁外——顺序重要,先放行。
  • ⚠忘用 iptables-persistent 持久化,重启丢所有规则——装包并保存。
  • ⚠Docker 的 DOCKER 链绕过 INPUT;INPUT 规则不影响容器流量——用 DOCKER-USER。

最佳实践

  • ✓新系统(Debian 10+、RHEL 8+)优先 nftables——原子换规则、语法清晰、性能更好。
  • ✓设 DROP 策略前务必放行已建立/相关和环回,否则锁外。
  • ✓用 iptables-persistent(Debian)或 firewalld(RHEL)使规则过重启;staging 测重启。

常见问题解答

什么是iptables 与 nftables:Linux 手动防火墙规则?它解决什么问题?

当 UFW 不够用时,用 iptables/nftables 写默认丢弃、端口转发和速率限制规则。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手iptables 与 nftables:Linux 手动防火墙规则?

两步即可跑通:① Assess your workload requirements — compute, memory, storage, latency;② Compare providers on price, region availability, and managed services。建议先用免费套餐验证流程,再接入生产环境。

iptables 与 nftables:Linux 手动防火墙规则 最容易踩的坑是什么?

最高频的问题是:放行已建立/SSH 前设 INPUT DROP 锁外——顺序重要,先放行。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

iptables 与 nftables:Linux 手动防火墙规则 的最佳实践有哪些?

iptables 与 nftables:Linux 手动防火墙规则 的最佳实践包括:新系统(Debian 10+、RHEL 8+)优先 nftables——原子换规则、语法清晰、性能更好。;设 DROP 策略前务必放行已建立/相关和环回,否则锁外。;用 iptables-persistent(Debian)或 firewalld(RHEL)使规则过重启;staging 测重启。。其中首条「新系统(Debian 10+、RHEL 8+)优先 nftables——原子换规则、语法清晰、性能更好。」应作为团队默认规范写入 IaC 模板。

iptables 与 nftables:Linux 手动防火墙规则 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。iptables 与 nftables:Linux 手动防火墙规则 多数提供免费套餐,先在免费额度内验证再放量。