2.8 KiB
2.8 KiB
1、防火墙概览
防火墙的核心作用是:对进出主机或网络边界的数据包按规则进行检查,并根据规则决定允许、拒绝、丢弃、转发等行为。
在 Linux 中,防火墙底层通常依赖 Netfilter 框架。
2、Netfilter 基础
Netfilter 工作在 Linux 内核空间,在报文经过内核协议栈时提供多个钩子点(hook),供防火墙规则介入处理。
常见链路包括:
PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING
2.1 报文常见流向
流入本机
PREROUTING -> INPUT -> 用户空间进程
本机发出
用户空间进程 -> OUTPUT -> POSTROUTING
转发流量
PREROUTING -> FORWARD -> POSTROUTING
3、常见防火墙工具
3.1 iptables
传统 Linux 防火墙工具,直接操作 Netfilter 规则。
特点:
- 资料多
- 老系统常见
- 规则链和表概念较重要
3.2 firewalld
在 CentOS 7 等系统中较常见。
特点:
- 底层仍基于 Netfilter
- 提供更高层抽象,如 zone、service
- 动态修改更方便
3.3 nftables
更现代的防火墙方案。
特点:
- 设计更统一
- 可逐渐替代
iptables - 现代发行版中越来越常见
4、如何理解链和规则
可以把每条链理解成一个“关卡”,数据包经过时,逐条匹配规则:
- 匹配到允许规则,就放行
- 匹配到拒绝规则,就拒绝
- 匹配到丢弃规则,就静默丢弃
- 如果都不匹配,则按默认策略处理
5、常见使用建议
5.1 先明确流量方向
排查前先区分:
- 是入站流量问题?
- 是出站流量问题?
- 还是转发流量问题?
5.2 先明确工具体系
要先看系统到底主要在用:
iptablesfirewalldnftables
不同工具的管理方式差别很大。
5.3 规则变更要留后门
远程改防火墙时要特别小心:
- 优先保留 SSH 放行规则
- 先验证再保存
- 最好有控制台或带外管理入口
6、排障思路
6.1 服务端口明明启动了但访问不到
优先检查:
- 端口是否真的在监听
- 防火墙是否放行该端口
- 路由和安全组是否正确
6.2 主机能发不能收,或能收不能发
重点判断:
- 是
INPUT问题 - 是
OUTPUT问题 - 还是上游网络策略问题
6.3 路由转发不生效
重点检查:
- 是否命中
FORWARD链 - 是否开启了 IP 转发
- NAT / masquerade 是否配置正确
7、小结
- Linux 防火墙底层核心是 Netfilter
- 常见链有
PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING - 常见工具有
iptables、firewalld、nftables - 排查防火墙问题时,先判断流量方向,再判断所用工具,再看规则是否命中