Linux进阶(10)--防火墙策略优化

article/2025/11/5 21:18:37

一.火墙介绍

从RHEL7以后,iptables服务的启动脚本已被忽略。请使用firewalld来取代iptables服务。

防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会根据防火墙规则进行检测,以确定是否允许其通过。

在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。
请添加图片描述

其实Iptables服务与Firewalld服务都不是真正的防火墙,它们都只是用来定义防火墙策略功能的“防火墙管理工具”。

二.iptables(太难了 闲了继续写)

netfilter/iptables可简称为iptables,为Linux平台下的包过滤防火墙,是开源的,内核自带的,可以代替成本较高的企业级硬件防火墙,能够实现如下功能:

  • 数据包过滤,即防火墙
  • 数据包重定向,即转发
  • 网络地址转换,即可NAT

因为CensOS7之后默认使用firewalld服务,所以我们首先要切换到iptables。

1.切换到iptables

yum install iptables-services systemctl stop firewalld 
systemctl disable firewalld 
systemctl mask firewalld 
# 如果之前锁定过iptables需要先解锁
# systemctl unmask iptablessystemctl enable --now iptables

2.iptables五表五链

默认策略中的5条链说明
input处理入站数据包
output处理出站数据包
forward处理转发数据包(主要是将数据包转发至本机其它网卡)
postrouting在进行路由选择前处理数据包,修改到达防火墙数据包的目的IP地址,用于判断目标主机
prerouting在进行路由选择后处理数据包,修改要离开防火墙数据包的源IP地址,判断经由哪一接口送往下一跳

iptables中表的概念

每个“规则链”上都设置了一串规则,这样的话,我们就可以把不同的“规则链”组合成能够完成某一特定功能集合分类,而这个集合分类我们就称为表,iptables中共有5张表,学习iptables需要搞明白每种表的作用。

  • filter: 过滤功能,确定是否放行该数据包,属于真正防火墙,内核模块:iptables_filter
  • nat: 网络地址转换功能,修改数据包中的源、目标IP地址或端口;内核模块:iptable_nat
  • mangle: 对数据包进行重新封装功能,为数据包设置标记;内核模块:iptable_mangle
  • raw: 确定是否对数据包进行跟踪;内核模块:iptables_raw
  • security:是否定义强制访问控制规则;后加上的

三.firewalld

FireWalld属于动态防火墙,是CentOS7系统中用于对netfilter内核模块用户空间管理工具。
FireWalld仅仅替代了iptables service部分,其底层还是使用iptables做为防火墙规则管理入口。

1.切换到firewalld

dnf install firewalld systemctl stop iptables.service 
systemctl disable iptables 
systemctl mask iptables 
systemctl unmask firewalld systemctl enable --now firewalld

2.firewalld中“区域”的概念

firewalld增加了区域(zone)的概念,所谓区域是指,firewalld 预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。

九个默认区域默认策略
trusted允许所有数据包
home拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,samba-client,dhcpv6-client服务通过
internal等同于home
work拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过
public拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过
external拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
dmz拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
block拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作
drop拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作

3.域的管理

/etc/firewalld 火墙配置目录
/lib/firewalld 火墙模块目录

firewall-cmd --state					#查看火墙状态
firewall-cmd --get-zones				#查看所有支持的区域
firewall-cmd --get-default-zone			#查看默认域
firewall-cmd --set-default-zone=trusted	#设定默认域后面加域名
firewall-cmd --list-all					#查看当前区域的火墙策略
firewall-cmd --list-all --zone=public	#查看指定域的火墙策略
firewall-cmd --get-active-zones			#查看当前火墙中生效的域

4.添加允许通过的服务或端口(重点)

☆ 通过服务的名称添加规则

案例:把http服务添加到防火墙的规则中,允许通过防火墙

#查看所有可以设定的服务
firewall-cmd --get-services#在public域中,允许http服务通过防火墙
firewall-cmd --zone=public --add-service=http
#查看当前域火墙策略,可以看到http服务已经被添加
firewall-cmd --list-all
firewall-cmd --list-services#移除服务
firewall-cmd --permanent --zone=public --remove-service=http
#使用--permanent参数一定要重载火墙
firewall-cmd --reload
firewall-cmd --list-all

☆ 通过服务的端口号添加规则

案例:把80/tcp添加到防火墙规则中,允许通过防火墙

firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --list-all			#查看是否添加成功#从firewalld防火墙中把80端口的规则移除掉
firewall-cmd --zone=public --remove-port=80/tcp

☆ 永久模式permanent

在Linux的新版防火墙firewalld中,其模式一共分为两大类:运行模式(临时模式)+ 永久模式。

运行模式:不会把规则保存到防火墙的配置文件中,设置完成后立即生效

永久模式:会把规则写入到防火墙的配置文件中,但是其需要reload重载(firewall-cmd --reload)后才会立即生效

5.指定数据来源访问指定域

#指定数据来源访问指定域
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block 
firewall-cmd --reload#删除指定域中的数据来源
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block 
firewall-cmd --reload

6.添加指定域的网络接口

如果为双网卡主机,可以单独指定某块网卡接口使用的域

#删除指定域的网络接口
firewall-cmd --remove-interface=ens160 --zone=public#添加指定域的网络接口
firewall-cmd --add-interface=ens160 --zone=public#更改网络接口到指定域
firewall-cmd --change-interface=ens160 --zone=public

7.firewalld的高级规则

问题:若使用firewall-cmd --permanent --remove-service=ssh将ssh服务从火墙策略中移除,对于双网卡主机来说,通过ens160和ens224的ssh来连接的所有数据会被拒绝。

#现在要求只允许172.25.254网段的主机可以ssh连接#查看高级规则
firewall-cmd --direct --get-all-rules#添加高级规则,使许172.25.254网段主机使用22端口访问双网卡主机
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 
-p tcp --dport 22 -s 172.25.254.0/24 -j ACCEPT#删除此高级规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 
-p tcp --dport 22 -s 172.25.254.0/24 -j ACCEPT

8.端口转发

#SNAT 
firewall-cmd --permanent --add-masquerade 
firewall-cmd --query-masquerade 			#查询SNAT的状态
firewall-cmd --reload #DNAT 
firewall-cmd --permanent 
--add-forward-port=port=22:proto=tcp:toaddr=172.25.254.10 
firewall-cmd --reload

Rich规则

四.iptables和firewalld区别

  1. firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效。

  2. firewalld使用区域和服务而不是链式规则。

  3. firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制。

  4. firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。


http://chatgpt.dhexx.cn/article/KsX1VnaT.shtml

相关文章

H3C 防火墙策略介绍

注意点: H3C防火墙有安全策略和域间策略,安全策略的优先级大于域间策略,会优先匹配安全策略,匹配不到才会匹配域间策略 域间策略:any to any的域间策略优先级低于具体的区域到具体的区域的域间策略 安全策略匹配顺序…

防火墙策略管理-firewalld

1.拓扑图 2.firewalld服务基础 1、Linux防火墙体系 系统服务:firewalld 管理工具:firewalld-cmd、firewalld-config 2、预设安全区域 ①、根据所在的网络场所区分,预设保护规则集 public:仅允许访问本机的sshd等少数几个服务 tru…

firewalld 防火墙策略

一 下面都是在public区 firewalld防火墙默认情况下(也就是public区域)是拒绝所有的,但是public区默认情况下ping和ssh服务都是放开的 [rootnode-1 ~]# firewall-cmd --list-all --zone public public (active)target: defaulticmp-block-inversion: nointerface…

win10 配置防火墙策略

说明 某些情况下,我们想在不关闭防火墙的情况下,开放一些特定的端口,使得特定的应用可以访问本机应用。我们可以配置自定义的防火墙策略来解决这个问题。 配置 控制面板 > 系统和安全 > Windows Defender 防火墙 高级设置 入站规…

防火墙策略管理小工具——网络安全

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、防火墙配置文件1. 地址集合2. 服务集合3. 规则集合 二、防火墙策略管理小工具的开发1. 主要功能2. 框架设计2.1 IP_Set对象2.2 Service对象2.3 Rule对象2.4…

飞塔防火墙策略设置

上周公司要求对一些电脑进行上网限制,只允许部分软件上网。 一、添加地址:在“策略与对象”--“地址”--“新建” 二、输入IP地址:(最大陷阱,公司是使用无线上网,对飞塔而言,整个无线网是一个端…

防火墙策略配置

拓扑 任务一 c2 ping c1 ,c1 not ping c2 首先我们要做的就是配置接口、网关、子网掩码,使得c1与c2可以互ping 如上图,我们先开启两个客户机,为方便测试。 命令 syssysname FWdis ip int br 查看状态int g0/0/1ip add 192.168.…

防火墙的策略

1.防火墙支持哪些NAT技术,主要的应用场景是什么? 首先,NAT的分类: 在内外网之间,流量进出的两个方向,而NAT技术是包含源地址转换和目标地址转换这两类,在通常的情况下,源地址转换是…

HCIA-Security -- 防火墙安全策略

防火墙安全基本原理 安全区域安全策略状态检测和会话机制ASPF技术防火墙在网络安全中的应用场景 一、防火墙安全基本原理 防火墙不仅只是一个“入口的屏障”,而应该是多个网络的接入控制点。所有进出内网的数据流都应该首先经过防火墙,形成一个信息进出…

防火墙策略

定义与原理: 防火墙的基本作用是保护特定网络免受“不信任”的网络的攻击,但是同时还必须允许两个网络之间可以 进行合法的通信。 安全策略是控制设备对流量转发以及对流量进行内容安全一体化检测的策略,作用就是对通过防火墙的 数据流进行检…

kaggle数据集下载

一、首先需要安装kaggle winR→cmd→pip install kaggle 问题:安装到哪来?都说在c盘。可是我找不到,可能因为之前担心c负荷更改路径了,再安装一下发现已经安装成功,且给出了安装路径。 二、注册 (1387条消息) 最新k…

ImageNet 数据集下载与处理(亲测 实用有效无坑版)

下载 通常下载方式有两种, 官网下载和第三方网站上传的资源下载。这里推荐第三方下载,因为官网可能会存在注册麻烦,网页卡顿的情况。 第三方下载方式如下: 里面包含几乎所有常用的ImageNet的数据集以及标注文件。 https://pan.ba…

ImageNet ISLVRC2012数据集下载和使用

最近要在imagenet数据集上做实验,以前只知道这个数据集很大,但是没用过,这次亲自下载然后按照训练集和验证集划分好了,记录一下。 主要参考了这个 https://zhuanlan.zhihu.com/p/370799616 目录 1. 数据集下载2. 数据集处理2.1 训…

coco2017数据集下载(百度网盘)

今天,想要下载coco2017的数据集,奈何官网下载速度太慢,下载过程可谓坎坷,为了让有需求的人少走弯路,这里提供我的百度云链接,大家可自行下载,文件中包括的内容如下: 百度云链接&…

kaggle数据集的下载

感谢阅读本文,喜欢请收藏点赞 准备工作1.安装kaggle库2.注册登录kaggle账户3.kaggle.json的下载与使用4.下载数据集 文件保存路径 准备工作 1.安装kaggle库 2.注册登录kaggle账户 点我跳转 (没有帐户的有很多) 3.kaggle.json的下载与使用 …

KITTI数据集下载链接

1、简介 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D…

ImageNet数据集 下载

文章目录 1. ImageNet 说明2. ILSVRC2012 说明3. ImageNet下载方式4. ImageNet数据组织与使用 1. ImageNet 说明 ImageNet官网:http://image-net.org/ ImageNet 由斯坦福李飞飞教授带领创建,ImageNet 本身有2万多个的类别,超过 1400 万张图…

机器学习数据集下载

几个常用的数据集下载网站: 1. kaggle数据集 网址:Find Open Datasets and Machine Learning Projects | KaggleDownload Open Datasets on 1000s of Projects Share Projects on One Platform. Explore Popular Topics Like Government, Sports, Med…

深度学习常用数据集介绍与下载(附网盘链接)

摘要 这篇博文总结了博主收集的深度学习常用的数据集,包含常用的分类、目标检测及人脸识别任务,对每个数据集给出了简要介绍、官网下载网站以及公众号获取的关键字。因为有的数据集较大,官网的下载速度可能比较慢,为了方便大家管…

ScanNet数据集下载

文章目录 前言1.数据集介绍2.数据集获取3.导出数据集 前言 笔者CV小白选手获取ScanNet数据集是真的闹心,好在最后获取成功啦!这里将这两天获取数据集的详细过程记录一下,希望能够帮助到更多人,一起学习进步!(o(&#…