140 lines
2.8 KiB
Markdown
140 lines
2.8 KiB
Markdown
## 1、防火墙概览
|
||
|
||
防火墙的核心作用是:对进出主机或网络边界的数据包按规则进行检查,并根据规则决定**允许、拒绝、丢弃、转发**等行为。
|
||
|
||
在 Linux 中,防火墙底层通常依赖 **Netfilter** 框架。
|
||
|
||
## 2、Netfilter 基础
|
||
|
||
Netfilter 工作在 Linux 内核空间,在报文经过内核协议栈时提供多个钩子点(hook),供防火墙规则介入处理。
|
||
|
||
常见链路包括:
|
||
|
||
- `PREROUTING`
|
||
- `INPUT`
|
||
- `FORWARD`
|
||
- `OUTPUT`
|
||
- `POSTROUTING`
|
||
|
||
### 2.1 报文常见流向
|
||
|
||
#### 流入本机
|
||
|
||
```text
|
||
PREROUTING -> INPUT -> 用户空间进程
|
||
```
|
||
|
||
#### 本机发出
|
||
|
||
```text
|
||
用户空间进程 -> OUTPUT -> POSTROUTING
|
||
```
|
||
|
||
#### 转发流量
|
||
|
||
```text
|
||
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 先明确工具体系
|
||
|
||
要先看系统到底主要在用:
|
||
|
||
- `iptables`
|
||
- `firewalld`
|
||
- `nftables`
|
||
|
||
不同工具的管理方式差别很大。
|
||
|
||
### 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`
|
||
- 排查防火墙问题时,先判断流量方向,再判断所用工具,再看规则是否命中
|