Linux基础 - iptables 与 firewalld 防火墙

目录

零. 简介

一. iptables

二. firewalld

三. 总结


零. 简介

iptables

iptables 是 Linux 内核中集成的一种基于命令行的防火墙工具。它通过一系列规则来控制网络数据包的流动,包括允许、拒绝、修改数据包等操作。iptables 可以对入站、出站和转发的数据包进行过滤,并且可以基于 IP 地址、端口号、协议等多种条件来制定规则。

优点:

  1. 性能较高,直接与内核交互。
  2. 规则定制非常精细,能满足复杂的网络需求。

缺点:

  1. 配置相对复杂,需要对网络和防火墙知识有较深入的理解。
  2. 规则的管理和维护较繁琐。

firewalld

firewalld 是新一代的动态防火墙管理工具,提供了更灵活和易于管理的方式。它采用区域(zone)的概念来简化防火墙规则的配置,不同的区域具有不同的默认规则集。

优点:

  1. 配置相对直观和简单,对新手较为友好。
  2. 支持动态修改规则,无需重新加载整个防火墙配置。

缺点:

  1. 在某些复杂场景下,可能不如 iptables 灵活。
  2. 性能在某些情况下可能稍逊于 iptables。

总的来说,iptables 适合对防火墙规则有精细控制需求且技术水平较高的用户,而 firewalld 则更适合那些希望以相对简单和灵活的方式管理防火墙的用户。

一. iptables

iptables 是 Linux 内核中实现数据包过滤和网络地址转换(NAT)的工具。

基本概念

  1. 表(Tables):iptables 包含多个表,如 filter(用于过滤数据包)、nat(用于网络地址转换)、mangle(用于修改数据包)等。
  2. 链(Chains):每个表包含多个链,如 INPUT(处理进入本地主机的数据包)、OUTPUT(处理本地主机发出的数据包)、FORWARD(处理转发的数据包)等。

工作原理
当数据包进入或离开系统时,iptables 会根据预先设置的规则对数据包进行检查和处理。规则按照顺序进行匹配,一旦匹配成功,就执行相应的动作(如 ACCEPT 允许通过、DROP 丢弃、REJECT 拒绝并返回错误信息等)。

常见操作

  1. 查看规则:iptables -L 可以查看所有表的所有链的规则。
  2. 添加规则:例如,允许特定端口的入站访问,iptables -A INPUT -p tcp --dport 80 -j ACCEPT 。
  3. 删除规则:通过规则编号来删除,先使用 iptables -L --line-numbers 查看规则编号,然后 iptables -D INPUT 1 (删除 INPUT 链中的第一条规则)。
  4. 保存规则:修改的规则在系统重启后会丢失,需要使用工具如 iptables-save 保存规则,以便在重启后恢复。

网络地址转换(NAT)
在 nat 表中,可以实现源地址转换(SNAT)和目的地址转换(DNAT)。例如,实现内网主机通过公网 IP 访问互联网的源地址转换,iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 公网 IP 。

iptables 功能强大,但配置相对复杂,需要对网络知识有较好的理解。

二. firewalld

firewalld 是 Linux 系统中用于管理防火墙规则的动态防火墙守护进程。

主要特点

  1. 区域(Zones)概念:firewalld 定义了多个预配置的区域,每个区域具有不同的默认访问规则。常见的区域如 public(用于公共网络,默认规则较严格)、home(用于家庭网络,规则相对宽松)等。
  2. 动态更新:能够在不重新加载整个防火墙配置的情况下动态添加、修改或删除规则。
  3. 服务定义:可以基于预定义的服务(如 HTTP、SSH 等)来设置规则,方便快捷。

工作原理
firewalld 通过读取配置文件和规则数据库来决定如何处理网络流量。当有网络连接请求时,它根据规则判断是否允许通过。

配置方式

  1. 命令行工具:使用 firewall-cmd 命令进行各种操作,例如 firewall-cmd --zone=public --add-service=http (在 public 区域中添加 HTTP 服务的访问规则)。
  2. 图形界面工具:一些 Linux 发行版提供了图形化的界面来配置 firewalld。

规则管理

  1. 添加规则:可以添加端口、服务、源地址等规则。
  2. 查看规则:通过 firewall-cmd --list-all 查看当前的所有规则和设置。

与其他服务的集成
能够与网络管理工具和服务(如 NetworkManager)很好地集成,实现更智能的网络和防火墙管理。

总的来说,firewalld 提供了一种更灵活、易于理解和管理的方式来处理 Linux 系统中的防火墙规则,适用于各种网络环境和安全需求。

三. 总结

firewalld

  • 特点:
    • 采用区域概念,预定义了不同安全级别的区域,简化了规则配置。
    • 支持动态更新规则,无需完全重新加载防火墙配置。
    • 提供了相对友好和直观的配置方式。
  • 优势:
    • 对于不太熟悉网络和防火墙知识的用户来说,更容易上手和理解。
    • 与系统的其他服务集成较好,管理更便捷。
  • 不足:
    • 在处理某些复杂和高度定制的规则时,可能不如 iptables 灵活。
    • 性能在某些极端情况下可能略逊于 iptables

iptables

  • 特点:
    • 直接与内核交互,性能较高。
    • 规则定制非常精细,可以满足复杂和特定的需求。
  • 优势:
    • 提供了对防火墙规则的深度定制和精细控制。
    • 在一些对性能和规则精度要求极高的场景中表现出色。
  • 不足:
    • 配置语法相对复杂,学习曲线较陡峭。
    • 规则的管理和维护较为繁琐。

总体而言,firewalld 更适合追求易用性和便捷管理的用户,而 iptables 则适用于需要高度定制和精细控制防火墙规则,以及对性能有苛刻要求的场景。在实际应用中,可以根据具体需求和用户的技术水平来选择使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据驭王: PostgreSQL教程指南解密

PostgreSQL教程大纲 一、介绍1.1 什么是PostgreSQL?1.2 PostgreSQL的历史和发展1.3 为什么选择PostgreSQL? 二、安装和设置2.1 下载和安装PostgreSQL2.2 配置PostgreSQL2.3 测试PostgreSQL 三、基本操作3.1 连接到PostgreSQL数据库步骤一:安装…

算法刷题笔记--二叉树篇

感觉树这一章还是没搞清楚,可能是基础不扎实的缘故,学完C巩固底层知识后二刷 理论基础 确定递归函数的参数和返回值 :确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么…

2024软件设计师笔记之考点版(一考就过):26-39

软件设计师之一考就过:成绩版 考点26:类、封装、继承、多态 真题1:在面向对象方法中,两个及以上的类作为一个类的超类时,称为(多重继承),使用它可能造成子类中存在(二义性)的成员。 真题2:在面向对象方法中,多态指的是(客户类无需知道所调用方法的特定子类的实现…

【项目实训】falsk后端连接数据库以及与前端vue进行通信

falsk连接数据库 我们整个项目采用vueflaskmysql的框架,之前已经搭建好了mysql数据库,现在要做的是使用flask连接到数据库并测试 安装flask 首先安装flask pip install flask 进行数据库连接 数据库连接需要使用到pymysql库以及flask库 连接数据库…

原创作品—医疗行业软件界面UI、交互设计

在医疗行业大屏UI设计中,首要的是以用户为中心,深入理解医生、护士、管理层等用户群体的具体需求和工作流程。大屏设计应直观展示关键医疗数据、患者信息、设备状态等,确保用户能够迅速、准确地获取所需信息。同时,功能布局应合理…

字节豆包 MarsCode:AI 开发工具

MarsCode 是豆包旗下的智能编程助手,类似 GitHub Copilot 提供以智能代码补全为代表的核心能力,简单试用了下,免费,使用时需要手机号登录,代码补全还算 ok,聊天功能就有点差了。 还包括一个 AI 原生 IDE&am…

【Qt之·类QTableWidget】

系列文章目录 文章目录 前言一、常用属性二、成员函数2.1 左上角空白区域 三、实例演示总结 前言 一、常用属性 二、成员函数 方法描述selectRow选中行removeRow移除行insertRow插入行rowCount总行数 2.1 左上角空白区域 QTableCornerButton即不属于列表头,也不…

Vue移动端动态表单生成组件

FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持6个UI框架,适配移动端,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。 帮助文档 | 源码下载…

如何提取mac app中的应用程序图标 x.app图标位置

在macos系统中安装的应用程序 .app的图标都是 以 .icns结尾的,默认位于 .app应用程序包中的Contents/Resources/目录下,只要是在这个目录下的 .icns文件就是这个应用的图标,如:mac版微信的图标就是 /Applications/WeChat.app/Co…

【Java中导出Excel导出多个sheet页】

Java中导出Excel导出多个sheet页 序言如何处理多个sheet页的导出期间遇到了一个sheet页相关的问题,以及解决办法多sheet页导出遇到,第二个sheet页的标题名称会把第一个的覆盖的问题 结语 序言 在日常工作中经常有导出数据文件的需求,避免不了…

pcdn技术如何实现智能调度和负载均衡,以平衡网络负载和延迟?

PCDN技术实现智能调度和负载均衡,以平衡网络负载和延迟的操作,主要依赖于其主动调度、动态优化和负载均衡的工作原理,其二主要依赖于其在CDN的边缘节点上部署代理服务器的方式。以下是其实现过程:以下是具体的实现步骤&#xff1a…

【面试干货】final、finalize 和 finally 的区别

【面试干货】final、finalize 和 finally 的区别 1、final1.1 修饰类1.2 修饰方法1.3 修饰变量 2、finally3、finalize4、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java编程语言中,final、finalize和finally都是关键…

【Unity】Timeline的倒播和修改速度(无需协程)

unity timeline倒播 一、核心: 通过playableDirector.playableGraph.GetRootPlayable(i).SetSpeed(speed)接口,设置PlayableDirector的速度。 二、playableGraph报空 若playableDirector不勾选Play On Awake,则默认没有PlayableGraph,需执行playableDirector…RebuildGr…

基于STM32的简易智能家居设计

一、项目功能概述 1、OLED显示温湿度、空气质量,并可以设置报警阈值 2、设置4个继电器开关,分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…

仓颉编程语言全攻略:学习秘籍+内测资格申请秘籍!

仓颉官网简介 仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。融入鸿蒙生态,为开发者提供良好的编程体验。 官网直达:https://developer.huawei.com/consumer/cn/cangjie/ 华为开发者官网…

分文件编译

分文件编译 为什么分文件编译 防止主文件过大,不好修改,简化编译流程 编译 分文件编译代码需要将多个.c文件联合编译 功能函数格式.c #include "函数名.h" 函数 头文件格式.h #ifndef __文件名大写_H__ #define __文件名大写_H__ 功能函数…

关于WebSocket

WebSocket 与传统的 HTTP 协议对比 在实时通信领域,传统的 HTTP 协议存在以下一些问题: 频繁的请求和响应:每次通信都需要建立和关闭连接,带来额外的开销。高延迟:每次通信都需要经过多个网络层的传输,延…

“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师

论文真题 模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型…

「Java开发指南」如何使用Spring注释器实现Spring控制器?(二)

本教程将引导您使用Spring Annotator实现Spring控制器,标准Java类被添加到搭建项目中,Spring Annotator Spring启用Java类。 虽然本教程的重点是Spring控制器,但是Spring Annotator也可以用于Spring服务、组件和存储库。在本教程中&#xff…

吴恩达机器学习作业ex5:正则化线性回归和偏差VS方差(Python实现)详细注释

文章目录 1.正则化线性回归1.1 可视化数据集1.2 正则化线性回归成本函数1.3 正则化线性回归梯度1.4 拟合线性回归 2 偏差-方差2.1 学习曲线 3.多项式回归3.1 学习多项式回归3.2 正则化参数的调整3.3 使用交叉验证集选择 λ3.4 计算测试集误差 1.正则化线性回归 在练习的前半部…