Linux防火墙netfilter/ebtables简介

ebtables是一款用于管理以太网桥帧的工具,类似于iptables但更简单。它包括filter、nat和broute三个表,每个表有内置链,用户可以自定义链。规则中的target包括ACCEPT、DROP等,用于处理匹配的以太帧。 ebtables在网络安全和桥接中起到关键作用。
摘要由CSDN通过智能技术生成

备注:本文翻译于ebtables官方用户手册,翻译中有用词不当的地方请指正


NAME

ebtables (v2.0.10-1) - Ethernet bridge frame table administration

SYNOPSIS(概要)

ebtables [-t table ] -[ACDI] chain rule specification [match extensions] [watcher extensions] target
ebtables [-t table ] -P chain ACCEPT | DROP | RETURN
ebtables [-t table ] -F [chain]
ebtables [-t table ] -Z [chain]
ebtables [-t table ] -L [-Z] [chain] [ [–Ln] | [–Lx] ] [–Lc] [–Lmac2]
ebtables [-t table ] -N chain [-P ACCEPT | DROP | RETURN]
ebtables [-t table ] -X [chain]
ebtables [-t table ] -E old-chain-name new-chain-name
ebtables [-t table ] –init-table
ebtables [-t table ] [–atomic-file file] –atomic-commit
ebtables [-t table ] [–atomic-file file] –atomic-init
ebtables [-t table ] [–atomic-file file] –atomic-save

DESCRIPTION

ebtales 是一个应用程序,主要用于设置和维护那些用于监视以太帧的规则表,它和iptables类似,但又比iptables简单,主要是由于以太层协议要比ip层协议简单

CHAINS

Linux内核中有三个带有内置链的ebtables表,不同的表代表着不同的功能集,每个表上都有一套规则。这套规则就叫做链,每套规则称为一条链chain。每个链都是可以与以太帧匹配的规则的有序列表。如果一条规则与一个以太帧匹配之后,指定的处理程序会对匹配的以太帧进行处理,这个指定的处理程序我们把他称为目标(target),然而,如果这个以太帧没有与链中的这条规则匹配,那么就检查链中的下一条规则,以此类推。用户可以为自己创建一条自定义链,这条自定义链的名称被当成target放在另一条规则当中。比起在链中逐条遍历检查规则,定义自己的自定义链可能更为好用,性能更佳,并且对于将过滤规则构造为组织良好且可维护的规则集至关重要。

TARGETS

一条防火墙规则指定了以太帧的范围(什么样的以太帧是可以匹配)以及匹配之后的被称为target的指定处理程序。当一个帧匹配了一条规则之后,接下来内核就会执行这条规则中的target部分。这个target可以是以下这几个值中的一个:ACCEPT,DROP,CONTINUE,RETURN,‘externsion’(跳转到用户自定义链)
ACCEPT的意思是让以太帧通过防火墙。DROP就意味着被匹配的以太帧必须得被丢弃,然而,当ACCEPT和DROP这两个target出现在BROUTING链的规则中时,他们所表示的意思还有所不同,这个会在下面的-t目录中会详细讲解。CONTINUE就意味着继续检查下一条规则,这点很好用,比如可以知道在这个链中有多少个帧通过了一个确定的点,你可以选择通过日志的方式把这些帧记录下来,也可以在这个帧上添加多个target的方式。RETURN意味值停止遍历这条链然后回到上层嵌套的链中继续执行下一条规则,'externsion’请参考用户手册中TARGET EXTENSIONS章节

TABLES

正如上面提到,linux内核有三个ebtables的表,在三个表的名字为filter,nat,broute。在这三个表中,filter是命令行操作时默认的,如果你要在filter上操作,你可以在ebtables的命令行选项中不携带**-t filter这个选项,但是如果你需要对其他两个表进行处理,就需要携带-t选项,且-t**选项必须为ebtables的第一个参数
-t, --table

  • filter 是默认表,该表包含三个内置链:INPUT(用于目的地为网桥本身的帧,以目的MAC的角度),OUTPUT(本地产生的数据包或者路由转发的数据包或者网桥转发的数据包),FORWARD(网桥转发的帧)
  • nat 主要用于修改mac地址,包含三个内置链:PREROUTING(以太帧进来时对其进行修改),OUTPUT(用于本地产生的帧或者在桥接之前选择路由或者桥接),POSTROUTING(改变那些将要出去的帧),关于链的名称PREROUTING和POSTROUTING的小注释:将它们命名为PREFORWARDING和POSTFORWARDING会更准确,但是对于所有来自iptables世界到ebtables的人来说,使用相同的名字会更容易。请注意,如果您不喜欢默认名称,则可以使用(-E)更改名称。
  • broute 用于创建桥接,它具有一个内置链:BROUTING。目标DROP和ACCEPT在broute表中具有特殊含义(使用这些名称而不是更具描述性的名称主要是为了和其他表保持通用性)。DROP实际上意味着必须对帧进行路由,而ACCEPT意味着必须对帧进行桥接。BROUTING链很早就被遍历了。但是,只有进入处于转发状态的网桥端口上的帧才能遍历它。通常,这些帧将被桥接,但是您可以在此处另行决定。重定向目标在这里非常方便。

未完待续…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值