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开发者 接管维护的软件。

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

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. 使用java代码编辑oracle数据库

    package com.hanqi; import java.io.IOException; import java.sql.Connection; import java.sql.DriverMan ...

  2. ASP.NET 网页动态添加客户端脚本

    在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加 ...

  3. JVM配置参数

    .堆内存相关的JVM参数 —Xms 初始堆大小 —Xmx 最大堆大小 —Xss 线程栈大小 —XX:MinHeapFreeRatio 设置堆空间最小空闲比例 —XX:MaxHeapFreeRatio ...

  4. 721. Accounts Merge合并电子邮件账户

    [抄题]: Given a list accounts, each element accounts[i] is a list of strings, where the first element  ...

  5. 27-python 画图

    绝佳教程:http://pyecharts.org/#/zh-cn/prepare?id=%E4%BD%BF%E7%94%A8%E4%B8%BB%E9%A2%98安装 pyecharts pip in ...

  6. SQLite介绍

    优点:轻量级.绿色组件.单一文件.跨平台.查询效率极高.使用事务插入速度极快.支持limit分页. 适合查询速度要求较高,内存占用较少的场合,尤其是嵌入式操作系统,如各种手机操作系统,低并发web(9 ...

  7. 数据库查询返回Resource id #9后的处理方式

    如果在调用PHP查询数据库,在echo后返回的是Resource id #9,可能你的输出方式是: $sql="SELECT * FROM dbname WHERE id='1'" ...

  8. nginx 集群介绍

    nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...

  9. Duplicate Symbol链接错误的原因总结和解决方法[转]

    from:http://www.cocoachina.com/bbs/read.php?tid=177492 duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的 ...

  10. [翻译]Writing Custom Report Components 编写自定义报表组件

    摘要:简单介绍了如何编写一个FastReport的组件,并且注册到FastReport中使用.   Writing Custom Report Components 编写自定义报表组件 FastRep ...