🧩iptables in linux
type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary
iptables
是什么
Linux 系统中用于管理和操作网络包过滤规则的工具,是 Linux 内核中的 Netfilter 框架的用户态接口。它的主要作用是配置防火墙、网络地址转换(NAT)和流量控制规则,从而实现对进出网络的数据包进行监控和管理。
基本概念
- 三个主要的chains
- input:处理所有进入主机的流量
- output:处理所有主机发出的流量
- forward:处理所有经过主机发出的流量
- tables
- filter:根据数据包的IP地址、端口等信息来决定接受还是丢弃数据包,多用于防火墙规则配置
- nat:用于网络地址转换的转换规则,当包进入协议栈时,nat中的规则决定是否修改以及如何修改数据包的源、目的IP地址以及端口号信息,以及改变包被路由时的行为
- mangle:用于修改数据包的包头
- raw:允许用户根据
connection tracking
表配置规则,比如忽略connection tracking
中的有效信息
这里是 iptables 的基本流程:
- 包接收: 当一个包到达 Linux 系统时,系统会将其传递给
iptables
。
- 规则匹配:
iptables
将包与所有定义的规则进行比较。如果该包与某个规则相符,则会执行相应的动作。
- 动作执行: 根据规则的类型,
iptables
可以执行以下动作用: ACCEPT
:允许该包通过本机网络。DROP
:拒绝该包,并将其丢弃。REJECT
:将该包传回源IP(通常是接口的原始 IP)。LOG
:记录相关信息并继续运行包。
- 规则链:
iptables
有两个主要的规则链:INPUT
和OUTPUT
。其中,INPUT
规则负责处理到达本机网络的包,而OUTPUT
规则则负责从本机网络发出包。
常见参数
-A
append,表示追加规则,追加到规则表的末尾-I
insert,表示插入到链的指定位置,默认为最前面-D
delete,表示删除-R
replace,表示替换-X
选项可以快速删除不再需要的规则,这个命令可以应用于任何链,包括 INPUT
, OUTPUT, FORWARD
-Z
重制计数器-t
表示选择表,摩恩为filter表- 设置协议
-p
指定协议,如tcp、udp、icmp、all等- 设置端口
—sport
指定源端口—dport
指定目标端口- 设置IP
-s
或 —source
指定源IP-d
或 —destination
指定目标IP- 设置网卡
-i
或—in-interface
指定进入的网络接口-o
或—out-interface
指定离开的网络接口- 设置匹配条件
-m state
用于匹配连接状态,如NEW、ESTABLISHED、RELATED、INVALID-m time
根据时间段匹配流量- 限流
—limit
限制每分钟的最大连接数—limit-burst
触发限制前允许的处罚突发流量- others
-f
或 —fragment
匹配数据包片段—tcp-flags
匹配TCP标志,如SYN、ACKexample
ref
Prev
从0到1,利用kubevirt构建ubuntu虚拟机
Next
LVM
Loading...