Iptablesa防火墙linux
Netfilter :位于linux内核的包过滤功能体系,称为linux防火墙的“内核态”tcp
Iptables:位于/sbin/iptables,用来管理防火墙规则的工具,称为linux防火墙的“用户态”ide
规则链工具
规则链的做用:对数据包进行过滤或处理spa
链的做用:容纳各类防火墙规则接口
链的分类依据:处理数据包的不一样时机ip
默认包括5种规则链路由
INPUT:处理入站数据包it
OUTPUT:处理出站数据包io
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
规则表
表的做用:容纳各类规则链
表的划分依据:防火墙规则的做用类似
默认包括4个规则表
raw表:肯定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源,目标ip地址或端口
filter表:过滤数据包
规则表之间的顺序:raw--mangle--nat--filter
规则链之间的顺序:入站:PREROUTING--INPUT 出站:OUTPUT--POSTROUTING 转发:PREROUTING--FORWARD--POSTROUTING
规则链的匹配顺序:按顺序依次检查,匹配即中止(LOG策略列外)
若找不到相匹配的规则,则按该链的默认策略处理
raw表:PREROUTING OUTPUT
mangle表:5个链
nat表:PREROUTING POSTROUTING OUTPUT
filter表:INPUT FORWARD OUTPUT
iptables的基本语法: iptables 【-t 表名】 选项 链名 条件 -J 控制类型
注意:不指定表名时。默认指filter表 不指定链名时,默认表内的全部链 选项,链名,控制类型使用大写字母,其他均为小写。
选项汇总:
添加新的规则: -A:在链的末尾追加一条规则
-I:在链的开头(或指定序名)插入一条规则
查看规则列表: -L:列出全部规则条目
-n:以数字形式显示地址
-V:以更详细的方式显示规则信息
--line-numbers:查看规则时,显示规则的序号
删除,清空规则: -D:删除链内指定序列号(或内容)的一条规则
-F:清空全部的规则
设置默认策略: -P:为指定链设置默认规则
经常使用匹配条件汇总
通用匹配: 协议匹配: -p 协议名
地址匹配, -s 源地址 -d 目标地址
接口匹配 -i 入站网卡 -o 出站网卡
隐含匹配: 端口匹配: --sport 源端口 --dport 目标端口
TCP标记匹配: --tcp-flags 检查范围被设置的标记
CMP类型匹配: --icmp -type ICMP 类型
显示匹配: 多端口匹配: -m multiport --sports | --dports 端口列
Ip范围匹配: -m iprange --src-range ip范围
MAC地址匹配: -m mac --mac-source MAC地址
状态匹配: -m state --state 链接状态