Linux包过滤防火墙

Linux包过滤防火墙

Netfilter
位于linux内核中的包过滤功能体系
称为linux防火墙的“内核态”
Iptables
位于/sbin/iptables,用来管理防火墙规则的工具
称为linux防火墙的“用户态”
包过滤的工作层次
主要是网络层,针对IP数据包
体现在针对包内的IP地址,端口等信息的处理上
Linux包过滤防火墙
Iptables的表,链结构
规则链
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
默认包括5种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
规则表
表的作用:容纳各种规则链
标的划分依据:防火墙规则的作用相似
默认包括4个规则表
Raw表:确定是否对该数据包进行状态跟踪
Mangle表:为数据包中的源,目标IP地址或端口
Nat表:修改数据包中的源,目标ip地址或端口
Filter表:确定是否放行该数据包
默认的表,链结构示意图
Linux包过滤防火墙
数据包过滤的匹配流程
规则表之间的顺序:raw—mangle—nat—filter
规则链之间的顺序
入站:PREROUTING—INPUT
出站:OUTPUT—POSTROUTING
转发:PREROUTING—FROWARD----POSTROUTING
规则链内的匹配顺序
按顺序依次检查,匹配即停止
若找不到相匹配的规则,则按该链的默认策略处理
数据包过滤的匹配流
Linux包过滤防火墙
Iptables的基本语法
语法构成:iptables [-t 表名] 选项 链名 条件 -j 控制类型
注意事项:
1.不指定表名时,默认指filter表
2.不指定链名时,默认指表内的所有链
3.除非设置链的默认策略,否则必须指定匹配条件
4.选项名,链名,控制类型使用大写字母,其余均为小写
控制类型:
ACCEPT:允许通过
DROP:不回应任何
REJECT:拒绝回应ICMP请求
LOG:记录日志信息,然后传给下一条规则链继续匹配,不对数据包进行控制。
选项名:
-A:在链的末尾追加一条规则
-I:在链的开头或指定***插入一条规则
查看规则列表
-L列出所有的规则条目
-n 以数字形式显示地址,端口等信息
-v 以更详细的方式显示规则信息
–line-numbers 查看规则时,显示规则的***
删除,清空规则
-D 删除链内的指定***的一条规则
iptables -D INPUT 10
-F 清空所有规则
iptables -F
设置默认策略
-P 为指定的链设置默认规则
iptables -t filter -P INPUT DROP
默认策略分两种 ACCEPT,DROP
规则的匹配条件:
通用匹配:
可直接使用,不依赖于其他条件或扩展
包括网络协议,IP地址,网络接口
协议匹配: -p 协议名
地址匹配: -s 源地址 -d 目的地址
接口匹配: -i 入站网卡 -o 出站网卡
iptables -I INPUT ! -p icmp j ACCEPT
!表示取反
iptables -A INPUT -s 192.168.8.252 -p icmp -j ACCEPT
iptables -A INPUT -s 192.168.8.0/24 -p icmp -j ACCEPT
iptables -I INPUT -i eth0 -p icmp -j DROP
隐含匹配:
要求以特定的协议匹配作为前提
包括:端口,TCP标记,ICMP类型
端口匹配:–sport 源端口 --dport 目的端口
TCP标记匹配:–tcp-flags 检查范围,被设置的标记
ICMP类型匹配:–icmp-type ICMP类型
iptables -I INPUT -s 192.168.8.252 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
–icmp-type: 8 icmp请求 0 icmp回显 3 不可达
显式匹配:
要求以 -m扩展模块 的形式明确指出类型
包括多端口,MAC地址,IP范围,数据包状态等条件
多端口匹配:-m multiport -sport/-dport
iptables -I INPUT -m multiport -p tcp --dports 80,443 -j REJECT
ip范围:-m IPrange --src-range
MAC范围:-m mac --mac-source mac地址
iptables -I INPUT -m mac --mac-source D8-9D-67-99-B2-E2 -p icmp -j DROP
状态匹配:-m state --state 连接状态
iptables -I INPUT -p tcp -m state --state
ESTABLISHED -j ACCEPT
保存防火墙规则
service iptables saveLinux包过滤防火墙
常见匹配条件总汇
Linux包过滤防火墙