linux Firewalld学习笔记

news2024/11/22 9:42:11

1、Firewalld默认策略

默认情况会阻止流量流入,但允许流量流出。
在这里插入图片描述

2、Firewalld区域概念

拒绝区域drop、默认区域public、允许区域trusted
在这里插入图片描述

3、区域规则

区域与网卡接口
在这里插入图片描述
默认区域规则
常用的有trusted (相当于白名单)、work/public 区、dmz/drop区
在这里插入图片描述

4、语法规则介绍

区域命令语法和接口命令语法
在这里插入图片描述
服务命令语法、 端口命令语法、管理命令语法
在这里插入图片描述

5、Firewalld区域配置(重点*)

systemctl start firewalld

firewall-cmd --get-default-zone
firewall-cmd --list-all
#下图显示的默认区域是public,绑定eth0和eth1网卡。`仅`允许访问ssh、dhcpv6-client

在这里插入图片描述

5.1多区域配合使用

#要求
使用firewalld各个区域规则结合配置
调整默认public区域拒绝所有流量,但如果来源IP是10.0.0.0/24网段则允许。

1.将默认的public区域中的服务全部删除;
⒉.将来源地址来自于10.0.0.0/24统统都走白名单
#操作
firewall-cmd --remove-service=ssh
firewall-cmd --remove-service=dhcpv6-client
firewall-cmd --list-all

firewall-cmd --add-source=10.0.0.0/4 --zone=trusted
firewall-cmd --get-active-zone

在这里插入图片描述

在这里插入图片描述

6、Firewalld规则配置

#刚才上述的操作是临时的,如果是有重载,则刚才配置全部失效
firewall-cmd --reload

6.1配置端口规则

#单个 与 多个
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port={80/tcp,8080/tcp}

#永久
firewall-cmd --add-port={80/tcp,8080/tcp} --permanet
firewall-cmd --reload

#查看放行端口
firewall-cmd --list-ports

#移除端口规则
firewall-cmd --remove-port={80/tcp,8080/tcp}

在这里插入图片描述

6.2配置服务规则

firewall-cmd -add-service=http
firewall-cmd -add-service={http,https}

在这里插入图片描述
可放行的服务列表

firewall-cmd --get-services

在这里插入图片描述

6.2.1 自定义放行的服务 (可略)

rpm -ql firewalld
cd /usr/lib/firewalld/services/
cp ssh.xml zabbix-agent.xml ;  vim zabbix-agent.xml
firewall-cmd --reload
firewall-cmd -add-service=zabbix-agent

在这里插入图片描述

8、Firewalld实现路由器功能

8.1 Firewalld-实现DNAT

#都开启ipv4转发 ,#添加下面一行
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

#使内核修改生效
sysctl -p

#环境说明
#eth0可连接外部网络,eth1对应的网段是内网网段
Firewalld
	eth0:  10.0.0.200     5555端口
	eth1:  172.16.1.200    

web:
	eth1:  172.16.1.9     22端口

在这里插入图片描述

#实现外部网络访问内部资源
firewall-cmd --add-forward-port=port=5555:proto=tcp:toport=22:toaddr=172.16.1.9

#iptables写法
#iptables -t nat -I PREROUTING -d 10.0.0.200 -p tcp --dport 5555 -j DNAT --to-destination 172.16.1.9:22

在这里插入图片描述
测试操作
在这里插入图片描述

8.12Firewalld-实现SNAT

在指定的带有公网IP的服务器上启动Firewalld实现内部集群共享上网;
在这里插入图片描述

#firewalld机器操作。 确保firewalld端可以上网,配置开启masquerade 即可,暂不用写snat规则。
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

#客户端将网关指向firewalld服务器,配置DNS
#web03操作
cat /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61
DNS1=223.5.5.5

nmcli connection reload
nmcli connection down eth1 && nmcli connection up eth1

firewalld端
在这里插入图片描述

web端
在这里插入图片描述

END

9、 Firewalld复规则Rule

firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号

源地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的。

语法:
在这里插入图片描述
rule执行顺序
在这里插入图片描述

9.1 示例1

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

#1.比如允许10.0.0.10主机能够访问http服务,允许172.16.1.0/24能访问22端口
firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.10/32 service name=http accept'
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name=ssh accept'

9.2 示例2

在这里插入图片描述

#⒉默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name="ssh" drop'

9.3 示例3

在这里插入图片描述

#2.使用firewalld,允许所有人能访问http, https服务,但只有10.0.0.1主机可以访问ssh服务
firewall-cmd --reload
firewall-cmd --remove-service=ssh
firewall-cmd --add-service={http,https}
firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.0.1/32 port="22" protocol="tcp" accept "

9.4 示例4

在这里插入图片描述

#4.当用户来源卫地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.9的22端口
firewall-cmd --add-masquerade
firewall-cmd --add-rich-rule'rule family=ipv4 source address=10.0.0.1/32 forward-port port="5555"  protocol="tcp" to-port="22" to-addr="172.16.1.9"'

by oldxu
END

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

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

相关文章

如何在 Linux 中设置 SSH 无密码登录

SSH(Secure SHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。 它还用于使用安全复制 (SCP) 命令和 rsync 命令通过网络将文件从一台计算机传输到另一台计算机。 在本文[1]中,我们将向您展示如何在基于 RHE…

map、sync.map、concurrent-map适用场景与源码解析

最近一直加班,无论工作日还是周末,虽然每天很忙但总感觉空空的,很少有时间停下来思考与总结。项目中各种甩锅,最后最苦逼的还是落到了研发的头上,文档编写、环境部署、问题排查虐得一遍又一遍。事情杂乱,研…

C语言之函数题

目录 1.乘法口诀表 2.交换两个整数 3.函数判断闰年 4.函数判断素数 5.计算斐波那契数 6.递归实现n的k次方 7.计算一个数的每位之和(递归) 8.字符串逆序(递归实现) 9.strlen的模拟(递归实现) 10.求…

信息化发展2

信息系统生命周期 1 、软件的生命周期通常包括:可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等阶段。 2 、信息系统的生命周期可以简化为:系统规划(可行性分析与项目开发计划),系统分析…

【算法训练-链表】合并两个有序链表、合并K个有序链表

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!首先,链表对应的数据结构在这篇Blog中:【基本数据结构 一】线性数据结构:链表,基于对基础知识的理解来进行题目解答。…

(笔记二)利用opencv调用鼠标事件在图像上绘制图形

目录 (1)查看cv2所支持的鼠标事件(2)通过鼠标事件在图像上做标记(3)高级操作:通过移动鼠标在图像绘制图形、曲线 该功能主要创建一个鼠标事件发生时执行的回调函数。鼠标事件可以是任何与鼠标有…

配置Flink

配置flink_1.17.0 1.Flink集群搭建1.1解压安装包1.2修改集群配置1.3分发安装目录1.4启动集群、访问Web UI 2.Standalone运行模式3.YARN运行模式4.K8S运行模式 1.Flink集群搭建 1.1解压安装包 链接: 下载Flink安装包 解压文件 [gpbhadoop102 software]$ tar -zxvf flink-1.1…

前端需要理解的性能优化知识

优化的目的是展示更快、交互响应快、页面无卡顿情况。 1 性能指标 2 分析方法 使用 ChromeDevTool 作为性能分析工具来观察页面性能情况。其中Network观察网络资源加载耗时及顺序,Performace观察页面渲染表现及JS执行情况,Lighthouse对网站进行整体评分…

Linux驱动-I2C子系统基本分析

​第一:Linux中I2C驱动框架分析 I2C核心(i2c_core) I2C核心维护了i2c_bus结构体,提供了I2C总线驱动和设备驱动的注册、注销方法,维护了I2C总线的驱动、设备链表,实现了设备、驱动的匹配探测。此部分代码由…

CNN 01(CNN简介)

一、卷积神经网络的发展 convolutional neural network 在计算机视觉领域,通常要做的就是指用机器程序替代人眼对目标图像进行识别等。那么神经网络也好还是卷积神经网络其实都是上个世纪就有的算法,只是近些年来电脑的计算能力已非当年的那种计算水平…

sql语句中的ddl和dml

操作数据库:CRUD C(create) 创建 *数据库创建出来默认字符集为utf8 如果要更改字符集就 Create database 名称 character set gbk(字符集) *创建数据库:create database 名称 *先检查是否有该数据库在…

Python第三方库纵览

Python第三方库纵览 知识点 更广泛的Python计算生态,只要求了解第三方库的名称,不限于以下领域: 网络爬虫、数据分析、文本处理、数据可视化、用户图形界面、机器学习、Web开发、游戏开发等 知识导图 1、网络爬虫方向 网络爬虫是自动进行HTTP访问并捕…

【JAVA】实现API 接口参数签名

使用sa-tokenSpringBoot拦截器实现API 接口参数签名 在涉及跨系统接口调用时,我们容易碰到以下安全问题: 1.请求身份被伪造。 2.请求参数被篡改。 3.请求被抓包,然后重放攻击。 1.引入 sa-token sa-token官方文档:https://sa-token.cc/doc.ht…

HCIP-HCS华为私有云

1、概述 HCS(HuaweiCoudStack)华为私有云:6.3 之前叫FusionSphere OpenStack,6.3.1 版本开始叫FusionCloud,6.5.1 版本开始叫HuaweiCloud Stack (HCS)华为私有云软件。 开源openstack,发放云主机的流程&am…

第五章 树与二叉树 一、树的定义与考点

一、定义 1.树是由n (n > 0) 个节点组成的有限集合。 2.当n0时,称为空树。 3.在非空树中,有且仅有一个节点没有前驱,其他节点都有且仅有一个前驱,称为根节点。 4.每个节点有零个或多个子节点,而每个子节点又有零…

多态/虚函数/虚函数表

OVERVIEW 多态/虚函数/虚函数表1.虚函数引入后类发生的变化?2.虚函数表的生成时机和生成原因?3.虚函数表指针赋值的时机?4.类对象在内存中的布局?5.虚函数的工作原理和多态性的体现?6.其他问题 多态/虚函数/虚函数表 n…

Android JNI系列详解之生成指定CPU的库文件

一、前提 这次主要了解Android的cpu架构类型,以及在使用CMake工具的时候,如何指定生成哪种类型的库文件。 如上图所示,是我们之前使用CMake工具默认生成的四种cpu架构的动态库文件:arm64-v8a、armeabi-v7a、x86、x86_64&#xff0…

昇腾Ascend+C编程入门教程(纯干货)

2023年5月6日,在昇腾AI开发者峰会上,华为正式发布了面向算子开发场景的昇腾Ascend C编程语言。Ascend C原生支持C/C编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发效率,帮助AI开发者低…

go学习之流程控制语句

文章目录 流程控制语句1.顺序控制2.分支控制2.1单分支2.2双分支单分支和双分支的四个题目switch分支结构 3.循环控制for循环控制while 和do...while的实现 4.跳转控制语句breakcontinuegotoreturngotoreturn 流程控制语句 介绍:在程序中,程序运行的流程…