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 则适用于需要高度定制和精细控制防火墙规则,以及对性能有苛刻要求的场景。在实际应用中,可以根据具体需求和用户的技术水平来选择使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arcgis 计算经纬度坐标并补齐6位小数

工作中我们经常需要在Arcgis中计算点的经纬度或者线的起点、终点坐标,为确保数据的准确性,我们必须保留6位小数,但我们在默认计算的时候偶尔会遇到算出来的经纬度坐标小数位不足6位,那我们应该如何补齐呢,这里我将方法…

结构冒险,控制冒险,数据冒险实例分析

目录 1.结构冒险: 2.数据冒险: 3.控制冒险: 指令执行过程: 取指(IF):从指令存储器或 Cache 中取指令。 译码/读寄存器(ID):操作控制器对指令进行译码,同时从寄存器堆中取操作数。 执行/计算地…

黑鹰优化算法(BEO)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原理简介 一、种群初始化 二、围捕行为 三…

centos上快速搭建zfile文件网站

什么是zfile? zfile文件网站是最方便快捷的在线目录展示程序,支持将本地文件、FTP、SFTP、S3、OneDrive 等存储在网站上展示并浏览! 本教程参考: https://docs.zfile.vip/install/os-linux复现 今天的搭建环境是centos7.9 第一…

Spring Boot 整合 JSP

Spring Boot 是一个开源的 Java 框架,用于创建独立、生产级的基于 Spring 框架的应用程序。它简化了基于 Spring 的应用程序的创建和部署过程。JSP(JavaServer Pages)是一种动态网页技术,允许开发者在 HTML 中嵌入 Java 代码。将 …

CSS|03 尺寸样式属性文本与字体属性

尺寸样式属性 height:元素高度height的值:auto 自动length 使用px定义高度% 基于包含它的块级对象的百分比高度 width:元素的宽度width的值与height一样span标签可以设置宽度、高度吗? 答:不可以,因为span标签是一个行…

A-8 项目开源 qt1.0

A-8 2024/6/26 项目开源 由于大家有相关的需求,就创建一个项目来放置相关的代码和项目 欢迎交流,QQ:963385291 介绍 利用opencascade和vulkanscene实现stp模型的查看器打算公布好几个版本的代码放在不同的分支下,用qt实现&am…

科技赋能·创领未来丨智合同和百胜中国就Contract AI Studio项目达成合作

#智合同 #百胜中国 #AIGC #NLP #LLM #Contract AI Studio 近期,国内AIGC和LLM大语言模型发展可谓是如火如荼,其迅速崛起为社会和产业发展起到了非常重要的作用。人们利用AI技术(AIGC、LLM大语言模型、NLP等)将其赋能到企业生…

华为仓颉编程语言

目录 一、引言 二、仓颉编程语言概述 三、技术特征 四、应用场景 五、社区支持 六、结论与展望 一、引言 随着信息技术的快速发展,编程语言作为软件开发的核心工具,其重要性日益凸显。近年来,华为公司投入大量研发资源,成功…

记录待办事项的便签软件哪个好用?

在快节奏的现代生活中,我们经常需要处理各种各样的待办事项,为了更好地管理时间,许多人选择使用便签软件来记录自己的待办事项。那么,记录待办事项的便签软件哪个好用?市面上众多的便签软件中,哪一个才是最…

【C++题解】1715. 输出满足条件的整数5

问题:1715. 输出满足条件的整数5 类型:简单循环 题目描述: 有这样一个四位数,其千位和百位之和为偶数,十位和个位之和为奇数,且前两位之和大于后两位之和,且含有因数 8 ,请输出满足上述条件的…

49-3 内网渗透 - MSI安 装策略提权

靶场环境搭建: 这里还是用我们之前的windows2012虚拟机进行搭建 1)打开一些设置让靶场存在漏洞 打开组策略编辑器(gpedit.msc) 使用运行命令打开: 按下 Win + R 组合键来打开运行对话框。输入 gpedit.msc,然后按下 Enter 键。使用搜索打开: 点击任务栏上的搜索框(W…

【Docker】安装和加速

目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…

Unity之Hololens2开发MRTK Profile详解

前言 配置 MRTK 的主要方式之一是使用基础包中的配置文件。 场景中的主要 MixedRealityToolkit 对象具有活动配置文件 - 一个 ScriptableObject。 顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。 此外,这些…

RK3568平台(音频篇)RT5651解码芯片Codec驱动分析

一.Audio Codec的必要性 在理想状况下,对于录音过程,只需要将麦克风获取到的analog信号通过ADC转换为digital信号并存储即可,对于播放音过程,只需要将digital信号通过DAC转换为analog并输出到speaker播放即可。 但在实际的过程中…

【学习】如何利用Python技术进行软件测试相关工作

Python是一种广泛使用的高级编程语言,它因其简洁的语法、强大的库支持和跨平台特性而受到开发者的喜爱。在软件测试领域,Python同样发挥着重要作用,它可以帮助测试人员编写自动化测试脚本、进行接口测试、性能测试、以及处理测试数据等。以下…

【Linux】进程信号_3

文章目录 八、进程信号2. 信号的保存3. 信号的处理 未完待续 八、进程信号 2. 信号的保存 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到…

华为开发者调试工具使用介绍(MDC)

MDC的开发过程的三大工具:MMC、MDS、Mind Studio,这三个工具完成了开发过程中的配置文件编写、代码编写以及AI模型的开发三个任务。除了开发,MDC还准备了两个调试工具,用于使用过程中数据的查看等。这一些调试工具分别对映射MDC中…

单目标应用:基于鳗鱼和石斑鱼优化器(Eel and grouper optimizer,EGO)的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、鳗鱼和石斑鱼优化器求解微电网 2.1算法简介 鳗鱼和石斑鱼优化器&…

MySQL简介:开源数据库的基石(一)

目录 引言:数据库领域的革新者 一、MySQL的发展历程:从开源先锋到行业领袖 二、MySQL的核心特性:性能、安全与灵活性并重 三、MySQL的应用场景:从Web开发到企业级应用的全面覆盖 四、MySQL在开源数据库中的地位:开…