防火墙iptables配置详解
iptables是Linux内核级的防火墙,功能强大但配置复杂。虽然现在很多系统转向了firewalld或nftables,但iptables仍然是最基础、最通用的防火墙工具。理解iptables的工作原理和配置方法,是每个运维人员的基本功。
「防火墙iptables配置详解」提醒我们一个朴素的事实:云上安全纵深防御靠的不是临场发挥,而是平时的体系化建设。告警是否准确、日志是否齐全、权限是否收敛,决定了故障来临时是从容处置还是手忙脚乱。
四表五链
iptables由4个表(table)和5个链(chain)组成:
表:filter(过滤,默认表)、nat(网络地址转换)、mangle(数据包修改)、raw(绕过连接跟踪)。
链:PREROUTING(路由前)、INPUT(进入本机)、FORWARD(转发)、OUTPUT(从本机发出)、POSTROUTING(路由后)。
数据包经过哪些链取决于它的方向:入站包 → PREROUTING → INPUT → 应用程序;出站包 → 应用程序 → OUTPUT → POSTROUTING;转发包 → PREROUTING → FORWARD → POSTROUTING。
常用规则
允许已建立的连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT。这条规则必须放在最前面,否则每次请求的新数据包都会被检查。
允许SSH:iptables -A INPUT -p tcp --dport 22 -j ACCEPT。建议限制来源IP:-s 1.2.3.0/24。
允许HTTP/HTTPS:iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT。
默认拒绝:iptables -P INPUT DROP。将默认策略设为DROP,所有未明确允许的流量都会被丢弃。
防DDoS规则
限制SYN连接速率:iptables -A INPUT -p tcp --syn -m limit --limit 50/s --limit-burst 100 -j ACCEPT。丢弃异常包:iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP(null包)、--tcp-flags ALL ALL -j DROP(XMAS包)。
持久化
iptables规则在重启后丢失。使用 iptables-save > /etc/iptables.rules 保存规则,在启动脚本中 iptables-restore < /etc/iptables.rules 恢复。CentOS使用 service iptables save,Ubuntu使用 netfilter-persistent save。
一份可执行的日常清单
- 暴露面盘点:定期梳理对外端口与服务,关闭不必要的开放。
- 权限最小化:账号与密钥按最小权限分配,定期回收闲置权限。
- 告警治理:清理长期无人响应的告警,保证留下的告警都值得处理。
- 预案演练:对高频故障场景准备处置预案并定期演练。
清单不复杂,难在坚持;而云上安全纵深防御的差距,恰恰体现在坚持上。
把云上安全纵深防御交给更专业的协作方
安徽卓牛为客户提供云上的安全加固、监控体系搭建与运维托管服务,能够结合阿里云安全与可观测产品,帮助团队建立可持续的运维安全体系,而非一次性整改。
若你希望就「防火墙iptables配置详解」涉及的内容做一次现状评估,可通过官网在线客服联系安徽卓牛,获取针对性建议。
