位置: 编程技术 - 正文

从五方面解析Linux防火墙框架问题

编辑:rootadmin
Linux系统中的Netfilter提供了一个抽象、通用化的框架,该框架定义的一个子功能的实现就是包过滤子系统,框架包含以下五部分:1. 为每种网络协议(IPv4、IPv6等)定义一套钩子函数(IPv4定义了5个钩子函数), 这些钩子函数在数据报流过协议栈的几个关键点被调用。在这几个点中,协议栈将把数据报及钩子函数标号作为参数调用Netfilter框架。   2. 内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这样当某个数据包被传递给Netfilter框架时,内核能检测是否有任何模块对该协议和钩子函数进行了注册。若注册了,则调用该模块的注册时使用的回调函数,这样这些模块就有机会检查(可能还会修改)该数据包、丢弃该数据包及指示Netfilter将该数据包传入用户空间的队列。   3 .那些排队的数据包是被传递给用户空间的异步地进行处理。一个用户进程能检查数据包,修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子函数中注入到内核中。 4. 任何在IP层要被抛弃的IP数据包在真正抛弃之前都要进行检查。例如允许模块检查IP-Spoofed包(被路由抛弃)。   5.IP层的五个HOOK点的位置如下所示:(1)NF_IP_PRE_ROUTING:刚刚进入网络层的数据包通过此点(刚刚进行完版本号,校验 和等检测),源地址转换在此点进行;IP_Input.c中IP_Rcv调用;(2)NF_IP_LOCAL_IN:经路由查找后,送往本机的通过此检查点,INPUT包过滤在此点进行,IP_local_deliver中调用;(3)NF_IP_FORWARD:要转发的包通过此检测点,FORWORD包过滤在此点进行; (4)NF_IP_POST_ROUTING:所有马上便要通过网络设备出去的包通过此检测点,内置的目的地址转换功能(包括地址伪装)在此点进行;(5)NF_IP_LOCAL_OUT:本机进程发出的包通过此检测点,OUTPUT包过滤在此点进行。   这些点是已经在内核中定义好的,内核模块能够注册在这些HOOK点进行的处理,可使用nf_register_hook函数指定。在数据报经过这些钩子函数时被调用,从而模块可以修改这些数据报,并向Netfilter返回如下值:   NF_ACCEPT 继续正常传输数据报   NF_DROP 丢弃该数据报,不再传输   NF_STOLEN 模块接管该数据报,不要继续传输该数据报   NF_QUEUE 对该数据报进行排队(通常用于将数据报给用户空间的进程进行处理)   NF_REPEAT 再次调用该钩子函数   一个基于Netfilter框架的、称为IPtables的数据报选择系统在Linux2.4内核中被应用,其实它就是IPchains的后继工具,但却有更强的可扩展性。内核模块可以注册一个新的规则表(table),并要求数据报流经指定的规则表。这种数据报选择用于实现数据报过滤(filter表),网络地址转换(Nat表)及数据报处理(Mangle表)。 Linux2.4内核提供的这三种数据报处理功能都基于Netfilter的钩子函数和IP表。它们是独立的模块,相互之间是独立的。它们都完美的集成到由Netfileter提供的框架中。   包过滤   Filter表格不会对数据报进行修改,而只对数据报进行过滤。IPtables优于IPchains的一个方面就是它更为小巧和快速。它是通过钩子函数NF_IP_LOCAL_IN、NF_IP_FORWARD及NF_IP_LOCAL_OUT接入Netfilter框架的。因此对于任何一个数 报只有一个地方对其进行过滤。这相对IPchains来说是一个巨大的改进,因为在IPchains中一个被转发的数据报会遍历三条链。   NAT   NAT表格监听三个Netfilter钩子函数:NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING及NF_IP_LOCAL_OUT。 NF_IP_PRE_ROUTING实现对需要转发的数据报的源地址进行地址转换而NF_IP_POST_ROUTING则对需要转发的数据包的目的地址进行地址转换。对于本地数据报的目的地址的转换则由NF_IP_LOCAL_OUT来实现。NAT表格不同于filter表格,因为只有新连接的第一个数据报将遍历表格,而随后的数据报将根据第一个数据报的结果进行同样的转换处理。NAT表格被用在源NAT、目的NAT,伪装(其是源NAT的一个特例)及透明代理(其是目的NAT的一个特例)。   数据报处理(Packet Mangling)   Mangle表格在NF_IP_PRE_ROUTING和NF_IP_LOCAL_OUT钩子中进行注册。使用 mangle表,可以实现对数据报的修改或给数据报附上一些带外数据。当前mangle表支持修改TOS位及设置skb的nfmard字段。   如果我们想加入自己的代码,便要用nf_register_hook函数。我们的工作便是生成一个struct nf_hook_ops结构的实例,并用nf_register_hook将其HOOK上。其中list项我们总要初始化为{NULL,NULL};由于一般在IP层工作,pf总是PF_INET;hooknum就是我们选择的HOOK点;一个HOOK点可能挂多个处理函数,谁先谁后,便要看优先级,即priority的指定了。Netfilter_IPv4.h中用一个枚举类型指定了内置的处理函数的优先级

推荐整理分享从五方面解析Linux防火墙框架问题,希望有所帮助,仅作参考,欢迎阅读内容。

从五方面解析Linux防火墙框架问题

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

linux下编译php支持jpeg的笔记 有一朋友liunx主机配置php的gd库未支持jpeg,需要重新编译支持jpeg,凭经验用./configurewith-gdwith-jpeg-dir=/usr/lib这个居然不起作用改变顺序如下生效./configurewith-j

Vim 复制粘贴探秘 每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好

通过rpm包安装、配置及卸载mysql的详细过程 以MySQL-server-4.0.-0.i.rpm为例,放在/data目录下cd/datarpm-ivhMySQL-server-4.0.-0.i.rpm安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示

标签: 从五方面解析Linux防火墙框架问题

本文链接地址:https://www.jiuchutong.com/biancheng/364842.html 转载请保留说明!

上一篇:在Linux操作系统下防范黑客几个实用技巧(在Linux操作系统中哪些命令可以正确关闭系统防火墙)

下一篇:linux下编译php支持jpeg的笔记(linux编译安装php扩展)

  • 我可以通过什么知道明天的天气情况
  • 进项税额转出会影响利润吗
  • 何为金税四期
  • 叉车折旧年限是几年预计净残值
  • 企业其他综合收益减少应该怎么处理
  • 自然人税务系统扣缴客户端怎么申报
  • 工程造价咨询服务流程
  • 增值税汇总纳税政策文件
  • 应收而未收的装修款如何做账务处理?
  • 留抵进项税抵欠税后期末未交增值税会减少吗
  • 应付未付的职工工资属于什么会计科目
  • 职工福利费在期间费用表中怎么填
  • 年终奖第二年才发怎么计算个税在个税app
  • 增值税确认平台一直显示该网站出现问题
  • 土地增值税的征税对象,是村集体
  • 企业有哪些o
  • 核定征收的企业不能弥补亏损
  • 基本户注销帐户余额怎么分配?
  • 购买境外技术缴纳税费
  • linux 判断语句
  • 职工食堂的费用,会计上怎么做账?
  • 应付债券包括
  • php 设计模式
  • 捐赠支出税前扣除条件
  • 进口增值税采集
  • CLIP模型原理
  • 特卡波小镇旅游攻略
  • php 图片水印
  • 收到证券公司异常交易
  • 机器学习中的数学原理——对数似然函数
  • 期末余额跟年初余额是什么意思
  • 3d点云处理算法
  • 企业的研发费用如何进行账务处理
  • 帝国cms如何设置最新
  • mysql全局锁和表锁
  • 增值税认证清单路径
  • 帝国cms修改提示怎么设置
  • 配置windows update
  • mysql复制表结构及数据
  • zabbix安装部署
  • 汇率差的差额计算方式
  • 暂估成本多了
  • 公司性质和单位性质的区别
  • sqlserver的replace
  • 处置固定资产增值税收入与企业所得税收入不一致
  • 辅助生产车间的低值易耗品计入
  • 油卡预付卡发票能入费用吗怎么入账
  • 股权转让需要哪些手续及流程
  • 只有发票没有合同可以做账吗
  • 税金及附加是按什么基础交的
  • 个人承包工程如何缴纳税款
  • 农民工工资专用账户管理制度的办法
  • 应收票据和应收账款减少说明什么
  • 主营业务成本与其他业务成本的区别
  • 存出保证金的账务处理
  • 进程管理界面
  • ubuntu20.04怎么安装
  • ghost安装器怎么用
  • win8系统摄像头怎么打开
  • ubuntu设置关闭按钮在右侧
  • mac怎么移动鼠标
  • vsftpd 550错误
  • win10更新2021年6月
  • 在linux系统中,用来存放系统所需要的配置文件
  • win10非正常关机系统修复
  • 安卓网页开发工具
  • 创建自己的app外卖平台
  • 用python抓取网页数据的代码
  • python3 mongodb
  • js调用图片代码
  • javascript例题
  • javascript初级教程
  • javascript中变量的命名规则有哪些?
  • Android使用领域(移动端,PC,服务端)
  • 邮储银行优势及特长简介
  • 12123怎么上传交强险
  • 建筑行业增值税税收优惠政策
  • 钢结构税收政策
  • 河南三门峡税务社保缴费电话
  • 融资租赁出租会计账务处理流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设