防火墙

 防火墙它是一种隔离工具(Packets Filter Firewall,即包过滤防火墙,带状态追踪机制的包过滤防火墙)。

工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件;
组件可以是硬件级别或者是软件级别:
硬件防火墙:在硬件级别实现部分过滤功能的防火墙;另一部分功能基于软件实现;提供通用功能支撑;
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙;提供复杂逻辑;
主机防火墙:服务范围为当前主机;只为单台主机提供访问策略;
网络防火墙:服务范围为防火墙被的局域网;整个逻辑是在软件层实现的;

 

netfilter与iptables
(1) Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架。该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。Iptables/Netfilter的这些规则可以通过灵活组合,形成非常多的功能、涵盖各个方面,这一切都得益于它的优秀设计思想;
(2) Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:
网络地址转换(Network Address Translate);
数据包内容修改;
以及数据包过滤的防火墙功能;
(3) Netfilter 平台中制定了数据包的五个挂载点(Hook Point,可理解为钩子函数,数据包到达这些位置的时候会主动调用我们的函数,使我们有机会能在数据包路由的时候改变它们的方向、内容);
这5个挂载点分别是 PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING;
(4) iptables:Netfilter 所设置的规则是存放在内核内存中的,而 iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld

iptables 和 netfilter 是一套 Linux 防火墙组合工具,共同合作完成系统的防护工作。iptables 是客户端工具,netfilter 是服务端程序,iptables 工作在用户态,netfilter 工作在内核态,用户可以通过 iptables 命令作用到服务端的 netfilter,netfilter 触发相应的回调函数(hook 机制)执行相应的防护动作。

用户通过 iptables 下发安全规则或策略,netfilter 执行规则所对应的动作,来完成对系统的防护。netfilter 的本质就是对报文进行规则的匹配,针对不同的规则,执行相应的动作 。

这些规则有不同的功能,也有相同的功能,在报文传输的整个过程中,有不同的作用点,有的作用在入口,有的作用在出口,有的作用在中间协议栈等等。为了方便管理这些规则集,netfilter 实现上引入了两个概念: 链(chain)和表(table) 。

posted @ 2021-07-19 18:36  Einewhaw  阅读(352)  评论(0编辑  收藏  举报