RHCE(防火墙)

news2024/12/24 3:16:51

文章目录

  • 一、什么是防火墙
  • 二、iptables
  • 三、firewalld
  • 四、作业

一、什么是防火墙

防火墙:防火墙是位于内部网络和外部网络之间的屏障,它按照系统管理员预先定义的规则来控制数据包的进出

 防火墙可以分为硬件防火墙和软件防火墙。硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙的操作系统主要是以提供数据包数据的过滤机制为主,并将其他不必要的功能去掉。软件防火墙就是保护系统网络安全的一套软件,例如:Netfilter与TCP Wrappers都可以称为软件防火墙。这主要介绍Linux系统本身提供的软件防火墙的功能,就是net filter,即数据包过滤机制

数据包过滤:分析进入主机的网络数据包,将数据包的头部提取出来进行分析,以决定该连接为放行或抵挡的机制。由于这种方式可以直接分析数据包头部数据,包括硬件地址,软件地址,TCP、UDP、ICMP等数据包的信息都可以进行过滤分析,因此用途十分广泛,由此可知,linux的Netfilter机制可以进行的分析工作有:

  • 拒绝让Internet的数据包进入主机的某些接口
  • 拒绝让某些来源IP的数据包进入
  • 拒绝让带有某些特殊标志的数据包进入,最常拒绝的就是带有SYN的主动连接的标志
  • 分析硬件MAC地址来决定连接与否

 虽然Netfilter防火墙的功能很多,但是在某些特殊情况下,它并不能保证我们的网络就一定很安全例如:

  1. 防火墙并不能有效阻挡病毒或者木马程序
  2. 防火墙对于内部LAN的攻击无能为力

 netfilter这个数据包过滤机制是由linux内核内建的,不同的内核版本使用的设置防火墙策略的软件不一样,在红帽7系统中firewalld服务取代了iptables服务,但其实iptables服务与firewalld服务它们都只是用来定义防火墙策略的“防火墙管理工具”而已,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter。

二、iptables

 防火墙会从以上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用。

  iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:

  • 在进行路由选择前处理数据包,用于目标地址转换(PREROUTING);
  • 处理流入的数据包(INPUT);
  • 处理流出的数据包(OUTPUT);
  • 处理转发的数据包(FORWARD);
  • 在进行路由选择后处理数据包,用于源地址转换(POSTROUTING)。

安装iptables服务的包:
[root@localhost ~]# yum install iptables-services.x86_64 -y

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl start iptables

[root@server ~]# iptables -F #清空所有的规则表,清空之后客户端可以访问ssh和http服务

  iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。

语法格式:iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

iptables的参数说明:

参数说明
-t对指定的表进行操作,table必须是raw,nat,filter,mangle中的一个。默认是filter表。
-p指定要匹配的数据包协议类型
-s–source address/mask:把指定的一个或者一组地址作为源地址,按此规则进行过滤。当后面没有mask 时,address 是一个地址,比如:192.168.1.1;当 mask 指定时,可以表示一组范围内的地址,比如:192.168.1.0/255.255.255.0
-d–destination address/mask:地址格式同上,但这里指定地址为目的地址,按此进行过滤
-i–in-interface name:指定数据包的来自来自网络接口,比如最常见的 eth0 。注意:它只对 INPUT,FORWARD,PREROUTING 这三个链起作用。如果没有指定此选项, 说明可以来自任何一个网络接口。同前面类似,“!” 表示取反
-o–out-interface name:指定数据包出去的网络接口。只对 OUTPUT,FORWARD,POSTROUTING 三个链起作用
-L–list [chain] 列出链 chain 上面的所有规则,如果没有指定链,列出表上所有链的所有规则
-A–append chain rule-specification:在指定链 chain 的末尾插入指定的规则,也就是说,这条规则会被放到最后,最后才会被执行。规则是由后面的匹配来指定
-I–insert chain [rulenum] rule-specification:在链 chain 中的指定位置插入一条或多条规则。如果指定的规则号是1,则在链的头部插入。这也是默认的情况,如果没有指定规则号
-D–delete chain rule-specification -D, --delete chain rulenum:在指定的链 chain 中删除一个或多个指定规则
-R numReplays替换/修改第几条规则
-P–policy chain target :为指定的链 chain 设置策略 target。注意,只有内置的链才允许有策略,用户自定义的是不允许的
-F–flush [chain] 清空指定链 chain 上面的所有规则。如果没有指定链,清空该表上所有链的所有规则
-N–new-chain chain 用指定的名字创建一个新的链
-X–delete-chain [chain] :删除指定的链,这个链必须没有被其它任何规则引用,而且这条上必须没有任何规则。如果没有指定链名,则会删除该表中所有非内置的链
-E–rename-chain old-chain new-chain :用指定的新名字去重命名指定的链。这并不会对链内部照成任何影响
-Z–zero [chain] :把指定链,或者表中的所有链上的所有计数器清零
-j–jump target <指定目标> :即满足某条件时该执行什么样的动作。target 可以是内置的目标,比如 ACCEPT,也可以是用户自定义的链
-h显示帮助信息

三、firewalld

iptables service 首先对旧的防火墙规则进行了清空,然后重新完整地加载所有新的防火墙规则,而如果配置了需要 reload 内核模块的话,过程背后还会包含卸载和重新加载内核模块的动作,而不幸的是,这个动作很可能对运行中的系统产生额外的不良影响,特别是在网络非常繁忙的系统中。

 如果我们把这种哪怕只修改一条规则也要进行所有规则的重新载入的模式称为静态防火墙的话,那么 firewalld 所提供的模式就可以叫做动态防火墙,它的出现就是为了解决这一问题,任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新即可,它具备对 IPv4 和 IPv6 防火墙设置的支持。

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

firewalld中常见的区域名称(默认为public)以及相应的策略规则:

区域默认规则策略
阻塞区域(block)拒绝流入的流量,除非与流出的流量相关
工作区域(work)拒绝流入的流量,除非与流出的流量相关
家庭区域(home)拒绝流入的流量,除非与流出的流量相关
公共区域(public)不相信网络上的任何计算机,只有选择接受传入的网络连接。
隔离区域(DMZ)隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。
信任区域(trusted)允许所有的数据包。
丢弃区域(drop)拒绝流入的流量,除非与流出的流量相关
内部区域(internal)等同于home区域
外部区域(external)拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh服务相关,则允许流量

 firewalld默认提供的九个zone配置文件都保存在“/usr/lib/firewalld/zones/”目录下,分别为:block.xml drop.xml home.xml public.xml work.xml dmz.xml external.xml internal.xml trusted.xml

  在RHEL7中,firewalld服务是默认的防火墙配置管理工具,他拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。firewall-config和firewall-cmd是直接编辑xml文件,其中firewall-config是图形化工具,firewall-cmd是命令行工具。

安装firewalld服务的软件:
[root@localhost ~]# rpm -qa | grep firewall
firewall-config-0.3.9-14.el7.noarch
firewalld-0.3.9-14.el7.noarch

firewall-cmd命令的参数说明如下:

参数作用
–get-default-zone查询默认的区域名称
–set-default-zone=<区域名称>设置默认的区域,使其永久生效
–get-zones显示可用的区域
–get-services显示预先定义的服务
–get-active-zones显示当前正在使用的区域与网卡名称
–add-source=将源自此IP或子网的流量导向指定的区域
–remove-source=不再将源自此IP或子网的流量导向某个指定区域
–add-interface=<网卡名称>将源自该网卡的所有流量都导向某个指定区域
–change-interface=<网卡名称>将某个网卡与区域进行关联
–list-all显示当前区域的网卡配置参数、资源、端口以及服务等信息
–list-all-zones显示所有区域的网卡配置参数、资源、端口以及服务等信息
–add-service=<服务名>设置默认区域允许该服务的流量
–add-port=<端口号/协议>设置默认区域允许该端口的流量
–remove-service=<服务名>设置默认区域不再允许该服务的流量
–remove-port=<端口号/协议>设置默认区域不再允许该端口的流量
–reload让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
–panic-on开启应急状况模式
–panic-off关闭应急状况模式

四、作业

iptables: 开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务
1、安装iptables

[root@localhost ~]# yum install -y iptables-services

在这里插入图片描述
2、关闭firewalld,开启iptables

systemctl stop firewalld
systemctl start iptables

3、添加规则:ssh服务端口22,dns服务53,httpd服务80,chrony服务123,nfs服务111

iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 123 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 111 -j ACCEPT

4、添加一条拒绝所有

iptables -t filter -A INPUT -p ip -j REJECT

5、查看规则表

iptables -vnL --line-numbers

在这里插入图片描述
6、访问虚拟主机的80端口和100端口

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

firewalld: 开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务 且实现:访问第一台机器web服务的9090端口,转发到第二台机器的80端口(永久生效)
1、关闭iptables,开启firewalld

systemctl stop iptables
 systemctl start firewalld

在这里插入图片描述
2、允许协议访问:ssh,http,dns,chrony,nfs服务

    firewall-cmd --add-service=ssh
    firewall-cmd --add-service=http
    firewall-cmd --add-service=dns
    firewall-cmd --add-port=123/udp
    firewall-cmd --add-service=nfs

3、查看服务

firewall-cmd --list-all

在这里插入图片描述

4、转发端口,永久生效,需要重新加载

    firewall-cmd --permanent --add-masquerade     # 开启IP伪装
    firewall-cmd --add-forward-port=port=9090:proto=tcp:toport=80:toaddr=192.168.178.151 --permanent
    firewall-cmd --reload

在这里插入图片描述

5、测试:

firewall-cmd --list-all

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

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

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

相关文章

LongAdder/LongAccumulator类分析

一、LongAdder简介 1.下图是JDK-API文档的的截图信息 我们可以得知这两个类都是1.8开始提供的&#xff0c;并且都具有顶级的并发性。这两类的区别点主要在于LongAdder初始值为0&#xff0c;只能做累加操作&#xff0c;而LongAccumulator可以完成一些复杂的计算&#xff0c;本…

软件设计师考试整理-0-前言

1. 整理初衷 2022年下半年的软考成绩出来了&#xff0c;查了一下&#xff0c;上午58分&#xff0c;下午61分&#xff0c;虽然不高&#xff0c;但是也过了&#xff0c;还是值得开心的&#xff0c;毕竟在最初报考的时候&#xff0c;会的知识点寥寥无几。 先解释下为什么我会报考…

富勒烯C60,131159-39-2,水溶性富勒烯,CARBON C60

产品描述&#xff1a;富勒烯C60与金刚石、石墨是碳的三种同素异形体&#xff0c;富勒烯分子是一种由60个碳原子结合形成的稳定分子&#xff0c;它具有60个顶点和32个面&#xff0c;其中12个为正五边形&#xff0c;20个为正六边形&#xff0c;它形似足球&#xff0c;所以又称为富…

OpenMMLab AI实战营Day2 图像分类

目录 一、图像分类 二、卷积神经网络 三、超越ResNet的图像分类模型 1、神经结构搜索 2、Transformer 3、ConvNext 四、轻量化神经网络 五、Vision Transformer 六、模型学习 七、学习率与优化器调整策略 八、数据增强 一、图像分类 图像分类&#xff1a;识别图像中…

网络骗局丨典型案例分析,大家一起来避雷!

作者&#xff1a;黑蛋因为疫情的困扰&#xff0c;总体经济都不是很好&#xff0c;春节前后&#xff0c;网络诈骗高发期&#xff0c;以下是几种典型案例&#xff0c;一起来看看。比较常见的有以下几种&#xff1a;1、网络购物骗局小红在某平台网购一件产品&#xff0c;几天后&am…

Nacos+Springcloud+mybatis-plus+oracle的整合

NacosSpringcloudmybatis-plusoracle的整合 1、项目结构 2、父类的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&q…

shell脚本基本使用

目录 1.是什么&#xff1f; 2.写法 3.shell脚本语法 3.1第一个shell脚本 3.2交互式shell脚本 3.3shell脚本的数值计算 3.4test命令 3.5中括号【】判断符 3.6默认变量 4.shell脚本条件判断 4.1 if fi 4.2 if then else 4.3 if elif else 4.4 case 5.shell脚本函数…

Linux 学习笔记 正则、管道、进程与任务定时

一、筛选与搜索 1.1 grep 命令 筛选数据 grep 是 Globally search a regular expression and print 的缩写。意思是全局搜索一个正则表达式&#xff0c;并且打印。 考虑这样的一个名为 a.txt 的文件&#xff1a; 执行 grep apple ./a.txt 即可匹配所有含有 apple 的字符 默认…

IDEA搭建Finchley.SR2版本的SpringCloud父子基础项目-------zuul和SpringConfig

1.Zuul是什么 Zuul包含了对请求的路由和过滤两个最主要的功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预&#xff0c;是实现请求校验、服务聚合等功能的基础. Zu…

4款实用的办公软件,每一款都让你效率翻倍,相见不易

称心的电脑使用体验&#xff0c;总离不开实用的工具&#xff0c;一款高效的工具&#xff0c;能让你的办公体验翻倍。 1、Mem Reduct 这是一款强大到离谱的电脑清理工具&#xff0c;比某安全卫士实用多&#xff0c;没有任何弹屏广告&#xff0c;完全免费使用&#xff0c;内存清理…

搜索算法基础

一 DFS 深度优先搜索算法&#xff08;Depth First Search&#xff0c;简称DFS&#xff09;&#xff1a;一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点&#xff0c;尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件&#xff0c;搜…

uboot的烧写及使用

目录 一、uboot概述 Bootloader Bootloader基本功能 常见的Bootloader 二、SD卡启动盘制作 三、uboot的使用 3.1uboot模式 3.2uboot帮助命令 3.3uboot环境变量命令 3.4常用环境变量 3.5网络传输命令 3.6u-boot访问存储器命令 3.7 u-boot自启动环境变量&#xff08…

人工智能趋势——2023 年综述

随着DALLE 2 于 2022 年 4 月的宣布&#xff0c;关于2022 年初第三个 AI 冬天——或 AI 撞墙——的预言过时得很快而且效果不佳&#xff0c;随后出现了更多主要由扩散模型驱动的文本到图像应用程序&#xff0c;这是一个非常多产的领域用于计算机视觉研究及其他领域。AI 的 2022…

SpringCloud五大核心组件

Consul 等&#xff0c;提供了搭建分布式系统及微服务常用的工具&#xff0c;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等&#xff0c;满足了构建微服务所需的所有解决方案。 服务发现——Netflix Eureka …

六百亿流量、25万出场费,袁树雄身价是《汉川》杨语莲125倍

在文章开始之前&#xff0c;咱们不妨先看两组数据&#xff0c;第一组数据是六百个亿&#xff0c;第二组数据则是二十五万。乍一看并没有什么特别&#xff0c;但是要把这两组数据&#xff0c;和一名音乐人联系起来的话&#xff0c;就会产生非常神奇的效果。 《早安隆回》的创作者…

[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果

字体样式 回忆上次内容 m 可以改变字体样式 0-10 之间设置的都是字体效果 0 复原1 变亮2 变暗 从3到10 又是什么效果 呢&#xff1f;&#xff1f;真的可以blink闪烁吗&#xff1f;&#x1f441; 3m 3m 实现斜体字的效果 4m 4m 对应着下划线 控制范围 通过控制字符串的位置…

DNS服务解析与原理笔记

引言DNS介绍DNS原理与解析DNS查询DNS服务搭建DNS劫持和污染计算机面试 or 真题DNS应用扩展参考与推荐引言 我想很多人遇到过这样一种情况&#xff0c;电脑突然上不了网了&#xff0c;或者说可以登陆QQ&#xff0c;但是进不了网页&#xff0c;任何网页都会出现如下的类似截图&a…

Android.mk文件编写

来源&#xff1a;https://www.jianshu.com/p/9aab51f4cd6f 1. Android.mk 介绍 Android.mk 是Android 提供的一种makefile 文件&#xff0c;注意用来编译生成 exe(二进制可执行文件)、so(动态库文件)、a(静态库文件)、jar(jar包) 和 apk 等文件。Android.mk和一个或多个.c的源…

PWN入门程序装载与虚拟内存 小白笔记

1.源代码到执行源代码test.c从磁盘中&#xff0c;通过gcc编译成a.out&#xff08;可执行文件&#xff09;。执行的时候&#xff0c;是将磁盘中的可执行文件&#xff08;a.out&#xff09;映像到内存中。2.节视图和段视图节视图&#xff08;磁盘中的可执行文件&#xff09;不同的…

采用消息中间件实现最终一致性的分布式事务

基于可靠消息服务的方案是通过消息中间件保证上下游应用数据操作的一致性。假设有A和B两个系统&#xff0c;分别可以处理任务A和任务B。此时存在一个业务流程&#xff0c;需要将任务A和任务B在同一个事务中处理。就可以使用消息中间件来实现这种分布式事务。 第一步&#xff…