1.Linux防火墙基础
作为隔离内外网、过滤非法数据的有力屏障,防火墙通常按实现环境的不同分为硬件防火墙和软件防火墙。硬件防火墙是功能专一的硬件设备,具有比较全面的功能,其工作效率较高,但是加个昂贵,通常只应用于非常重要的主干网络节点。而软件防火墙的功能是由操作系统或软件程序实现的,可以在Linux或者Windows等系统平台构建软件防火墙。软件防火墙的价格优势比较明显,配置也相对灵活,如果设置得当,同样可以实现硬件防火墙具有的功能和效率。Internet中有大量的企业网络在使用Linux系统搭建软件防火墙。
防火墙分类:从逻辑上分类
分类 | 说明 |
---|---|
主机防火墙 | 针对单个主机进行分类 |
网络防火墙 | 处于网络入口或边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网 |
防火墙分类:从物理上分类
分类 | 说明 |
---|---|
硬件防火墙 | 在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高 |
软件防火墙 | 应用软件处理逻辑运行于通用硬件之上的防火墙,成本低 |
2.netfile与iptables
netfiter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”(Kernel Space,又称内核空间)的安全框架。
iptables: 指的是管理防火墙的命令工具,程序通常位于/sbin/iptables,属于“用户态”(User Space,又称用户空间)的防火墙管理体系。
***两个概念:
内核空间:也叫做内核态,操作系统占据的内存区域
用户空间:也叫做用户态,用户进程占据的内存区域
3. iptables四表五链详解
链:prerouting input forword output postrouting
为什么称之为链?我分享一下个人理解:许多规则构成的集合,执行时从上到下匹配,像个链表一样的存在与使用。
表:每条链上有需要执行的同一类规则的集合,比如有的需要执行地址转化,有的需要进行过滤,因此分成了四张表,分别为:raw表,mangle表,nat表,filter表。
表的说明:
表 | 说明 |
---|---|
filter表 | 负责过滤功能,防火墙;内核模块:iptables_filter |
nat表 | network address translation,网络地址转换功能;内核模块:iptable_nat |
mangle表 | 拆解报文,做出修改,并重新封装 的功能;iptable_mangle |
raw表 | 关闭nat表上启用的连接追踪机制;iptable_raw |
链表对应关系(链上不一定每张表都有):
链 | 表 |
---|---|
PREROUTING | raw表,mangle表,nat表 |
INPUT | mangle表,filter表,(centos7中还有nat表,centos6中没有 |
FORWARD | mangle表,filter表 |
OUTPUT | raw表,mangle表,nat表,filter表 |
POSTROUTING | mangle表,nat表 |
****在实际使用中,通常是用表来操作,因此我们需要熟记链上的表。
*****匹配规则:为数据包经过一个"链"的时候,会将当前链的所有规则都匹配一遍,但是匹配时总归要有顺序,我们应该一条一条的去匹配,而且我们说过,相同功能类型的规则会汇聚在一张"表"中,那么,哪些"表"中的规则会放在"链"的最前面执行呢,这时候就需要有一个优先级的问题,那些表应该优先匹配呢?iptables为我们定义了4张"表",当他们处于同一条"链"时,执行的优先级如下。优先级次序(由高而低):raw --> mangle --> nat --> filter