Linux网络——shell编程之firewalld防火墙

news2024/11/25 2:24:55

Linux网络——shell编程之firewalld防火墙

  • 一、firewalld概述
  • 二、iptables与firewalld的联系与区别
      • 1.iptables与firewalld的区别
      • 2.iptables与firewalld的联系
  • 三、firewalld区域
      • 1.firewalld的九个区域
      • 2.firewalld区域介绍
      • 3.firewalld数据处理流程
      • 4.firewalld检查数据包源地址的规则
  • 四、firewalld防火墙的配置方法
      • 1.使用firewall-cmd 命令行工具。
      • 2.使用firewall-config 图形工具。
      • 3.编写/etc/firewalld/中的配置文件。
  • 五、fiewall-cmd命令行使用
      • 1.默认区域的查看与设置
      • 2.对指定网卡进行操作
      • 3.对源地址进行操作
      • 4.查看指定区域的所有规则
  • 六、区域管理
  • 七、服务管理
  • 八、端口管理
  • 九、设置地址转换
      • 1.设置 SNAT
      • 2.设置 DNAT

一、firewalld概述

firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。

firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过过滤子系统(属于内核态)来实现包过滤防火墙功能。

firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。 它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算), 并且拥有两种配置模式:运行时配置与永久配置。

二、iptables与firewalld的联系与区别

1.iptables与firewalld的区别

  • iptables主要是基于接口,来设置规则,从而判断网络的安全性。
    firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

  • iptables 在/etc/sysconfig/iptables中储存配置
    firewalld 将配置储存在 /etc/firewalld/(优先加载)/usr/lib/firewalld/(默认的配置文件)中的各种 XML 文件里。

  • 使用 iptables 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables 里读取所有新的规则
    使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld 可以在运行时间内,改变设置而不丢失现行连接。

iptablesfirewalld
配置文件/etc/sysconfig/iptables/etc/firewalld/ 和 /usr/lib/firewalld/
对规则的修改需要全部刷新策略,丢失连接不需要全部刷新策略,不丢失现行连接
防火墙类型静态防火墙动态防火墙

2.iptables与firewalld的联系

CentOS7默认的管理防火墙规则的工具(Firewalld)
称为Linux防火墙的“用户态”

三、firewalld区域

firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

1.firewalld的九个区域

区域说明
trusted(信任区域)允许所有的传入流量
public(公共区域)允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域
external(外部区域)允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络
home(家庭区域)允许与ssh、ipp-client、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝
internal(内部区域)默认值时与home区域相同
work(工作区域)允许与 ssh、ipp-client、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝
dmz(隔离区域 或 非军事区域)允许与 ssh 预定义服务匹配的传入流量,其余均拒绝
block(限制区域)拒绝所有传入流量
drop(丢弃区域)丢弃所有传入流量,并且不产生包含 ICMP的错误响应

2.firewalld区域介绍

  • 最终一个区域的安全程度是取决于管理员在此区域中设置的规则。
  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入。
  • 可以根据网络规模,使用一个或多个区域,但是任何一个 活跃区域 至少需要关联 源地址或接口。
  • 默认情况下,public区域是默认区域,包含所有接口(网卡)

3.firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。

4.firewalld检查数据包源地址的规则

  • 若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
  • 若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
  • 若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。

四、firewalld防火墙的配置方法

1.使用firewall-cmd 命令行工具。

2.使用firewall-config 图形工具。

在这里插入图片描述

3.编写/etc/firewalld/中的配置文件。

Firewalld 会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置。
/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/ 中拷贝
/usr/lib/firewalld/ :默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置

五、fiewall-cmd命令行使用

1.默认区域的查看与设置

不指定区域时,则对默认区域进行操作(默认区域可自定义,不修改则为public)
语法格式:firewall-cmd:
fiewall-cmd --get-default-zone :显示当前默认区域
fiewall-cmd --set-default-zone=<zone> :设置默认区域

在这里插入图片描述

2.对指定网卡进行操作

格式:
fiewall-cmd --get-active-zones :显示当前正在使用的区域及其对应的网卡接口
fiewall-cmd --get-zones :显示所有可用的区域
fiewall-cmd --get-zone-of-interface=<interface> :显示指定接口绑定的区域
fiewall-cmd --zone=<zone> --add-interface=<interface> :为指定接口绑定区域
fiewall-cmd --zone=<zone> --change-interface=<interface> :为指定的区域更改绑定的网络接口
fiewall-cmd --zone=<zone> --remove-interface=<interface> :为指定的区域删除绑定的网络接口

在这里插入图片描述

3.对源地址进行操作

格式:
fiewall-cmd --add-source=xxxxxx --zone=<zone> //增加源地址指定区域
fiewall-cmd --remove-source=xxxxxx --zone=<zone> //删除源地址指定区域

在这里插入图片描述

4.查看指定区域的所有规则

firewall-cmd --list-all-zones:显示所有区域及其规则
firewall-cmd --list-all : 不指定区域时,查看的是默认区域
firewall-cmd --list-all --zone=work:显示work区域的所有规则

在这里插入图片描述
在这里插入图片描述

六、区域管理

firewall-cmd --get-default-zone:显示当前系统中的默认区域
firewall-cmd --list-all:显示默认区域的所有规则
firewall-cmd --get-active-zones:显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --set-default-zone=<区域名称>:设置默认的区域、永久生效
firewall-cmd --get-default-zone:查看默认区域名称

在这里插入图片描述

七、服务管理

firewall-cmd --list-service:查看默认区域内允许访问的所有服务
firewall-cmd --add-service=http --zone=public:添加httpd 服务到public 区域
firewall-cmd --list-all --zone=public:查看public 区域已配置规则
firewall-cmd --remove-service=http --zone=public:删除public 区域的httpd 服务

在这里插入图片描述

八、端口管理

允许TCP的443端口到internal 区域
firewall-cmd --zone=internal --add-port=443/tcp
firewall-cmd --list-all --zone=internal

从internal 区域将TCP的443端口移除
firewall-cmd --zone=internal --remove-port=443/tcp

在这里插入图片描述

允许UDP的2048~2050端口到默认区域
firewall-cmd --add-port=2048-2050/udp
firewall-cmd --list-all
在这里插入图片描述

九、设置地址转换

1.设置 SNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.30.0/24 -j SNAT --to-source 12.0.0.1

2.设置 DNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.30.10

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

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

相关文章

【shell编程学习】反弹shell

反弹实验 机器IPwin10虚拟机192.168.242.129攻击机centos 虚拟机192.168.242.131靶机 1&#xff0c;win10机器安装Ncat 来监听端口 简单来说&#xff0c;就是下载netcat 安装包&#xff0c;解压&#xff0c;将nc.exe 复制到C:\Windows\System32的文件夹下。即可使用nc命令来…

悦亮少儿眼科樊广祥:远视储备是妈妈都该知道的眼科知识!

近视的“低龄化”和“高度化”问题日益严重&#xff0c;如何预防近视或推迟近视发生&#xff0c;已成为大家都非常关注的话题。这其中&#xff0c;“远视储备”一词也为越来越多的人所知晓。 为了帮助大家更好的理解远视储备、从而帮助孩子预防近视&#xff0c;悦亮少儿眼科(宁…

Java 期末复习进阶版

(一) 方法重载 1.同一个类中多个方法具有相同的方法名,不同的______称为方法的重载.(参数列表) 2.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C). A)public getSort(float x) B)int getSort(int y) C)double getSort(int x,int y) D)vo…

Docker安装Yearning3.1.4/禅道18.4【亲测可用】

一、安装Yearning 1、建议先安装go 2、在mysql下新建yearning数据库&#xff1a; 进入mysql&#xff1a;docker exec -it 91ada9def680 /bin/bash 账号密码登录&#xff1a;mysql -uroot -p create database if not exists yearning default character set utf8mb4 collat…

MOSN 基于延迟负载均衡算法——走得更快,期待走得更稳

文&#xff5c;纪卓志&#xff08;GitHub ID&#xff1a;jizhuozhi) 京东高级开发工程师 MOSN 项目 Committer 专注于云原生网关研发的相关工作&#xff0c;长期投入在负载均衡和流量控制领域 前言 这篇文章主要是介绍 MOSN 在 v1.5.0 中新引入的基于延迟的负载均衡算法#2…

指针---C语言

目录 前言&#xff1a; 一.指针基础 1.1内存单元 1.2内存单元和指针的大小 二.指针变量 2.1指针类型 2.2野指针 三.指针运算 四.指针和数组的关系 4.1下标与解引用的等价替换 4.2指针数组 五.二级指针 ❤博主CSDN:啊苏要学习 ▶专栏分类&#xff1a;C语言◀ C语言的…

如何获取HTTP请求时间与响应时间【附源码】

文章目录 一、问题描述二、抓包观察三、查找文档四、思考尝试五、精益求精六、源码解说 一、问题描述 今日遇到了一个问题&#xff0c;要去获取HTTP报文在请求和响应的时间&#xff0c;因为没有原生的API可以调用&#xff0c;所以需要一定的技巧~ 下面主体的框架和代码&#xf…

如何在 Linux 服务器上更改分区方案?

在 Linux 服务器上&#xff0c;分区方案对于数据存储和系统管理至关重要。当服务器的存储需求发生变化或者需要重新组织分区时&#xff0c;更改分区方案是一个常见的任务。 本文将详细介绍如何在 Linux 服务器上更改分区方案。 步骤一&#xff1a;备份数据 在更改分区方案之前…

Microsoft Office 2013安装

哈喽&#xff0c;大家好。今天一起学习的是office2013的安装&#xff0c;有兴趣的小伙伴也可以来一起试试手。 一、测试演示参数 演示操作系统&#xff1a;Windows 7 支持Win10安装&#xff0c;不建议Win11安装&#xff0c;不支持WinXP系统 系统类型&#xff1a;64位 演示版本…

Jmeter函数助手函数--计数器详解

函数 作用 ${__counter(,)} 计数器&#xff0c;每次加1 ${__dateTimeConvert(,,,)} 时间格式转换 ${__intSum(,,)} 整数相加 ${__P(,)} 获取属性 ${__setProperty(,,)} 设置属性 ${__Random(,,)} 随机数 ${__threadNum} 线程编号 ${__time(,)} 获取当前时间戳…

Axure教程-竖向堆叠图(中继器)

本文将教大家如何用AXURE中的中继器动态竖向堆叠图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://wo8zqr.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87810606 二、功能介绍 简单填写中继器内容即可生成动态竖向堆…

Day5 模块(单元)测试——单元测试、自顶向上测试、自下向上测试

Day5 模块(单元)测试——单元测试、自顶向上测试、自下向上测试 文章目录 Day5 模块(单元)测试——单元测试、自顶向上测试、自下向上测试什么是单元测试?单元测试结构化程序时代单元测试与使用单元测试的误解单元测试过程成本效率不高结论单元测试的优点测试用例白盒覆盖…

SAP 用CO13冲销工序报工,但是没有产生货物移动(TCODE:CO1P 、 SE38 :CORUPROC,CORUAFWP)

前言 通常情况下&#xff0c;对PPO做GI或GR的时候&#xff0c;出现的异常可以在COGI中间被列出&#xff1b;在这些数据进入COGI之前&#xff0c;系统会把这些数据记录在CO1P中&#xff1b;换句话说&#xff0c;系统有时会出现DB的更新延时&#xff0c;当延时发生的时候&#xf…

从零实现一个数据库(DataBase) Go语言实现版 6.持久化到磁盘

英文源地址 持久化至磁盘 前一章中的b树数据结构可以很容易地转存到磁盘上.让我们在它之上建立一个简单地kv存储. 由于我们的b树实现是不可变的, 我们将以仅追加的方式分配磁盘空间, 重用磁盘空间将推迟到下一章. 持久化数据的方式 正如前面章节所提到的, 将数据持久化到磁…

黑马程序员的基础班都是一些什么内容?

黑马推出了基础班的课程&#xff0c;各学科点击申请基础班试学 Java学科基础班 JavaSE基础基础班阶段一 课时:9天 技术点:60项 测验:1次 学习方式:线下面授 学习目标 1.掌握Java开发环境基本配置 2.掌握运算符、表达式、流程控制语句、数组等的使用 3.熟练使用IDEA开发工具…

SQL优化的思路和步骤

数据库优化 创建索引: 创建合适的索引提高查询速度 分库分表:当一张表的数据比较多或者一张表的某些字段的值比较多并且使用时改用水平分表和垂直分表来优化 读写分离(集群): 当一台服务不能满足需要时&#xff0c;采用读写分离的方式进行集群 缓存: 使用redis来进行缓存 …

ServerBoss:国产免费的Linux连接工具,服务器管理工具

在这个数字化时代&#xff0c;Linux正在成为越来越多企业的首选操作系统。但是&#xff0c;由于它复杂的命令行界面和复杂的文件系统&#xff0c;许多用户可能会认为Linux不太友好和难以驾驭。同时目前大部分Linux连接工具都是国外产品&#xff0c;且需要商业授权。在此背景下&…

案例14:Java酒店管理系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

产研团队任务管理工具:盘点国内外9款知名任务管理系统软件

以下是10款国内外最知名的任务管理系统&#xff1a;1.研发项目任务管理-PingCode&#xff1b;2.通用项目任务管理-Worktile&#xff1b;3.免费开源研发任务工具-Redmine&#xff1b;4.海外著名项目任务管理工具-Asana&#xff1b;5.免费任务管理软件-Trello&#xff1b;6.个人任…

springboot防止反编译proguard+xjar

一、背景 项目组核心代码模块部署于用户服务器上&#xff0c;直接甩jar包到服务器的方式&#xff0c;极有可能导致数据泄露和代码泄露&#xff0c;为了防止有技术能力的用户反编译我们的程序&#xff0c;采用了proguard和xjar两种方式来混淆和加密jar包&#xff0c;注&#xf…