首页 > 其他分享 >关于菜鸡学习RHEL8的一些小笔记--->防火墙

关于菜鸡学习RHEL8的一些小笔记--->防火墙

时间:2023-08-09 11:07:50浏览次数:38  
标签:10 process oss 防火墙 RHEL8 --- -- 菜鸡 image

#如果说SELINUX是对内管控应用程序的安全,那么防火主要是对外进行管理

防火墙:

Linux的内核中包含了 netfilter ,netfilter 主要是对流量操作的一个框架,其中包括数据包的过滤,网络地址转换和端口转发等;

在rhel8中内核还包含nftables ,这是一个较新的数据包分类和过滤的子系统,在netfilter的代码上进行了增强,并且保留了netfilter 的架构,对比netfilter来说,nftables 的数据包处理速度,规则集的更新都更加的迅速,并且支持同时处理 ipv4 和 ipv6 的协议;

netfilter 是通过几个程序来进行的配置,包括iptables,ip6tables 等等,但是这些框架目前已经被弃用了,nftables 是使用单个nfs的用户空间程序来通过统一接口管理所有的协议;

而Firewalld 只是一个防火墙的管理器,它属于是 nftables 框架的前端;

#注:在rhel8中,去修改firewalld是实时生效的

firewalld 对于区域的管理:

查看firewalld所有的管理区域:firewall-cmd --get-zones

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP

区域规则集:

区域名称

默认配置

trusted

可信任区域,防火墙将放行所有流量。

home

区域内主动发起的链接的流入回程数据允许通过,并且默认放行ssh,mdns,samba等服务

internal

与home相同

work

区域内主动发起连接的流入回程数据允许通过,放行ssh服务,dncpv6-client服务

external

区域内主动发起连接的流入回程数据包允许通过,放行ssh服务,并开启地址伪装

dmz

区域内主动发起连接的流入回程数据包允许通过,放行ssh服务

block

区域内主动发起连接的流入回程数据包允许通过

drop

对进入该区域的所有数据包丢弃,并不进行任何回包,区域内主动发起的链接流入回程数据包允许通过

#注:关于zone的目标(target)有四个,默认是default ,其中 ACCEPT 为允许,设置为该目标,相当于没有防火墙功能,REJECT 为拒绝,DROP 为丢弃

#地址伪装:在linux中其实就是开启IP转发后,实现地址访问;地址伪装有两个实现方式如下

关于菜鸡学习RHEL8的一些小笔记--->防火墙_linux_02

#在firewalld中,masquerade 则是开启地址伪装,开启后ip转发的功能就会默认打开

在防火墙上开启nat功能:

snat:源地址转换,可以实现nat中多主机进行上网的功能实现

dnat:目的地址转换,实现端口转发

firewalld的管理规则:

(1)web控制台

systemctl start cockpit.socket #开启cockpit即可,同时确保9090端口正在再被cockpit使用

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_03

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_04

#因为web控制台无法切换区域,所以它的功能比较有限,主要也是用来配置区域放行的端口和服务

(2)firewall-config 图形化控制台

可以使用 firewall-GUI图形化控制台(rpm包名 firewall-config)

关于菜鸡学习RHEL8的一些小笔记--->防火墙_linux_05

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP_06

#基本上命令行可以实现的功能,firewall-gui都可以实现

注:Runtime 这个模式是临时有效,重启服务之后即会失效,Permanent 模式需要重新载入才会生效,并且永久有效,但是不会立即生效 

(3)firewall-cmd 命令行(使用的是xml的区域文件来进行的配置)

#常见命令行
--get-default-zone #查询默认区域名称
--set-default-zone=<区域名称> #设置默认区域,永久生效
--list-all #显示当前区域网卡配置参数,端口,服务等信息
--list-all-zones #显示所有区域网卡配置参数,端口,服务等信息
--get-zones #显示可用的区域
--get-active-zones #显示当前正在使用的区域,网卡名称等
--add-source= #将源自这个IP或子网的流量导向指定的区域
--remove-source= #与--add-source相反,不将这个ip或子网的流量导向这个区域
--change-source= #将源自这个IP活子网的流量导入指定的新的区域

示例:例如需要放行一个端口

确认当前放行的端口,以及当前默认的区域

firewall-cmd --list-all

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP_07

#可以看出当前在public这个区域,并且没有单独放行任何端口

#通过命令行放行82端口

firewall-cmd --permanent --add-port=82/tcp

#放行完毕之后手动重新加载下firewall的配置文件

firewall-cmd --reload

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_08

也可以查看对应区域的配置文件,通过修改配置文件去放行端口

vim /etc/firewalld/zones/public.xml #修改对应区域的配置文件,这里对应的是public区域

关于菜鸡学习RHEL8的一些小笔记--->防火墙_防火墙_09

手动修改,修改后也需重新加载下配置文件

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP_10

最终查看结果

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_11

示例:单独拉黑一个ip

查看当前zone使用的情况

firewall-cmd --get-active-zones

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_12

单独拉黑一个ip,再来查看状态

firewall-cmd --add-source=192.168.161.1 --znotallow=drop

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_13

#将ip地址移出黑名单

firewall-cmd --remove-source=192.168.161.1

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP_14

<<EOF
由上示例可看出拉黑一个ip的格式为 firewall-cmd --add-source=* --zone=drop 其中 --add-source 为指定
需要操作的IP,--zone=drop 是指定操作的区域,如果不携带--zone 那么则是直接操作当前正在使用的区域;同理
需要添加服务到黑名单则为--add-service=smtp --zone=drop ,依次类推,但是需要注意这种操作都是临时有效
加上--permanent后重新加载配置文件则会变为永久有效
EOF

firewalld 优先级

优先级最高 ==》source 来源地址

优先级其次==》interface 接收请求的网卡

优先级最低==》firewalld 配置的默认区域(zone)

所以例如当一条请求满足了source 则不会继续往下去配置,会直接生效所配置的规则

firewalld 端口转发

将本机的端口转向本机

firewall-cmd --add-forward-port=port=9999:proto=tcp:toport=22 #将9999端口转为22端口,所以外部通过ssh链接的时候可以直接使用 ssh -p 9999 [email protected] 这种形式来进行访问

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_15

将本机的端口转向远程主机

第一步:需要先将masquerade(地址伪装) 打开

firewall-cmd --add-masquerade --znotallow=public

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_16

第二步:转换IP

firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=1000:toaddr=远程主机IP

firewalld的富规则集

#更加详细的防火墙管理规则

man firewalld.richlanguage #查看帮助,语法规则如下

关于菜鸡学习RHEL8的一些小笔记--->防火墙_linux_17

#示例:将单个端口对指定IP开放

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.161.1" port port="22" protocol="tcp" accept"

关于菜鸡学习RHEL8的一些小笔记--->防火墙_IP_18

标签:10,process,oss,防火墙,RHEL8,---,--,菜鸡,image
From: https://blog.51cto.com/u_16170308/7016727

相关文章

  • FortiGate在AWS上配置SD-WAN方法
    FortiGate在AWS上配置SD-WAN方法项目背景需求描述架构图如架构图所示,客户有北京和香港两个AWS环境,已经通过专线打通。现在需求是在北京和香港各部署一台Fortigate作为分流使用,北京客户的访问流量如果是要到海外则通过专线到香港的Fortigate出去。测试步骤北京区和宁夏区部署Fortig......
  • 2023年CSPM-3国标项目管理中级认证报名到这里就对了
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • 2023年9月北京/广州深圳DAMA-CDGA/CDGP认证考试报名进行中
    据DAMA中国官方网站消息,2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启,相关事宜通知如下: 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA)数据治理专家(CertifiedDataGovernanceProfessional,CDGP) 考试时间: CDGA:2023......
  • Pytorch框架CV开发-从入门到实战
    点击下载:Pytorch框架CV开发-从入门到实战课程分享,视频+源码+数据集下载!提取码:bbvaPyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如......
  • python语言学习-------------------xlwt模块
    xlwt模块是Python中一个用于管理Excel文件的模块,用以将数据以Excel表格的形式写入到Excel文件中。它具有操作方便、支持多种Excel文件格式等优点,因此,被广泛应用于数据处理、表格导出等方面。1.创建Excel文件使用xlwt模块创建并打开Excel文件:importxlwt#创建workbook对象w......
  • 根号分治-2023牛客7 E-Star Wars
      也就是说对于大点和小点我们采用不同的方式维护对于大点来说我们只需要记录它的周围点的总和不需要知道具体的谁链接了它 对于小点我们需要维护它的所有信息他自己链接了哪些点 需要再开一个vector表示自己链接的大点这样大对大或者小对大的时候维护的信息也......
  • MP-SPDZ技术拾遗(更新中)
    配置onlinebenchmarkonly在根目录下创建config文件mkdirCONFIG.mineCONFIG.mine中仅需添加一行配置MY_CFLAGS=-DINSECURE重新编译虚拟机,以rss为例makecleanmake-j8replicated-ring-party.x编译fake-offline,并生成offline数据make-j8Fake-Offline.x./Fake......
  • 小程序环形进度条(基于l-circularProgress)
    组件预览: 组件代码:<viewclass="progress-wrap"> <l-circularProgress:box-width="progressBoxWidth":box-height="progressBoxWidth":fontShow="false" progressColor="#fff5de":lineWidth="cir......
  • JavaSE--多态在开发中的作用
    一、多态在开发中的作用  1、降低程序的耦合度,提高程序的扩展力  publicclassMaster(){    publicvoidfeed(Dogd){}    publicvoidfeed(Dogd){}  }  以上代码中:Master和Dog、Cat关系紧密,耦合度高,导致扩展力很差  publicclassMaster(){   ......
  • JavaSE--super关键字
    一、super关键字1、super是一个关键字,全部小写2、this与super对比  this:    this可以出现在实例方法中和构造方法中    语法:this.或者this()    this不能使用在静态方法中    this.大部分可以省略,在区分局部变量和实例变量的时候不能省略,    this......