firewalld高级配置

2023-05-16

1、IP地址伪装 masquerade:伪装
通过地址伪装,NAT设备将经过设备的包转发到指定接收方,同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地。当是返回数据包是,会将目的地之修改为原始主机地址并路由。
2、端口转发
也叫端口映射。通过端口转发,将指定IP地址及端口的流量转发到相同计算机上不同端口,或不同计算机上的端口。

firewall-cmd高级配置

firewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默认的防火墙配置管理工具

它拥有基于 CLI(命令行界面)和基于 GUI(图形用户界面)的两种管理方式。

相较于传统的防火墙管理配置工具,firewalld 支持动态更新技术并加入了区域的概念。简单来说,区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

firewalld 中常见的区域名称(默认为 public)以及相应的策略规则如表 所示。public是默认的。

在这里插入图片描述

直接规则

就是将指定网段或某一具体ip加入到同一区域,从而达到批量化限制用户行为!
1)直接只用iptables或firewalld语句规则写入管理区域
2)执行优先级最高。优先级:直接规则→富规则→区域规则
3)不会iptables语句的用户不建议直接使用直连接口
4)适用于服务或应用程序

firewalld中的直接规则设置的是一种流程性的规则选项,描述在过程中要做那些事。配置难度相对较高,不建议初学者设置。
语句:

firewall-cmd --direct

例1:启用黑名单
firewall-cmd --direct --permanent --add-chain  ipv4  raw  blacklist
--direct:直接规则
--permanent:将规则写入防火墙配置文件,永久执行【需要使用firewalll-cmd --reload加载配置文件才能生效。如果不使用此选项,所有新添加的规则都是临时使用~--add-chain:添加一个新区域
ipv4 raw blacklist:以ipv4地址格式构建区域,读取raw表进行追踪,区域名称为blocklist(黑名单)

例2:将1.0.0.0网段加入到黑名单
firewall-cmd --direct --add-rule  ipv4  raw  PREROUTING 0 -s 1.0.0.0 -j  blacklist
解释:添加直连规则,临时生效(永久生效),添加规则,目标地址转换之前的数据包中:源地址为1.0.0.0网段加入blocklist区域。

例3:设置访问日志记录
firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"
解释:blacklist 0(区域规则执行前)                    -m limit --limmit 1/min(执行时间周期为1分钟)

例4:配置黑名单中的动作
firewall-cmd --direct --permnent --add-rule ipv4 raw blacklist 1 -j DROP      重新加载firewalld配置文件:firewall-cmd --reload

富规则(富语言规则)

富语言是firewalld防火墙提供的一种新的规则表达式,在iptables的基础上运行,用户不会iptables也能够学习使用,功能比iptables更多。
通过这种语言可以表达firewalld的基本语法中未涵盖的自定义防火墙规则。
富语言可用于表达基本的允许/拒绝规则,也可以用于配置记录(面向syslog和auditd),以及端口转发、伪装和速率限制。

1)规则排序

语句中描述的时间或表达式比较详细。包括允许、拒绝、配置日志记录、端口转发、地址伪装、速率限制、访问时间等规则(且所在区域的规则的基本排序是相同的)
如果区域中的任何规则与包均不匹配,通常会拒绝该包,但是区域可能具有不同的默认值。例如:可信区域(trusted)将接收任何不匹配的包。此外,在匹配某个记录规则后将继续正常处理包
直接规则是个例外。大部分直接规则将首先进行解析–>然后由 firewalld进行其他处理,但是直接规则语法允许管理员在任何区域中的任何位置插入任何规则。

2)测试和调试

为了便于测试和调试,几乎所有规则都可以与超时一起添加到运行时配置。
当包含超时的规则添到防火墙时,计时器便针对该规则开始倒计时,一旦规则的计时器达到0秒便从运行时配置中删除该规则

在使用远程防火墙时,使用超时会是一种极其有用工具。
特别是在测试更复杂的规则集时,如果规则有效,则管理员可以再次添加该规则。如果规则没有按照预期运行,甚至可能将管理员锁定而
使其无法进入系统,那么规则将被自动删除以允许管理员可以继续工作。

通过在启用规则的 firewall-cmd命令的结尾追加选项-timeout= .可向运行时规则中添加超时

3)理解富规则命令

firewall-cmd有四个选项可以用于处理富规则,且所有选项都可以同常规的--permanent或--zone选项结合使用(使用方法见下面的参数)
参数: 【如果没有指定区域,则为默认区域】

--add-rich-rule				添加富规则
--remove-rich-rule			删除富规则
--query-rich-rule=‘rule’	查看单条rich规则           {查询rule是否已添加到指定区域,如果未指定区域,则为默认区域。规则存在,则返回0,否则返回1}
--list-rich-rules			查看rich规则列表

例:

firewall-cmd --zone=区域  --add-rich-rule=‘rule 富规则表达式’               //新建rich规则
# 查询富规则是否添加到指定区域
firewall-cmd  --query-rich-rule
#禁止ip访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.2.*" drop'
#允许ip访问
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address="192.168.2.*" drop'
# 查看富规则列表
firewall-cmd  --list-rich-rule

任何已配置的富语言规则都会显示在firewall-cmd --list-all(默认为public区域)和firewall-cmd --list-all-zone的输出结果中
表达式:

source address=源IP地址
destination address=目标IP地址
element:要素,该项只能是以下几种要素类型之一:

server name=服务名
port port=端口号
protocol value=协议类型(TCP/UDP)
icmp-block=ICMP数据包类型(request reply)
maskquerade 转换地址与端口号(规则里的IP伪装)
forward-port:将指定的TCP或UDP协议的数据包转发到本机的其他端口,或另一台机器[其他端口]
forward-port port=number_or_range protocol=protocol to-port=number_or_range to-addr=address(目标地址可以是个简单的IP地址)

audit:审核,审核类型可以是accept、reject或drop中的一种。但不能在audit命令后指定,因为审核类型将会从规则动作中自动收集(审核不包含自身参数,但可以选择性的增加限制)

accept:通过
drop:丢弃、拒绝(发送端不会受到任何消息)
reject:拒绝并返回消息(发送端将接到一个拒绝消息)

log:日志

log prefix=日志文件(前缀文本)
level:级别
limit value=跳数/时间(s,m,h,d)
–timeout=超时时间

富规则实例

1// 在external区域中,为认证报头协议AH使用新的IPV4和IPV6连接
firewall-cmd --zone=external  --add-rich-rule=‘rule protocol value=ah  accept’
例2// 允许ipv4的主机访问ftp服务
firewall-cmd --zone=external  --add-rich-rule=‘rule famliy=ipv4 server name=ftp accept’
例3// 允许ipv4的1.0.0.0主机访问tftp服务,并每分钟记录一次日志
firewall-cmd --zone=internal  --add-rich-rule=‘rule famliy=ipv4 server name=tftp source address=1.0.0.1/24 log limit value=1/m audit accept’
例4// 允许ipv4的192.168.1.10主机访问http服务,并每分钟记录一次日志
firewall-cmd --zone=trusted  --add-rich-rule=‘rule famliy=ipv4 server name=http source address=192.168.1.10/24 log limit value=1/m audit accept’
例5// 为redius服务拒绝来自1:2:3:4:5:6:: 的ipv6连接,日志前缀为DNS,级别为info,每分钟记录三次
firewall-cmd --zone=trusted  --add-rich-rule=‘rule famliy=ipv6 server name=redius source address=1:2:3:4:5:6:: log limit value=3/m log prefix=dns
level=info audit drop’
例6// 指定端口和ip访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.44.101" port protocol="tcp" port="8080" accept"
shell
// 移除规则
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.44.101" port port="8080" protocol="tcp" accept"

实验接着上篇文章的做

配置IP伪装和地址转发

1、在外网服务器上搭建web用于测试

结果:内网测试机可以访问。dmz区域的网站服务器也可以访问。

yum -y install httpd
vim /var/www/html/index.html
systemctl enable httpd
systemctl restart httpd
firefox 127.0.0.1

内网服务器访问:firefox http://···
web服务器访问:firefox http://···

# 原因:
在网关服务器上查看
firewall-cmd --list-all --zone=external
masquerade: yes	地址伪装开启(地址转换默认开启)
解析:
external区域默认启用地址伪装
  默认不转发没有经过地址转换的数据包
  把本服务器其他区域发来的数据包里的源IP替换成自己区域网卡的IP

# 在网关服务器上配置:
firewall-cmd --remove-masquerade --zone=external 
firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'

2、配置端口转发实现外网服务器访问dmz的web服务

# 在网关服务器上配置:
firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10

# 验证:
外网服务器访问
firefox https://···

3、使用富规则实现地址伪装

这才是真正类似于NAT地址转换的操作,iptables只是把ip转换到网关上了(网关不存在就不行)
新申请的公网地址100.1.1.15配置在网关服务器的外网接口ens33上
在网关服务器上配置:

vim /etc/*/*/*ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR0=100.1.1.10
NETMASK=255.255.255.0
ZONE=external
IPADDR1=100.1.1.15
NETMASK=255.255.255.0

ifdown ens33
ifup ens33

ip addr查看
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:f7:c3:83 brd ff:ff:ff:ff:ff:ff
    inet 100.1.1.10/8 brd 100.255.255.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 100.1.1.15/8 brd 100.255.255.255 scope global secondary ens33
       valid_lft forever preferred_lft forever

firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=100.1.1.15/32 forward-port port=443 protocol=tcp to-addr=192.168.2.10'
解释:将目标地址为100.1.1.15和端口(https:端口为443)的访问请求映射到web服务器地址(192.168.2.10),从而实现访问100.1.1.15达到访问web服务器!!!

扩展:在external区域中添加转换规则【富规则中包含SNAT+DNAT】

方法一:富语言简写语句

firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.20.2

方法二:富语言标准语句

firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=192.168.30.1 forward-port port=80 protocol=tcp to-addr=192.168.20.2'

You know how to do it, don’t let yourself fall into garbage!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

firewalld高级配置 的相关文章

  • Linux防火墙firewalld不生效,无法拦截Docker映射端口

    今天出现了一个奇怪的现象 xff0c centos服务器上的防火墙 firewall 没有开放8103端口 xff0c 但是依然可以访问 服务器开放的端口如下 xff1a 可以看出并没有开放8103端口 开放的服务如下 xff1a 也没有开
  • firewalld高级配置

    1 IP地址伪装 masquerade xff1a 伪装 通过地址伪装 xff0c NAT设备将经过设备的包转发到指定接收方 xff0c 同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地 当是返回数据包是 xff0c 会将
  • Linux防火墙——iptables以及firewalld的使用介绍

    本文基于Linux上CentOS 7版本配合iptables iptables services firewalld等服务进行演示 一 防火墙概念以及Netfilter机制介绍 1 概念 2 防火墙两大类型 3 Netfilter功能 二
  • Firewalld防火墙基础

    目录 一 Firewalld 概述 1 1 Firewalld的简述 1 2 Firewalld 和 iptables的区别 1 3 firewalld的区域 1 3 1 firewalld的9个区域 1 3 2 firewalld的数据处
  • firewalld添加端口

    CentOS7默认的防火墙是firewalld 如果没有firewalld防火墙 xff0c 可以执行yum install firewalld 命令进行安装 2 0firewalld防火墙启用与关闭 启动systemctl start f
  • CentOS7防火墙(Firewalld篇)

    一 防火墙设置 1 启用防火墙 systemctl start firewalld 2 关闭防火墙 systemctl stop firewalld 3 查看状态 systemctl status firewalld 4 开机启用防火墙 s
  • ansible防火墙firewalld设置

    ansible防火墙firewalld设置 背景需求操作防火墙的开关打开验证 防火墙端口策略打开验证 防火墙服务策略打开验证 背景 防火墙 通过有机结合各类用于安全管理与筛选的软件和硬件设备 xff0c 帮助计算机网络于其内 外网之间构建一
  • CentOS 7 firewalld使用简介

    学习apache安装的时候需要打开80端口 xff0c 由于centos 7版本以后默认使用firewalld后 xff0c 网上关于iptables的设置方法已经不管用了 xff0c 想着反正iptable也不会用 xff0c 索性直接搬
  • systemctl stop firewalld和systemctl status firewalld【防火墙关闭和状态查看】

    root 64 node1601232218 ui systemctl status firewalld firewalld service firewalld dynamic firewall daemon Loaded loaded u
  • CentOS 7/8 预装的新型防火墙firewalld配置详解,

    前言 本文将会详细介绍CentOS 7 firewalld的来由 功能 常用命令 常用的案例及使用方法 希望能帮助读者全面了解firewalld xff0c 并能正确配置和使用它 centos7 firewalld firewalld与ip
  • 防火墙---firewalld

    Firewalld概述 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具支持IPv4 IPv6防火墙设置以及以太网桥支持服务或应用程序直接添加防火墙规则接口拥有两种配置模式 xff1a 运行时配置永久配置 firewalld
  • linux 防火墙管理-firewalld

    文章目录 什么是Firewalld防火墙firewalld防火墙的域概念firewalld cmd的参数及作用firewalld中的过滤规则firewalld防火墙的作用模式firewalld cmd操作实例 对Firewalld服务的简单
  • Firewalld防火墙基础

    Firewalld概述 Firewalld 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPv IPv6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 xff1a 即
  • centos7防火墙(firewalld、iptables)

    一 firewalld和iptables netfilter iptables是集成在linux2 4 x版本内核中的包过滤防火墙系统 该框架可以实现数据包过滤 xff0c 网络地址转换以及数据包管理功能 linux中的防火墙系统包括两个部
  • firewalld-cmd简介

    firewalld是centos7的一大特性 xff0c 最大的好处有两个 xff1a 支持动态更新 xff0c 不用重启服务 xff1b 第二个就是加入了防火墙的 zone 概念 firewalld有图形界面和工具界面 xff0c 由于我
  • 《Linux运维总结:firewalld防火墙使用教程》

    文章目录 一 firewalld基础知识1 1 firewalld基本介绍1 2 firewalld与iptables关系与区别1 3 firewalld默认策略1 4 firewalld配置模式1 5 firewalld配置方法1 6 f
  • Firewalld防火墙基础

    目录 前言 一 概述 2 Firewalld和iptables的关系 2 1 Firewalld和iptables的关系 3 Firewalld区域 3 1 firewalld区域的概念 3 2 firewalld防火墙定义了9个区域 3
  • 如何在 CentOS 8 上配置和管理防火墙

    防火墙是一种监视和过滤传入和传出网络流量的方法 它的工作原理是定义一组安全规则来确定是允许还是阻止特定流量 正确配置的防火墙是整个系统安全最重要的方面之一 CentOS 8 附带一个名为防火墙 它是一个带有 D Bus 接口的完整解决方案
  • Linux防火墙开关命令

    关闭防火墙 systemctl stop firewalld service 停止firewall systemctl disable firewalld service 禁止firewall开机启动 开启端口 firewall cmd z
  • Linux防火墙命令

    文章目录 一 Linux防火墙基本命令 1 查看防火墙状态 2 开启防火墙 3 关闭防火墙 4 重启防火墙 5 禁用防火墙 禁止开机启动 6 开机启用防火墙 开机自启防火墙 7 查看防火墙所有开放的端口 8 开放指定端口号 9 关闭指定端口

随机推荐

  • Windows10桌面美化——打造简洁高效美观桌面

    这是小编的Windows桌面 xff1a 常用的软件都固定在了任务栏上且进行了居中美化 所有的软件都固定在了开始屏幕上 我们的思路是 xff1a 把所有软件全部放在开始屏幕中 xff0c 需要使用时 按下键盘上的 window徽标键 打开
  • 学习笔记:医学图像配准简介—附voxelmorph模型

    VoxelMorph官方代码 xff1a GitHub voxelmorph voxelmorph Unsupervised Learning for Image Registrationb 本文参考了博客 xff1a 基于深度学习的单模医
  • 解决Powershell前面没有base,无法激活虚拟环境问题

    解决Powershell前面没有base xff0c 无法激活虚拟环境问题 1 Windows Powershell与CMD区别 在Win10系统下 xff0c 按住Shift然后点击鼠标右键进入Windows Powershell xff
  • LAMT配置

    tomcat项目部署 java环境安装 span class token punctuation span root 64 host span class token punctuation span span class token co
  • atc: invalid option -- ‘-‘

    最近在参加CANN训练营第三期 xff0c 在做应用课后作业的时候使用atc转化工具出现了如下错误 xff0c 百思不得其解 xff0c 看错误的原因是输入的atc命令都是合法的 xff0c 再看最后一行发现atc在 usr share g
  • 使用Anaconda安装Pychorm和torch ,cmd窗口进入python环境没有问题,但是在Pychorm中编写代码报错找不到torch包

    遇到这种问题很可能的原因是在Pychorm中创建工程时候选择的python解释器选择错误 xff0c 如果自己的电脑上之前就有安装的python IDE xff0c 但是没有安装torch包 xff0c 当选择这个解释器的时候就会出现找不到
  • MindSpore实现手写数字识别代码

    MindSpore是华为自研的一套AI框架 xff0c 最佳匹配昇腾处理器 xff0c 最大程度地发挥硬件能力 作为AI入门的LeNet手写字体识别网络 xff0c 网络大小和数据集都不大 xff0c 可以在CPU上面进行训练和推理 下面是
  • ATC模型转换

    xff08 1 xff09 在使用昇腾硬件 xff08 例如Atlas200 xff09 进行模型推理的时候 xff0c 首先需要使用ATC工具将原始模型转换为适合昇腾硬件的模型 xff08 om xff09 xff0c 支持原始框架类型为
  • TypeError: unsupported operand type(s) for *: ‘NoneType‘ and ‘float‘

    TypeError unsupported operand type s for 39 NoneType 39 and 39 float 39 xff0c 如果遇到这种情况说明NoneType和float不允许 的操作 xff0c 检查一下
  • 使用Image.open时,错误提示找不到文件

    Image open img path 这里的img path要是绝对路径 xff08 也就是图片在电脑上的路径 xff09 或者是执行的 py文件图片是在同一个目录下 xff0c 如果图片在另一个目录下 xff0c 编写代码的 py文件在
  • ToTensor() takes no arguments

    在写深度学习网络的时候如果出现如上错误 xff1a ToTensor takes no arguments 我当时的情况是transform 61 torchvision transforms ToTensor 这句代码 由于刚开始ToTe
  • 2022CANN训练营进阶班大作业1调试分享

    题目 xff1a 也就是输入一张JPEG图片 xff0c 经过DVPP解码 43 缩放 43 编码后将结果输出 xff0c 由于gitee代码仓中没有直接可以实现的代码 xff0c 不过提供了jpege xff0c resize xff0c
  • b660和b660m的区别 b660和b660m差多少

    1 xff1a B660M K D4 CPU供电部分有散热片 xff0c 有利于高负载供电的稳定性 2 xff1a B660M K D4具有2个M 2硬盘插槽 xff0c 而B660M P D4是1个M 2硬盘插槽 3 xff1a B660
  • OpenCV4遇到的报错及解决办法

    刚开始学习OpenCV4 xff0c 遇到一些错 xff0c 网上搜索错误原因和解决办法 xff0c 做个记录吧 报错 xff1a CV LOAD IMAGE COLOR 解决办法 xff1a 加入头文件 include opencv2 i
  • nginx的配置和详解

    nginx简介 nginx xff08 发音同engine x xff09 是一款轻量级的Web服务器 反向代理服务器及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0c 并在一个BSD like协议下发行 ngi
  • The following packages have unmet dependencies问题解决

    当出现这些问题时一直追加安装即可
  • Python下载网易云音乐(云音乐飙升榜)

    最近突然想用python写一个自动下载的工具 xff0c 于是就先拿网易云来练练手 xff0c 并把过程中的心得写下来便于后面有想玩这个的童鞋们参考 首先我们分析网页源码 xff0c 找到我们想要的获取数据位置 xff1a 每一个标签对应着
  • ubuntu20.04 桌面图标显示异常及解决方法

    前言 更新至ubuntu20 04后 xff0c 出现了一些以前没有的问题 桌面上有些图标不显示 文章目录 前言一 具体表现二 原因三 解决方法总结 一 具体表现 例如有一次我在做备忘录时 我习惯地打开终端 span class token
  • Java类名的命名规则

    1 类名必须使用有意义的名字 xff1b 2 类名的每个单词的首字母必须大写 帕斯卡命名法 xff1b 3 类名不能使用数字 除了 和 之外的任何符号 xff0c 中间不能添加空格 xff0c 不能使用java关键字 xff1b 如 xff
  • firewalld高级配置

    1 IP地址伪装 masquerade xff1a 伪装 通过地址伪装 xff0c NAT设备将经过设备的包转发到指定接收方 xff0c 同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地 当是返回数据包是 xff0c 会将