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 信号(然鹅,通常物理层多数用在数据包封装类型)。

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

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

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

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

什么是 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 协议)。没有理由不让这些机器通过,更准确地来说是:我们有一个 理由/办法 让他们通过

Linux 下的 netfilter 认识与常规操作的更多相关文章

  1. (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?

    转自:http://blog.chinaunix.net/uid-23069658-id-3160506.html 本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之 ...

  2. 洞悉linux下的Netfilter&iptables:什么是Netfilter?

    本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了.趁有时间,好好把这方面的东西总结一番.一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共 ...

  3. linux下文件压缩与解压操作

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可 ...

  4. Linux下MySql的登陆和管理操作

    一.mysql数据库启停1.linux下启动mysql的命令:    mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径)2.linux下重启 ...

  5. Linux下部署Samba服务环境的操作记录

    关于Linux和Windows系统之间的文件传输,很多人选择使用FTP,相对较安全,但是有时还是会出现一些问题,比如上传文件时,文件名莫名出现乱码,文件大小改变等问题.相比较来说,使用Samba作为文 ...

  6. linux下各种形式的shell加法操作总结

    linux 下shell加法操作总结: #!/bin/bash   n=1;echo -n "$n "   let "n = $n + 1" echo -n & ...

  7. Linux下TFTP的安装,配置和操作

    注:转载他人,仅供自己研究学习使用 TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支 ...

  8. linux下vi的一些简单的操作

    前言 在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率. 一,模式 vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握 ...

  9. Linux下使用指定网卡进行ping操作

    目录   1. 为什么要使用知道那个网卡ping操作   2. 使用指定网卡ping操作   3. 总结 1. 为什么要使用指定网卡ping操作 现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高 ...

随机推荐

  1. 带入gRPC:gRPC Streaming, Client and Server

    带入gRPC:gRPC Streaming, Client and Server 原文地址:带入gRPC:gRPC Streaming, Client and Server 前言 本章节将介绍 gRP ...

  2. hue database is locked

    hue使用mysql作为元数据库 hue默认使用sqlite作为元数据库,不推荐在生产环境中使用.会经常出现database is lock的问题. 解决方法: 其实官网也有解决方法,不过过程似乎有点 ...

  3. AABB和平面的相交性检测

    [AABB和平面的相交性检测]

  4. go_gc

    如果想知道当前的内存状态,可以使用: // fmt.Printf("%d\n", runtime.MemStats.Alloc/1024) // 此处代码在 Go 1.5.1下不再 ...

  5. solr dismax与edismax的参数列表

    dismax q.alt qf (Query Fields) mm (Minimum 'Should' Match) pf (Phrase Fields) ps (Phrase Slop) qs (Q ...

  6. Python_07-常用函数

    1     python常用常用函数 1.1      常用内置函数 1.2      类型转换函数 1.3      和操作系统相关的调用 1.3.1       操作举例 1.4      用os ...

  7. 打劫房屋 · House Robber

    [抄题]: 假设你是一个专业的窃贼,准备沿着一条街打劫房屋.每个房子都存放着特定金额的钱.你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警 ...

  8. android 的AlertDialog对话框

    private int selectedFruitIndex = 0;  private void showMsg2() {//  Dialog alertDialog = new AlertDial ...

  9. 网络爬虫--requests库中两个重要的对象

    当我们使用resquests.get()时,返回的时response的对象,他包含服务器返回的所有信息,也包含请求的request的信息. 首先: response对象的属性有以下几个, r.stat ...

  10. Freedom DownTime

    Storyline Computer hackers are being portrayed as the newest brand of terrorists. This is a story of ...