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位,那我们应该如何补齐呢,这里我将方法…

常见密码算法

密码算法(Cryptographic Algorithms)是用于保护数据安全的重要工具,它们包括加密算法、哈希算法和签名算法。密码算法广泛应用于数据加密、身份验证、数据完整性验证和数字签名等领域。以下是一些常见的密码算法及其介绍。 对称加密算法 对…

DW数模笔记——task03

第三章 函数极值与规划模型 在这一章中,我们将介绍函数极值与规划模型。约束条件下的极值求解是优化问题和运筹学研究的重点,也是各大数学建模竞赛中考察的重难点。它主要针对的是目标函数在约束条件下的极值,以及多种方案中的最优方案。本章…

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

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

GPT-5:迈向“博士级”智能的新纪元

标题:GPT-5:迈向“博士级”智能的新纪元 随着OpenAI首席技术官米拉穆拉蒂确认GPT-5将在一年半后发布,我们站在了人工智能发展的又一个重要节点。GPT-5的问世,预示着我们即将进入一个全新的AI时代。本文将从技术突破、智能系统与人…

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

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

qt qml-Table表格组件

文章目录 示例代码代码详解运行效果扩展功能总结在QML中创建一个表格组件,可以使用 TableView 或 TableView 结合 ListModel 和 TableViewColumn。下面是一个完整的示例,展示了如何使用这些组件创建一个简单的表格,并附上详细的代码说明。 示例代码 main.qml import Q…

OpenVINO部署

OpenVINO部署 什么是 OpenVINO?OpenVINO 的优势安装指南系统要求:安装步骤 环境设置部署示例代码优化和部署步骤详细部署示例 什么是 OpenVINO? OpenVINO(Open Visual Inference and Neural Network Optimization)是由…

centos上快速搭建zfile文件网站

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

如何安装和配置 Django 与 Postgres、Nginx 和 Gunicorn

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 先决条件 本教程假设您已经在Debian 7或类似的Linux发行版(如Ubuntu)上设置了您的droplet(VPS&#…

Spring Boot 整合 JSP

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

时间戳转换日期格式 filters实现

filters: { time: function time(value) { const now new Date(value) const y now.getFullYear() const m now.getMonth() 1 const d now.getDate() return ${y}-${m < 10 ? 0${m} : m}-${d < 10 ? 0${d} : d} ${now .toTimeString() .substr(0, 8)} } …

简单的springboot整合activiti5-serviceImpl部分(1)

简单的springboot整合activiti5.22.0-serviceImpl部分(1) 原来的流程serviceImpl部分代码过多&#xff0c;所以此处单独记录一下&#xff0c;此处记录的是serviceImpl第一部分代码 package cn.git.workflow.service.impl;import cn.git.cache.api.BaseCacheApi; import cn.gi…

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

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

A-8 项目开源 qt1.0

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

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

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

华为仓颉编程语言

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

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

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

强引用、软引用、弱引用、幻象引用有什么区别?

强引用:我们平常典型编码Object obj new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运 行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。对于…

红队py项目-AWVSsqlmapXray

免责声明:内容仅供参考... 目录 AWVS自动添加任务字典 AWVS环境: SQLmap api 自动扫描 Xray 扫描漏洞发现报告 AWVS自动添加任务字典 AWVS13批量脚本_111111111115-CSDN博客 import requests, json# https://blog.csdn.net/wy_97/article/details/106872773 # 创建任务…