关于菜鸡学习RHEL8的一些小笔记--->防火墙
  R6ZO6z1TYi7r 2023年11月02日 34 0

#如果说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的一些小笔记--->防火墙_linux

区域规则集:

区域名称

默认配置

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的一些小笔记--->防火墙_IP_03

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

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

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

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

关于菜鸡学习RHEL8的一些小笔记--->防火墙_redhat_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的一些小笔记--->防火墙_redhat_07

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

#通过命令行放行82端口

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

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

firewall-cmd --reload

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

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

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

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

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

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

最终查看结果

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

示例:单独拉黑一个ip

查看当前zone使用的情况

firewall-cmd --get-active-zones

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

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

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

关于菜鸡学习RHEL8的一些小笔记--->防火墙_配置文件_13

#将ip地址移出黑名单

firewall-cmd --remove-source=192.168.161.1

关于菜鸡学习RHEL8的一些小笔记--->防火墙_配置文件_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 root@1.1.1.1 这种形式来进行访问

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

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

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

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

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

第二步:转换IP

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

firewalld的富规则集

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

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

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

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

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

关于菜鸡学习RHEL8的一些小笔记--->防火墙_配置文件_18

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   31   0   0 linux网卡
  nIt0XG0acU8j   2023年12月11日   32   0   0 linuxhtop
  Yoru5qB4TSKM   2023年12月10日   39   0   0 服务器重启IP
  nIt0XG0acU8j   2023年12月09日   36   0   0 linuxsort
  9JCEeX0Eg8g4   2023年12月11日   25   0   0 mysql配置文件
R6ZO6z1TYi7r