【笔记】Iptables学习笔记
前言
Iptables学习笔记
Linux的包过滤规则(包过滤防火墙)学习笔记
Iptables的所有功能/表
- raw
- mangle
- nat
- filter
Iptables中链所包含的规则属性
- pkts:处理的数据包个数
- byte:处理的数据包字节数
- target:规则处理方式
- ACCEPT:允许
- REJECT:拒绝
- prot:协议
- all:所有协议
- tcp:TCP协议
- udp:UDP协议
- icmp:ICMP协议
- in:入站网卡
- out:出站网卡
- source:数据包源地址网段
- destination:数据包目标地址网段
filter包过滤规则(包过滤防火墙)
filter表中所包含的链
- INPUT:入站链
- FORWARD:转发链
- OUTPUT:出站链
查看filter表的所有链
-t <raw/mangle/nat/filter>
:指定查看的表。如果不写,缺省值是filter-L
:列出所有规则的条目-n
:以数字形式显示地址、端口号等信息-v
:显示详细信息--line-numbers
:显示行号
1 | iptables -t filter -nvL |
1秒钟刷新1次
1 | watch -n1 iptables -t filter -nvL |
插入规则
通用匹配(必选参数)
-A <INPUT/FORWARD/OUTPUT>
:在链尾添加规则-I <INPUT/FORWARD/OUTPUT>
:在链首添加规则
-I <INPUT/FORWARD/OUTPUT> <num>
:在链首开始的指定行添加规则
-j <ACCEPT/REJECT/DROP/LOG>
:允许/拒绝/丢弃/仅记录日志-p <tcp/udp/icmp>
:定义协议-i eth0
:入站网卡-o eth0
:出站网卡-s 0.0.0.0
:源地址-d 0.0.0.0
:目标地址
隐含匹配(可选参数)
-sport <port>
:源端口号-dport <port>
:目标端口号--tcp-flags
:TCP标记匹配--icmp-type <8/0/3>
:ICMP类型,请求/回显/不可达
显式匹配(特殊功能)
-m multiport --sport
:源端口号列表-m multiport --dport
:目标端口号列表-m iprange --src-range
:IP范围-m mac --mac-source
:MAC地址-m state --state <state>
:状态匹配
1 | iptables -t filter -I <INPUT/FORWARD/OUTPUT> -p <tcp/udp/icmp> -dport <port> -j <ACCEPT/REJECT> |
删除规则
删除指定行号的规则
<num>
:行号
1 | iptables -t filter -D <INPUT/FORWARD/OUTPUT> <num> |
全部清空
1 | iptables -t filter -F <INPUT/FORWARD/OUTPUT> |
修改默认规则
1 | iptables -t filter -P <INPUT/FORWARD/OUTPUT> <ACCEPT/DROP> |
nat网络地址转换
查看nat表的所有链
-t <raw/mangle/nat/filter>
:指定查看的表-L
:列出所有规则的条目-n
:以数字形式显示地址、端口号等信息-v
:显示详细信息--line-numbers
:显示行号
1 | iptables -t nat -nvL |
1秒钟刷新1次
1 | watch -n1 iptables -t nat -nvL |
nat表中所包含的链
- PREROUTING:路由前(内网)位置链
- POSTROUTING:路由后(外网)位置链
- OUTPUT:输出链
插入规则
通用匹配(必选参数)
-A <PREROUTING/POSTROUTING/OUTPUT>
:在链尾添加规则-I <PREROUTING/POSTROUTING/OUTPUT>
:在链首添加规则
-I <PREROUTING/POSTROUTING/OUTPUT> <num>
:在链首开始的指定行添加规则
-j <SNAT/MASQUERADE/DNAT>
:源地址转换/自动转换/目标地址转换-p <tcp/udp/icmp>
:定义协议-i eth0
:入站网卡-o eth0
:出站网卡-s 0.0.0.0
:源地址-d 0.0.0.0
:目标地址--to-source 10.0.0.1
:将源地址转换为网关地址
1 | iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 10.0.0.1 |
备份/还原iptables
<bak>
:备份文件
备份iptables
1 | iptables-save > <bak> |
还原iptables
1 | iptables-restore < <bak> |
将当前iptables保存为默认
1 | service iptables save |