Linux 下的 netfilter 认识与常规操作

Linux 下的 netfilter 认识与常规操作

前言

博客写到今天,1年7个月。可是包含所有写作经历,这个时间线可以达到三年。

上次更新了一篇 “镇站之宝” ,也是本站阅读量第一的文章。

推荐大家仔细阅读,受益匪浅 —— Linux 下Shell 脚本几种基本命令替换区别(6259)


还有一周多,就去参加 Redhat 工程师考试了。这几天在翻阅自己平时积累下来的文章集合,用搜索引擎找了一下发现居然没有 firewall-cmd 也没有 iptables 的相关文章。写过 systemd 架构下的 systemctl 系统状态管理器——systemd 之 systemctl ,以及 systemd-journald 日志审计查询器 —— systemd 之 journalctl

Let's Go TO the world of FIREWALL.

什么是防火墙

防火墙,是网络工程师和系统工程师的共同挡板。

它在 OSI 七层协议中的分别具有以下功能,高级协议包含低级协议。比如网络层的防火墙可以识别来往 IP 地址,亦可识别最底层链路层的 MAC 地址以及物理层传输的帧和 bit 信号(然鹅,通常物理层多数用在数据包封装类型)。

Linux 下的 netfilter 认识与常规操作

早期在参加集团组织的 “网络搭建比赛” 时,写过这篇文章——CCNA学习 NAT网络地址转换

纵观整个网络架构:先有了中继器,用于增长传统网线只有一百米的长度限制(理论通过中继器达到无限);然后对于 “正常的网络架构” 来说,一个连接口只能连接一个网段。为了更好的实现网络连接,出现了 Hub 集线器,这样我们就可以连接俩个网段了;最后,因为 Hub 处于数据链路层只能识辨 MAC 地址并且只有一个 冲突域 ,所以需要全网进行广播代价太大。出现了当今流行的 Switch 交换机,除了带宽上的质变,它最多支持 48 口 将不同网段之间流量交换。并且全部可以处于不同的冲突域,不再需要全网广播仅需要按照 wlan 划分在一个冲突域。

上述都是主机的概念。对于网络来说,路由器也是最重要的组成部分(其实现在的三层交换机已经很强悍了,具有路由功能)。Windows 中 软件防火墙 位于应用层内,网络中的 硬件防火墙 可在第二层至第七层工作。

Linux 下的 netfilter 认识与常规操作

Linux 下的 netfilter 认识与常规操作

注意:如果有时间、有能力,建议仔细观看上图。每一层都被解释的非常透彻,下文会对单层单个程序做简单使用科普教程。

什么是 ebtables

  ebtables程序是一个基于linux的桥接防火墙的过滤工具。它能透明化过滤通过 Linux 桥的网络流量。过滤可能仅仅在链路层过滤以及在高网络层的基本过滤,高级日志记录,MAC DNAT / SNAT 和路由器设备也包括在内。

  ebtables工具可以结合其他 Linux 过滤工具(iptables,ip6tables和arptables)做一个桥接网络防火墙也可以过滤这些更高层次。这是通过 bridge-netfilter 架构是标准 Linux内核 的一部分。ebtables arptables 代码库是由 netfilter开发者 接管维护的软件。

提示: ebtablesiptables 区别在于前者走网桥上的二层流量,后者走路由层面上的三层流量。

1、基本过滤配置

ebtables -P FORWARD DROP
ebtables -A FORWARD -p IPv4 -j ACCEPT
ebtables -A FORWARD -p ARP -j ACCEPT
ebtables -A FORWARD -p LENGTH -j ACCEPT
ebtables -A FORWARD --log-level info --log-ip --log-prefix EBFW
ebtables -P INPUT DROP
ebtables -A INPUT -p IPv4 -j ACCEPT
ebtables -A INPUT -p ARP -j ACCEPT
ebtables -A INPUT -p LENGTH -j ACCEPT
ebtables -A INPUT --log-level info --log-ip --log-prefix EBFW
ebtables -P OUTPUT DROP
ebtables -A OUTPUT -p IPv4 -j ACCEPT
ebtables -A OUTPUT -p ARP -j ACCEPT
ebtables -A OUTPUT -p LENGTH -j ACCEPT
ebtables -A OUTPUT --log-level info --log-ip --log-arp --log-prefix EBFW -j DROP

这是一个基本的过滤器配置,只会让由 IPv4 和 ARP 协议构成的帧通过。同时在网络有了一些旧机器使用以太网帧协议字段作为一个长度字段(他们使用以太网 802.2 或 802.3 协议)。没有理由不让这些机器通过,更准确地来说是:我们有一个 理由/办法 让他们通过

上一篇:《学习OpenCV》练习题第五章第一题ab


下一篇:test20181016 B君的第一题