iptables基础知识原创
# 什么是iptables?
iptables是一个用户空间工具,允许系统管理员配置Linux内核中的IPv4包过滤规则。它是Netfilter项目的一部分,Netfilter是Linux内核中的一个框架,用于各种网络相关操作,如包过滤、网络地址转换(NAT)等。
# iptables的基本概念
表(Table):
filter
表:默认表,用于包过滤。nat
表:用于网络地址转换。mangle
表:用于修改包的服务类型(TOS),TTL等字段。raw
表:用于配置特殊的处理,主要用于连接跟踪机制前的包处理。
链(Chain): 每个表包含若干链,链是规则的集合,常用的链有:
INPUT
链:处理入站流量。OUTPUT
链:处理出站流量。FORWARD
链:处理转发的流量。PREROUTING
链:处理入站包在路由前。POSTROUTING
链:处理出站包在路由后。
规则(Rule): 每个链中包含若干规则,每条规则定义了对符合特定条件的网络包应采取的动作。规则由匹配条件和动作(target)组成。
# iptables 的工作流程
当一个包进入网络接口时,iptables根据配置的表和链来决定如何处理这个包。以下是一个基本的数据流示例:
- PREROUTING:在包被路由之前,首先经过
PREROUTING
链。用于DNAT(目的网络地址转换)和改变包的目标地址。 - INPUT:针对入站流量,经过路由判定后,入站包将进入
INPUT
链,决定是否允许该包进入本地系统。 - FORWARD:针对转发流量,如果包不是发往本地的,而是需要转发到其他地方,则进入
FORWARD
链。 - OUTPUT:针对本地生成的出站流量,经过
OUTPUT
链决定是否允许该包发送出本地系统。 - POSTROUTING:在包离开网络接口之前,经过
POSTROUTING
链。用于SNAT(源网络地址转换)和改变包的源地址。
# iptables 的基本命令
以下是一些常见的iptables命令:
列出当前的规则:
iptables -L
1添加一条规则:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
1删除一条规则:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
1保存规则(Debian/Ubuntu):
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
1恢复规则:
sudo iptables-restore < /etc/iptables/rules.v4
1
上次更新: 8/28/2024
- 01
- GPT分区使用 parted 扩展分区的操作流程 原创08-28
- 02
- VictoriaMetrics 集群版安装与配置 原创08-24
- 03
- Kubernetes (k8s) 相关名词详解 原创06-27