netfilter_123.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
netfilter_123

NETFILTER分析 droplet@ 2006/2 目录 introduction netfilter conntrack nat alg extension iptables match target programming netfilter 防火墙是什么 网络报文的选择,监控,过滤系统 部署在网络边界,关键路径上 网络报文的表示 策略的表示 防火墙的类型 包过滤 应用代理 状态检测 LINUX防火墙的发展历史 linux2.0.x:ipfw linux2.2.x:ipchains linux2.4.x:iptables linux2.6.x:iptables 检查点 检查点上的数据结构 检查点的定义 检查点的调用流程 检查点在PF_INET中的位置 NF_IP_PRE_ROUTING NF_IP_LOCAL_IN NF_IP_FORWARD NF_IP_LOCAL_OUT NF_IP_POST_ROUTING conntrack的检查点 ip_conntrack_in ip_confirm ip_conntrack状态结构 ip_conntrack与sk_buff的关系 ip_conntrack状态转换[1] ip_conntrack状态转换[2] ip_conntrack与tcp协议 ip_conntrack与udp协议 ip_conntrack与icmp协议 nat的检查点 nat与ip_conntrack ip_nat_fn ip_nat_setup_info do_bindings nat与tcp协议 nat与udp协议 nat与icmp协议 ip_conntrack与ALG的关系 ALG调用流程 ip_conntrack与expect的关系 iptables 一个包选择、监控、过滤系统 table,chain,rule 系统预定义了三个table:filter,nat,mangle 用户空间的数据结构和内核空间的数据结构不同 一个可扩展的架构 ipt_table ipt_entry 规则匹配策略 不能从一个预定义的chain跳转到另一个预定义的chain,只能从预定义的chain跳转用户定义的chain,或者用户定义的chain之间相互跳转 不同检查点上的chain不能相互跳转 预定义的chain有默认的包处理方式,如果chain上的规则都没有匹配,就使用默认的处理方式 如果用户定义的chain上的规则都没有匹配,则返回指向这个chain的规则所在的chain的下一条规则 filter表 nat表 mangle表 hook的顺序 ipt_match ipt_entry_match ipt_target ipt_entry_target 增加一个table 在内核中增加一个表,注意表所监听的检查点 这个表可以使用哪些match和target,这个表的用途是什么 增加一个match 在iptables中增加一个extension,也就是增加一个iptables_match 增加一个内核模块,这个内核模块注册一个ipt_match 注意用户空间向内核空间传递数据的大小 增加一个target 在iptables中增加一个extension,也就是增加一个iptables_target 增加一个内核模块,这个内核模块注册一个ipt_target 注意用户空间向内核空间传递数据的大小 programming nf_hook_ops 注意网络包的流程,不要与其他功能冲突 检查点 优先级 返回值 programming nf_sockopt_ops pf:协议簇的编号 get_optmin,get_optmax:getsockopt的optname参数的范围,不能与其他模块冲突 set_optmin,set_optmax:setsockopt的optname参数的范围,不能与其他模块冲突 programming nf_queue_handler_t queue_handler[NPROTO],每个协议簇只能注册一个queue_handler 内核空间与用户空间通过netlink socket收发包 用户空间注入的包被重新发送到缓存它的检查点上继续完成后续的检查 从用户空间重新注入内核空间,需要调用nf_reinject 注意事项 在自己的钩子函数中,如果修改了包,需要执行(*pskb)-nfcache |= NFC_ALTERED,表示这个包已经被修改,如果不能确定,则用NFC_UNKNOWN 执行流:多个执行流可以执行同一段代码,但是每个执行流的状态却不同 协议栈流程:函数的调用关系,是静态的 包的流程:包在协议栈中的流动,是动态的 广播包和多播包的路由转发 本机发出的包在IP层有多个接口可以调用 一个起始点

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档