- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ebtables
问题2 Local Process br0 internet wan 问题:报文会经过哪些链 * 注意:ebtable 只能在linux桥中使用,brouting应该可以理解为bridge routing * * 最多支持8个检查点 检查点的命名:有一定的含义 检查点的位置:包的流程,执行流(流是根据包的信息来分流的),协议栈的流程(协议栈有多种实现方式) 同一执行流上,同一检查点可以出现几次?(一般来说,只需要出现一次,否则就是浪费) 同一检查点可以出现在不同的执行流上,保证对所有的网络流量都要控制的能力 如何确定网络流的路径?如何避免遗漏?如何提高效率? 过滤的意义就在于:对所有的网络流量都有控制的能力 检查点上的钩子函数是扩展的关键 检查点上钩子函数的顺序安排是否合理决定了功能的实现是否合理 * 注意传递给nf_hookfn的参数:hooknum,检查点的编号;skb,需要检查的包;in,接收包的设备;out,发送包的设备;okfn,检查通过后需要执行的后续处理(与nf_hookfn的执行结果相关) in并不一定就是收到包的物理设备的指针,这个需要看二层传递给三层的参数是什么 in和out在不同的检查点上的值可能不同,也可能为空 * hook点就像一个水闸,可以截断水流。如果水流被截断,后面的沟渠就不会有包流到。 钩子函数就是一个个闸门,闸门的开关决定了水流是否可以往下流。 那么okfn当然就是水闸后的沟渠,检查通过后,水当然是往下流。(把这个okfn与nf_hook_ops中的okfn区分开) 如果在钩子函数中截断水流,后面的钩子函数就没有机会检查水流了。 钩子函数中不能设置跳转 * NF_BR_BROUTING不是一个真的的hook,它不能被NF_HOOK调用,它的调用是通地一个外部的函数指针来实现的 * 1、ebtables包括了应用程序和内核模块两部份 2、所有的table、match、watcher和target在两层中是一一对应的 * 1、在文件中可以指定使用的hook 2、结构体的关系是struct ebt_entries - struct ebt_replace- struct ebt_table, struct nf_hook_ops 变量与hook对应 3、注意用户空间和内核层文件的命名方式 * 1、在文件中可以指定使用的hook 2、结构体的关系是struct ebt_entries - struct ebt_replace- struct ebt_table, struct nf_hook_ops 变量与hook对应 3、注意用户空间和内核层文件的命名方式 * 1、在文件中可以指定使用的hook 2、结构体的关系是struct ebt_entries - struct ebt_replace- struct ebt_table, struct nf_hook_ops 变量与hook对应 3、注意用户空间和内核层文件的命名方式 * 1、在文件中可以指定使用的hook 2、结构体的关系是struct ebt_entries - struct ebt_replace- struct ebt_table, struct nf_hook_ops 变量与hook对应 3、注意用户空间和内核层文件的命名方式 * 1、在文件中可以指定使用的hook 2、结构体的关系是struct ebt_entries - struct ebt_replace- struct ebt_table, struct nf_hook_ops 变量与hook对应 3、注意用户空间和内核层文件的命名方式 * 注意红色字符的判断条件 * iptables -t nat -A POSTROUTING -s /24 -d /24 -j ACCEPT iptables -t nat -A POSTROUTING -s /24 -j MASQUERADE 扩展 ebtbles Ebtables 的两层 table match 通信 接口 watcher target socket table match watcher target userspace Kernel 通信 接口 增加一个table 用户空间 定义一个全局struct ebt_u_table结构体变量,并赋初值 根据结构体成员函数指针指定的函数名编写相关函数,如help等函数 在_init函数中注册前面定义的结构体变量 内核层 初始化struct ebt_entries结构体变量,定义需要的链 初始化struct ebt_replace结构体变量,指表可以使用的hook及对应的链 初始化struct ebt_table结构体变量和编相关函数数 初始化struc
文档评论(0)