1、http:/ 深圳市共进电子有限公司EBTABLS 培训欧阳棣http:/ 深圳市共进电子有限公司培训内容 Ebtables 概述 Ebtables 框架 扩展 ebtables Ebtables 应用 问题思考http:/ 深圳市共进电子有限公司Ebtables 概述http:/ 深圳市共进电子有限公司Ebtables 是什么 说到 ebtables 大家可能最首先会想到iptables,iptables、 ebtables它们是 linux防火墙的两个组成部份。 iptables主要提供了基于 ip头部信息的过滤,如 IP五元组等 ebtables提供了基于桥的以太帧过滤,日志, MAC
2、DNAT和 brouting,同时它也有一些简单的 IP过滤功能。 http:/ 深圳市共进电子有限公司Ebtables 功能 Ethernet protocol filtering. MAC address filtering. Simple IP header filtering. ARP header filtering. 802.1Q VLAN filtering. In/Out interface filtering (logical and physical device). MAC address nat.http:/ 深圳市共进电子有限公司Ebtables 功能 Logging
3、. Frame counters. Ability to add, delete and insert rules; flush chains; zero counters. Brouter facility. Ability to atomically load a complete table, containing the rules you made, into the kernel. See the man page and the examples section. Support for user defined chains. Support for marking frame
4、s and matching marked frames.http:/ 深圳市共进电子有限公司Ebtables 框架http:/ 深圳市共进电子有限公司用户交互用户程序内核模块用户层内核层socketset get应用程序 communication.c内核层 static struct nf_sockopt_ops ebt_sockoptshttp:/ 深圳市共进电子有限公司Hook 点nf_hooksNPROTONF_MAX_HOOKS NPROTO = 32,支持协议族的数量 NF_MAX_HOOKS = 8,支持检查点的数量 检查点上的 nf_hook_ops结构,按 priority
5、的值,从小到大排列nf_hook_opshttp:/ 深圳市共进电子有限公司Hook 点上的数据结构struct nf_hook_opsstruct list_head list;nf_hookfn *hook; int pf;int hooknum; int priority;unsigned int nf_hookfn(unsigned int hooknum,struct sk_buff *skb,const struct net_device *in,const struct net_device *out, int (*okfn)(struct sk_buff *); list:链表结构; hook:检查点上调用的函数; pf:协议族; hooknum:检查点的编号 ; priority:此结构的优先级 nf_register_hook:注册 nf_hook_ops结构 nf_unregister_hook:卸载 nf_hoop_ops结构