CentOS 7之FirewallD与iptables的区别

2023-05-16

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

FirewallD 即Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器,是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:

  1. FirewallD 使用区域和服务而不是链式规则。
  2. FirewallD可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。

在RHEL7里有几种防火墙共存:FirewallD、iptables、ebtables,默认是使用FirewallD来管理netfilter子系统,不过底层调用的命令仍然是iptables等。
FirewallD跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。

FirewallD自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说FirewallD和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过FirewallD和iptables的结构以及使用方法不一样罢了。

iptables 服务在 /etc/sysconfig/iptables 中储存配置,而 FirewallD 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里,使用 iptables 的时候每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables 里读取所有新的规则,使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同。因此 FirewallD 可以在运行时改变设置而不丢失现行配置。

一个重要的概念:区域管理

通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流。例如,互联网是不可信任的区域,而内部网络是高度信任的区域。网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式。有如下几种不同的初始化区域:

  • 阻塞区域(block):任何传入的网络数据包都将被阻止。
    任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
  • 工作区域(work):相信网络上的其他计算机,不会损害你的计算机。
  • 家庭区域(home):相信网络上的其他计算机,不会损害你的计算机。
  • 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接。
  • 隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。
  • 信任区域(trusted):所有的网络连接都可以接受。
  • 丢弃区域(drop):任何传入的网络连接都被拒绝。
    任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
  • 内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
  • 外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。

注:FirewallD的默认区域是public。

FirewallD默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,

他们都保存在“/usr/lib /firewalld/zones/”目录下。

配置方法

FirewallD的配置方法主要有三种:

  1. firewall-config
  2. firewall-cmd
  3. 直接编辑xml文件

其中 firewall-config是图形化工具,firewall-cmd是命令行工具,而对于linux来说大家应该更习惯使用命令行方式的操作,所以 firewall-config(适合用于桌面版)我们就不给大家介绍了。

安装配置

1、安装FirewallD

$ yum install firewalld firewall-config

2、运行、停止、禁用FirewallD

启动:

$ systemctl start  firewalld

开机启动时加载FirewallD服务

$ systemctl enable firewalld.service

查看状态:# systemctl status firewalld 或者 firewall-cmd --state

禁用:

$ systemctl disable firewalld

停止:

$ systemctl stop firewalld

systemctl mask firewalld

systemctl unmask firewalld

 

4、配置firewalld

查看版本:

$ firewall-cmd --version

查看帮助:

$ firewall-cmd --help

显示状态:

$ firewall-cmd --state

查看区域信息:

$ firewall-cmd --get-active-zones

查看指定接口所属区域:

$ firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:

$ firewall-cmd --panic-on

取消拒绝状态:

$ firewall-cmd --panic-off

查看是否拒绝:

$ firewall-cmd --query-panic

更新防火墙规则:

$ firewall-cmd --reload
$ firewall-cmd --complete-reload

两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

将接口添加到区域,默认接口都在public:

$ firewall-cmd --zone=public --add-interface=eth0

永久生效再加上 --permanent 然后reload防火墙

设置默认接口区域:

$ firewall-cmd --set-default-zone=public

立即生效无需重启

 

打开端口(貌似这个才最常用)

查看所有打开的端口:

$ firewall-cmd --zone=dmz --list-ports

加入一个端口到区域:

$ firewall-cmd --zone=dmz --add-port=8080/tcp

若要永久生效方法同上

打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档

$ firewall-cmd --zone=work --add-service=smtp

移除服务

$ firewall-cmd --zone=work --remove-service=smtp

还有端口转发功能、自定义复杂规则功能、lockdown

转载于:https://my.oschina.net/deanzhao/blog/3058904

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 7之FirewallD与iptables的区别 的相关文章

  • 将流量从 80 转发到 8080 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经用puppet安装了tomcat 它在标准 8080 端口上运行 tomcat进程以tomcat用户身份启动 我想将所有流量从端口
  • 在我的 CentOS 机器上找不到wireshark init.lua

    所以我试图在我的 CentOS 7 服务器上获取一个与 tshark 一起使用的脚本 但我遇到了问题 该脚本在我的Windows笔记本电脑上运行良好 我只是将其放在appdata的plugins文件夹中 但我在linux上找不到类似的位置
  • 编译 Lua - 创建 .so 文件?

    我正在 Centos 6 5 上编译 Lua 5 2 3 编译 安装工作正常 但是 我还需要编译另一个程序的开发库 我通常会通过这样做来安装它们 yum install lua devel 问题是安装 Lua 5 1 共享库 而不是 5 2
  • 为什么我的服务总是绑定到 ipv6 localhost 而不是 ipv4?

    我有一个创建 ServerSocket 并绑定到的服务localhost 7060 当我在 Android 设备上执行 netstat an 时 我看到它使用 ipV6 localhost 而不是 ipv4 localhost 接口 输出是
  • Docker CentOS 映像不会自动启动 httpd

    我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像 如果我跑的话效果很好 docker run t i p 80 80 my httpd bin bash 然后手动启动Apache service httpd
  • Perl IPTables 模块安装错误

    我一直在尝试为 perl 安装 IPTables 模块http metacpan org pod IPTables IPv4 http metacpan org pod IPTables 3a 3aIPv4我在安装过程中遇到了错误 我尝试在
  • apache centos 上的多个 php

    如何在 Centos 6 5 上同时运行多个 php 版本 就是这样 要求Centos 6 5 可能适用于 6 6 和 7 Apache Apache 2 2 15 可能与其他版本一起使用 本指南安装和使用FASTCGI 请参阅替代安装的注
  • CentOS 的 init.d celery 脚本?

    我正在编写一个使用 celery 的 Django 应用程序 到目前为止 我一直在 Ubuntu 上运行 但我正在尝试部署到 CentOS Celery 为基于 Debian 的发行版提供了一个很好的 init d 脚本 但它不适用于基于
  • mod_mono 在新安装的 centos 上出现 EOF 错误

    我全新安装了 Centos 6 3 已完全更新 我已经从源安装了 mono xsp 和 mod mono 每个包都完美编译 它们都以 usr local mono 前缀安装 因此所有内容都位于 usr local mono 下 我已将 In
  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • Vagrant 的端口转发不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在最后遇到了一个小问题入门指南vagrant http vagrantup com docs getting started ports html
  • 除了 iptables 之外还有数据包管理实用程序吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Linux 实用程序 它可以根据一组规则更改网络数据包的有效负载 理想情况下 我会使用
  • 如何通过 IPTables 阻止一些特殊的用户代理

    我需要阻止来自任何来源的数据包 其中包括使用 IPTables 的一些特殊用户代理 但我不想通过管理它 htaccess或阿帕奇 有什么办法吗 你可以这样做 iptables A INPUT p tcp dport 80 m string
  • 当安装的 RPM 取代了另一个 RPM 时如何检测升级

    RPM scriptlet 被传入 1 https fedoraproject org wiki Packaging Scriptlets rd Packaging ScriptletSnippets Syntax 操作完成后 系统中将保留
  • 套接字错误 10054

    我有一个C S程序 客户端使用socket向服务器发送文件 发送后大约超过700k数据 客户端 在win7上 将收到套接字10054错误 这意味着连接被对等方重置 服务器运行在CentOS 5 4上 客户端是在virtual box中运行的
  • Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

    我需要在中插入一些东西DB 我在用着JDBC as a connector jython the script mysql数据库和脚本正在运行CentOS 我的代码看起来像这样 from com android monkeyrunner i
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 如何在linux中使用iptables将http和https流量转发到透明代理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 早于 0.4.12 的 Node.js 无法在 AWS EC2 上正常工作。为什么?

    我无法在 AWS EC2 Ubuntu 或 CentOs 没关系 上安装 node js v0 6 1 安装后我输入node 处理器负载达到100 但 v0 4 12 工作正常 可能只有我有这个问题 那不好意思了 请告诉我我做错了什么 提前
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出

随机推荐

  • 使用Network Recycle Bin启用映射网络驱动器上的回收站

    前言 在内网环境中我们经常会使用NAS或者Samba在Windows中映射网络驱动器 xff0c 方便局域网用户实时共享交换数据 但当存储在网络或映射网络上的任何文件被删除时 xff0c 该文件将被永久删除 它不会去到本地计算机回收站 xf
  • 为强化机器学习性能,ARM推出两款新GPU Mali-G52和Mali-G31

    ARM于近期推出了两款图形处理器产品 xff0c 分别为Mali G52以及Mali G31 xff0c 主要应用于主流移动市场 由于移动端AI计算 图形处理需求的与日俱增 xff0c GPU之于手机SoC的作用日渐凸显 xff0c ARM
  • 判断python字典某个键的值是否为空

    2019独角兽企业重金招聘Python工程师标准 gt gt gt code if dict get key 0 61 61 0 值即为空 code 转载于 https my oschina net u 2254175 blog 37213
  • javascript中的==和===

    判断两个变量是否相等是程序设计中非常重要的运算 在处理原始值时 xff0c 这种运算相当简单 xff0c 但涉及对 象 xff0c 任务就稍有点复杂 ECMAScript提供了两套运算符处理这个问题 xff0c 等号和非等号用于处理原始值
  • 如何检测资源泄露

    Window上我们常见的资源泄露包括内存和对象句柄泄露 xff0c 下面讨论下对各类泄露的检测方法 关于内存泄漏 xff0c 我以前写过2篇文章 xff1a C 43 43 中基于Crt的内存泄漏检测 xff0c 基于WinDbg的内存泄漏
  • WPF触屏Touch事件在嵌套控件中的响应问题

    前几天遇到个touch事件的坑 xff0c 记录下来以增强理解 具体是 想把一个listview嵌套到另一个listview xff0c 这时候如果list view xff08 子listview xff09 的内容过多超过容器高度 xf
  • 设计模式-工厂模式

    xl echo编辑整理 xff0c 欢迎转载 xff0c 转载请声明文章来源 欢迎添加echo微信 微信号 xff1a t2421499075 进行交流学习 百战不败 xff0c 依不自称常胜 xff0c 百败不颓 xff0c 依能奋力前行
  • IBM AIX5.3 linux下C/C++实现HTTPS接口

    最近在工作中需要开发一个Https接口 xff0c 其不同于http soap等协议 xff0c 可以直接组织报文并发送 xff0c 不存在加密 xff0c 认证和获取密钥等安全操作 且之前开发的项目没有开发过这类接口 xff0c 所以当时
  • c语言把网络字节序转换成小端,网络编程字节序转换问题

    一 xff1a 大小端 一 大小端区别 字节 区别是依据 xff1a 计算机系统在存储数据时起始地址是高地址仍是低地址 小端 xff1a 从低地址开始存储 大端 xff1a 从高地址开始存储 补充 xff1a 这里大小端是按字节区别的 xf
  • [转载]Linux C 字符串函数 sprintf()、snprintf() 详解

    一 sprintf 函数详解 在将各种类 型的数据构造成字符串时 xff0c sprintf 的强大功能很少会让你失望 由于 sprintf 跟 printf 在用法上几乎一样 xff0c 只是打印的目的地不同而已 xff0c 前者打印到字
  • http Authorization

    MDN 文档 HTTP协议中的 Authorization 请求消息头含有服务器用于验证用户代理身份的凭证 xff0c 通常会在服务器返回401 Authorization lt type gt lt credentials gt curl
  • linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...

    背景 在GCC中已经指定链接库 xff0c 然而编译时却提示动态库函数未定义 xff01 测试出现的错误提示如下 xff1a GMPY 64 13 48 tmp gcc o test L lmylib test c tmp ccysQZI3
  • .inf右键没有安装菜单项解决办法

    打开我的电脑 xff0c 工具菜单中的文件夹选项 切换至文件类型选项卡 xff0c 在其中找到inf文件 xff0c 点高级按钮 xff0c 双击安装 I xff0c 没有新建一个 按如下内容修 改 用于执行操作的应用程序C WINDOWS
  • C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间...

    转 自 xff1a http www cnblogs com rocketfan archive 2009 10 02 1577361 html 1 编译单元 xff1a 一个 cc或 cpp文件作为一个编译单元 xff0c 生成 o 2
  • request方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1request概述 request是Servlet service 方法的一个参数 xff0c 类型为javax servlet http HttpServletRequ
  • Eclipse调试:改变颜色, 背景与字体大小 和xml字体调整

    Eclipse背景颜色修改 xff1a 操作界面默认颜色为白色 对于我们长期使用电脑编程的人来说 xff0c 白色很刺激我们的眼睛 xff0c 所以我经常会改变workspace的背景色 xff0c 使眼睛舒服一些 设置方法如下 xff1a
  • ASM汇编常用跳转指令-极速查

    作者 xff1a 逆向驿站 微信公众号 xff1a 逆向驿站 知乎 xff1a 逆向驿站 若不是老鸟 xff0c 是不是经常为各种JXX汇编跳转指令查资料 xff1f 影响效率 xff0c 更影响潜意识整体分析的 34 灵光一现 34 本公
  • Android签名机制及原理

    Android签名机制及原理 Android系统在安装APK的时候 xff0c 首先会检验APK的签名 xff0c 如果发现签名文件不存在或者校验签名失败 xff0c 则会拒绝安装 xff0c 所以应用程序在发布之前一定要进行签名 给APK
  • chrome扩展获取页面dom对象信息

    chrome扩展 xff0c 在popup页面 xff0c 给页面对象绑定点击事件 xff0c 获取当前tab加载页面的DOM对象信息 本chrome扩展功能主要用于获取百度搜索输入框中用户输入的关键字 效果如下 源代码如下 注意 xff1
  • CentOS 7之FirewallD与iptables的区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt FirewallD 即Dynamic Firewall Manager of Linux systems xff0c Linux系统的动态防火墙管理器 xff0c 是 ip