Linux防火墙使用(firewalld与iptables)

防火墙概述

        防火墙是一种由硬件和软件组合而成,在内部网和外部网之间、专有网和公共网之间构造的保护屏障,用以保护用户资料和信息安全的一种技术

        防火墙作用在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,从而实现计算机不安全网络因素的阻断。 确保网络正常运行,保障信息安全,为用户提供良好的网络体验

        防火墙分为硬件和软件两种,硬件防火墙是由厂商设计好的主机硬件,其操作系统主要以提供数据包数据的过滤机制为主,并去掉不必要的功能。而软件防火墙则是保护系统网络安全的一套软件(或称为机制),如Linux中的Netfilter和iptables/firewalld等

        Netfilter,是一个工作在Linux内核的网络数据包处理框架,是Linux内核中的包过滤功能体系,用于分析进入主机的网络数据包,将数据包的头部数据(如硬件地址、软件地址、TCP、UDP、ICMP等)提取出来进行分析,以决定该连接为放行还是抵挡的机制,称为防火墙的“内核态”

        而我们学习的iptables与firewall则是两款不同的防火墙管理工具,真正实现防火墙功能的还是内核Netfilter

firewalld

        firewalld是从红帽7系统开始,作为iptables服务的替代品,提供更高级别的防火墙管理功能,是默认的管理防火墙配置的工具,使用iptables作为底层实现

        特点

        支持动态更新防火墙规则,可以在运行时添加、删除、修改规则,而不需要重新加载整个防火墙配置

        支持IPv4、IPv6防火墙设置以及以太网桥

        加入了区域(zone,一系列规则的集合)概念

        配置分为永久配置和运行时配置

        管理区域

        阻塞区域(block):任何传入的网络数据包都将被阻止

        工作区域(work):相信网络上的其他计算机不会损害你的计算机,只接受选定的传入连接

        家庭区域(home):相信网络上的其他计算机不会损害你的计算机,只接受选定的传入连接

        内部区域(internal):信任网络上的其他计算机不会损害你的计算机,只有选择接受传入的网络连接

        外部区域(external):不相信网络上的其他计算机不会损害你的计算机,只有选择接受传入的网络连接

        公共区域(public):在公共场所使用,你不相信网络上的其他计算机不会损害你的计算机,只接受选定的传入连接,也是默认区域

        信任区域(trusted):所有的网络连接都可以接受,该区绑定的规则(如网卡、源网段、服务等)不受防火墙阻挡,所有流量均可通过

        隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用,用于在非军事区内可公开访问但对内部网络有限制访问的计算机,只接受选定的传入连接

        丢弃区域(drop):任何传入的网络数据包被丢弃,没有应答,只可能传出网络连接

        使用命令

                服务操作命令

systemctl start firewalld        #启动服务
systemctl stop firewalld         #停止服务
systemctl restart firewalld      #重启服务    
systemctl status firewalld       #查看状态
systemctl enable firewalld       #设置开机自启动
systemctl disable firewalld      #禁用开机自启动

                区域操作命令

firewall-cmd --get-default-zone            #查看默认区域
firewall-cmd --set-default-zone=public     #设置默认区域为public区域
firewall-cmd --get-active-zone             #查看当前活动的区域
firewall-cmd --get-zones                   #查看总共可用的区域

#--list-[区域选项]        查看指定区域的选项配置,all为查看所有配置
#--zone=[区域名]          指定配置的区域,不指定则对默认区域进行设置(public区域)
firewall-cmd --list-all      #查看当前激活(active)的区域的配置
firewall-cmd --list-all --zone=work        #查看work区域的配置
firewall-cmd --list-port --zone=work        #查看work区域的端口配置

                区域配置选项 

        target        :默认目标策略,通常是允许或拒绝

        icmp-block-inversion        :ICMP阻塞反转设置,如果设置为yes,则默认允许ICMP,并通过规则来阻塞特定的ICMP消息

        interfaces        :这个区域绑定的网络接口

        sources        :对特定的源IP地址或网络配置为只允许或拒绝

        services        :允许通过此区域的服务

        ports        :允许通过此区域的特定TCP端口

        protocols        :对特定的协议设置为只允许或拒绝

        masquerade        :是否启用IP伪装(NAT)

        forward-ports        :设置端口转发规则

        source-ports        :源端口设置特定规则

        icmp-blocks        :没有阻塞的ICMP消息

        rich rules        :设置富规则(复杂的、自定义的防火墙规则)

        配置操作

#对于firewalld的配置,可以对区域内的选项进行配置
#--add-[区域选项配置]    添加(remove为删除)

#允许来自 IP 地址 192.168.221.148 的流量进入 public 防火墙区域
firewall-cmd --add-source 192.168.221.148 --zone=public
#允许来自任意地址的TCP流量通过22端口,在设置端口时建议指定协议
firewall-cmd --add-port=22/tcp
#允许来自任意地址的TCP流量通过8080到8083之间的端口
firewall-cmd --add-port=8080-8083/tcp

#--change-interface    更改该区域绑定的网络接口
#将ens33网络接口绑定到work区域,所有该接口的流量根据work区域的规则进行过滤
firewall-cmd --change-interface=ens33 --zone=work


#使用富规则配置
#使用富规则设置允许192.168.221.148设备发送到TCP端口22的数据包通过防火墙
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.221.148" port port=22 protocol="tcp" accept'

#rule        使用富规则要使用rule关键字
#family      指定Ipv4类型
#source      指定源IP
#address     源IP地址
#port        配置端口号
#port=22     指定端口号为22
#protocol    指定协议

#这里配置都是临时性的,在下一次重启服务或重新加载配置时会失效
#--permanent        设置为永久有效
#永久将ens33网络接口绑定到work区域,所有该接口的流量根据work区域的规则进行过滤
firewall-cmd --change-interface=ens33 --zone=work --permanent

iptables

        概述

        在早期的Linux系统中默认使用的就是iptables,该防火墙使用链式规则,与firewalld一样,是一款防火墙管理与配置的工具,真正实现防火墙功能的是Linux内核中的Netfilter

        iptables是一个命令行工具,只可以通过命令行进行配置,并且iptables的配置是临时的,重启系统后配置会丢失。iptables配置防火墙依靠四个部分实现,分别是:表、规则链、规则、控制类型,可以适应各种不同的网络环境和应用场景。iptables的配置实时生效,不需要重启服务

        功能

        数据包过滤:可以根据源IP地址、目标IP地址、端口号、协议类型等条件来过滤进出系统的数据包,从而实现访问控制和安全策略的限制

        网络地址转换(NAT):可以将私有网络中的IP地址转换为公网IP地址,实现内网访问外网的功能

        端口转发:可以将某个端口的数据包转发到另一个指定的端口上,用于实现服务的映射和访问控制

        防止DoS攻击:可以通过配置规则来限制来自某个IP地址或IP地址段的连接数,从而减轻系统的负载和防止拒绝服务攻击

        日志记录:可以将符合规则的数据包记录到系统日志中,用于分析和审计系统的网络流量

        表和链

        iptables的四个表是互相独立的,处理优先级为:raw—>mangle—>nat—>filter,此外每个表的作用也各不相同

        raw表:是否对数据包进行状态追踪,包含OUTPUT、PREROUTING两个规则链

        mangle表:修改数据包内容,可以做流量整型、对数据包设置标记,包含所有的规则链,但是很少使用这个表

        nat表:负责地址转换功能,用来修改数据包中的源、目标IP地址或端口,包含OUTPUT、

PREROUTING、POSTROUTING三个规则链

        filter表:负责过滤数据包,确认是否放行数据包,包含INPUT、FORWARD、OUTPUT三个规则链

        在iptables还有五条规则链,在每个规则表里有不同的规则链,每个规则链内存在不同的规则,每个规则链也有不同的作用,当数据包到达数据链时,从上而下匹配规则,如果没有匹配到,就会执行规则链默认的控制类型

        PREROUTING:在进行路由选择前处理数据包

        POSTROUTING:在进行路由选择后处理数据包

        INPUT:处理入站的数据包,也就是目标是本机的数据包

        OUTPUT:处理出站的数据包,也就是处理从本机发出的数据包

        FORWARD:处理转发的数据包,也就是处理经过本机的数据包

        iptables对于数据包的处理流程可以参考下图

        iptables的控制类型

        ACCEPT:允许通过

        DROP:直接丢弃,不给出任何回应

        REJECT:拒绝通过,并给出回应,对方可以知道被拒绝

        SNAT:修改数据包的源地址

        DNAT:修改数据包的目标地址

        LOG:记录日志信息,然后传给下一条规则继续匹配

        使用

        在CentOS7中,默认使用firewalld防火墙,因此需要先安装iptables,而且两者只能同时使用一个,在使用前要先关闭firewalld

systemctl stop firewalld         #关闭firewalld

yum -y install iptables-services iptables        #安装iptables

systemctl start iptables                #启动服务
systemctl enable iptables               #设置开机自启动


#-t    指定表,如果不指定,默认是filter表    -v    查看规则表详细信息
#-n    使用数字形式显示输出结果        -L    查看当前防火墙有哪些策略(规则)
iptables -t raw -nL            #查看raw表下的信息

#-F    清空表中所有的策略
iptables -t raw -F            #清空raw表中所有的策略

        配置规则

#-A    在指定链的末尾添加一条规则        -I    在指定链中插入一条规则,默认在第一行添加
#-p    指定协议类型                    -j    指定控制类型

#在filter表的INPUT链第三条规则前添加规则,拒绝所有udp协议的数据包,这里如果链中没有三条或更多的规则
#则会在链的末尾添加,
iptables -t filter -I INPUT 3 -p udp -j REJECT

#-s    指定源地址或网段        -d    指定目的地址        -i    指定入站网卡    -o    指定出站网卡

#丢弃来自192.168.221.150主机并且通过ens33网卡进入的数据包,这里需要两个条件同时满足
iptables -t filter -A INPUT -s 192.168.221.150 -i ens33 -j DROP

#拒绝目标地址为192.168.221网段的IP的主机并且由本机ens33网络接口进行转发的数据包
iptables -t filter -A FORWARD -d 192.168.221.0/24 -o ens33 -j REJECT

#--sport    指定源端口            --dport    指定目标端口
# :    表示一个端口范围           -m multiport --sports 多端口匹配
#丢弃所有来自30到40端口范围的数据包
iptables -t filter -A FORWARD --sport  30:40 -j DROP
#拒绝所有目标端口为40的数据包
iptables -t filter  -A FORWARD --dport 40 -j REJECT


#-D    删除规则
#删除filter表中INPUT链的第三条规则,如果不存在该规则,则会提示命令失败
iptables -t  filter -D INPUT 3

#-P    设置规则链默认策略
#如果数据包没有匹配到INPUT链的任何被允许通过的规则,就会被拒绝
iptables  -t filter INPUT -P REJECT

        iptables扩展

#-m      指定扩展模块
#string模块
#丢弃由本机发送的含有字符串kcce的数据包
iptables -t filter -A  OUTPUT  -m string --algo kmp  --string  "www.kcce.com" -j DROP

#multiport
#拒绝所有发送到(12,34,56,78,90)端口的数据包
iptables -t filter -A OUTPUT -m multiport --dports  12,34,56,78,90 -j REJECT  

        iptables导出与导入

        由于iptables的配置时临时的,所以可以导出配置,再下次重启服务后再导入进行使用

iptables-save            #会将当前iptables的规则输出到终端

iptables-save > /iptables.txt    #使用重定向将规则配置写入文件中

iptable-restore          #导入规则配置

iptables-restore /iptables.txt    #从iptables.txt导入规则配置

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第212题单词搜索II

题目&#xff1a; 题解&#xff1a; class Solution {int[][] dirs {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};public List<String> findWords(char[][] board, String[] words) {Trie trie new Trie();for (String word : words) {trie.insert(word);}Set<String> a…

Apache Seata Mac下的Seata Demo环境搭建

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Mac下的Seata Demo环境搭建&#xff08;AT模式&#xff09; 前言 最近因为工作需要&#xf…

探讨3D沉浸式在线会议系统的研发 - Meta演示的元宇宙虚拟化身多人对话场景,Web端现在也可以实现了 !

要实现一个元宇宙多人会议系统&#xff0c;关键技术有&#xff1a; 1. 3D虚拟空间的构建&#xff08;含光影特效、虚拟现实和增强现实&#xff09; 2. 3D虚拟化身的构建&#xff08;含动画、表情、语音&#xff09; 3. 多人角色管理 4. 会话控制和信息同步 5. 语音合成 6…

免费的鼠标连点器电脑版教程!官方正版!专业鼠标连点器用户分享教程!2024最新

电脑技术的不断发展&#xff0c;许多用户在日常工作和娱乐中&#xff0c;需要用到各种辅助工具来提升效率或简化操作&#xff0c;而电脑办公中&#xff0c;鼠标连点器作为一种能够模拟鼠标点击的软件&#xff0c;受到了广大用户的青睐。本文将为大家介绍一款官方正版的免费鼠标…

对接海康sdk-linux下复制jar包中resource目录的文件夹

背景 在集成海康sdk时,需要将一些组件放到项目中作为静态资源,并且海康的sdk初始化也需要加载这些静态资源,在windows下,使用一些File路径的方式是可以正确加载的,但是在linux上就会加载失败。 首先我是将海康的sdk组件放到resource下的,并且按照windows和linux设置了两…

考虑数据库粒度的设计-提升效率

目录 概要 场景 设计思路 小结 概要 公开的资料显示&#xff0c;数据库粒度是&#xff1a;“在数据库领域&#xff0c;特别是数据仓库的设计中&#xff0c;粒度是一个核心概念&#xff0c;它直接影响到数据分析的准确性和存储效率。粒度的设定涉及到数据的详细程度和精度&…

CH11_JS的多重循环

第11章&#xff1a;Javascript的多重循环 本章目标 掌握二重循环的使用 掌握二重循环的控制语句的使用 课程回顾 循环控制有那几种方式 讲解内容 1. 回顾练习 需求说明 某次程序大赛&#xff0c;AI2101班有4名学员参加&#xff0c;学员的成绩由用户输入&#xff0c;计算…

文件系统技术架构分析

一文读懂&#xff1a;什么是文件系统 &#xff0c;有哪几类&#xff1f; ▉ 什么是文件系统&#xff1f; 技术大拿眉头皱了皱&#xff0c;忍住快要爆发的情绪。解释到&#xff1a; 数据以二进制形式存储于介质&#xff0c;但高低电平含义难解。文件系统揭秘这些二进制背后的意…

【踩坑】修复pyinstaller报错 No module named pkg_resources.extern

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 报错如下&#xff1a; 修复方法&#xff1a; pip install --upgrade setuptools pippyinstaller -F -w main.py --hidden-importpkg_resources.py2_wa…

前端位置布局汇总

HTML中脱离文档流的元素有&#xff1a; position: absolute - 元素相对于最近的已定位&#xff08;非 static&#xff09;祖先元素定位。 position: fixed - 元素相对于浏览器窗口定位。 float: left 或 float: right - 元素向左或向右浮动&#xff0c;周围的内容会环绕它。 …

认识流式处理框架Apache Flink

目录 一、Apache Flink 的基础概念 1.1 Apache Flink是什么&#xff1f; 1.2 Flink的定义 二、Apache Flink 的发展史 2.1 Flink前身Stratosphere 2.2 Flink发展时间线及重大变更 三、Flink核心特性 3.1 批流一体化 3.2 同时支持高吞吐、低延迟、高性能 3.3 支持事件时…

探索Linux:开源世界的无限可能

Linux是一款开源操作系统&#xff0c;它的起源可以追溯到上世纪90年代初。这个故事始于一个名叫Linus Torvalds的芬兰大学生&#xff0c;他在1983年开始编写一个用于个人电脑的操作系统内核。在他的努力下&#xff0c;Linux逐渐发展成为一个稳定而强大的操作系统。 然而&#…

分数的表示和运算方法fractions.Fraction()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 分数的表示和运算方法 fractions.Fraction() 选择题 以下代码三次输出的结果分别是&#xff1f; from fractions import Fraction a Fraction(1, 4) print(【显示】a ,a) b Fraction(1, 2…

网络基础:BGP协议

BGP&#xff08;边界网关协议&#xff0c;Border Gateway Protocol&#xff09;是一种用于在不同自治系统&#xff08;Autonomous Systems&#xff0c;AS&#xff09;之间交换路由信息的路径向量协议。BGP是互联网的核心路由协议之一&#xff0c;负责管理和维护互联网范围内的路…

为企业知识库选模型?全球AI大模型知识库RAG场景基准测试排名

大语言模型常见基准测试 大家对于AI模型理解和推理能力的的基准测试一定非常熟悉了&#xff0c;比如MMLU&#xff08;大规模多任务语言理解&#xff09;、GPQA&#xff08;研究生级别知识问答&#xff09;、GSMSK&#xff08;研究生数学知识考察&#xff09;、MATH&#xff08…

WordPress作品设计素材图片站资讯文章教程uigreat主题

主题介绍 uigreat主题是一款wordpress作品主题&#xff0c;发布设计作品素材文章&#xff0c;适合作品展示、设计等站点使用等&#xff0c;这款主题都非常合适。 1、自适应设计&#xff0c;PC、平板、手机等均可正常浏览&#xff1b; 2、图片缩略图可自定义高度&#xff0c;主…

摸鱼大数据——Spark SQL——DataFrame详解一

1.DataFrame基本介绍 DataFrame表示的是一个二维的表。二维表&#xff0c;必然存在行、列等表结构描述信息​表结构描述信息(元数据Schema): StructType对象字段: StructField对象&#xff0c;可以描述字段名称、字段数据类型、是否可以为空行: Row对象列: Column对象&#xff…

服务器BMC基础知识总结

前言 因为对硬件方面不太理解&#xff0c;所以打算先从服务器开始学习&#xff0c;也想和大家一起分享一下&#xff0c;有什么不对的地方可以纠正一下哦&#xff01;谢谢啦&#xff01;互相学习共同成长~ 1.BMC是什么&#xff1f; 官方解释&#xff1a;BMC全名Baseboard Mana…

【聚星文社 绘唐3】MJ版一键AI工具使用文档

MJ版一键AI工具使用文档 绘唐地址下载 欢迎使用MJ版一键AI工具&#xff01;这个工具可以帮助您快速生成各种类型的文本&#xff0c;包括文章、对话、代码等等。 使用方法&#xff1a; 登录&#xff1a;首先&#xff0c;您需要登录到您的MJ版账户。如果您还没有账户&#xff0…

Spring AOP源码篇二之 代理工厂ProxyFactory学习

了解AspectJ表达式以及PointCut、Advice、Advisor后&#xff0c;继续学习Spring AOP代理工厂 AspectJ表达式参考&#xff1a;Spring AOP之AspectJ表达式-CSDN博客 PointCut、Advice、Advisor参考&#xff1a;Spring AOP源码篇一之 PointCut、Advice、Advisor学习-CSDN博客 简单…