防火墙的分类
包过滤型防火墙
工作在OSI参考模型的网络层 它根据数据包头源地址、目的地址、端口号和协议类型 等标志确定是否允许数据包通过
代理型防火墙
主要工作在OSI的应用层 代理服务在确认客户端连接请求有效后接管代理 代为向服 务器发出连接请求
代理型防火墙可以允许或拒绝特定的应用程序或服务,还可以实施数据流监控、过滤、 记录和报告功能
代理服务器通常有高速缓存功能
代理防火墙的最大缺点是速度较慢(客户机请求的地址没有存在于缓存中)
状态检测型防火墙
可以动态地根据实际应用需求 自动生成或删除包过滤规则
不但能根据数据包的源地址、目标地址、协议类型、源端口、目标端口等对数据包进行 控制 而且能记录通过防火墙的连接状态 直接对包里的数据进行处理
网关防火墙
DMZ网关防火墙
netfilter
位于Linux内核中的包过滤防火墙功能体系
称为Linux防火墙的”内核态”
iptables
位于/sbin/iptables 是用来管理防火墙的命令工具
为防火墙体系提供过滤规则/策略 决定如何过滤或处理到达防火墙主机的数据包
成为Linux防火墙的”用户态”
-------习惯上 上述两种称呼都可以代表Linux防火墙
规则链
规则的作用在于对数据包进行过滤或处理 根据处理时机的不同 各种规则被组织在不 同的”链”中
规则链是防火墙规则/策略的集合
默认的5种规则链
INPUT 处理入站数据包 (外网入 内网出 箭头指向防火墙 进入防火墙)
OUTPUT 处理出站数据包
FORWARD 处理转发数据包
POSTROUTING 在进行路由选择后处理数据包
PREROUTING 在进行路由选择前处理数据包
规则表
具有某一类相似用途的防火墙规则 按照不同处理时机区分到不同的规则链以后 被归 置到不同的”表”中
规则表是规则链的集合
默认的4个规则表
raw 表 确定是否对该数据包进行状态跟踪
mangle 表 为数据包设置标记
nat 表 修改数据包中的源、目的IP地址或端口(网关型防火墙 至少两个网卡)
filter表 确定是否放行该数据包(过滤)
iptables 的规则表、链结构
规则表间的优先顺序
raw、mangle、nat、filter
规则链间的匹配顺序
入站数据 PREROUTING、INPUT
出站数据 OUTPUT、POSTROUTING
转发数据 PREROUTING、FORWARD、POSTROUTING
规则链内的匹配顺序
按顺序依次进行检查 找到相匹配的规则即停止(LOG策略会有例外)
若在该链内找不到相匹配的规则 则按该链的默认策略处理
iptables命令的语法格式
ipatables [-t 表名] 管理选项 [链名] [条件匹配] [-j目标动作或跳转]
不指定表名时 默认为filter表
不指定链名时,默认表示该表内所有链
除非设置规则链的缺省策略(如果不是设置默认规则) 否则一