Unit8—Linux中的火墙策略优化

Posted S4061222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unit8—Linux中的火墙策略优化相关的知识,希望对你有一定的参考价值。

四、firewalld

firewalld 是基于文件的方式来对其管理的;文件在 /etc/firewalld/ 中
在这里插入图片描述

1. firewalld的开启

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

2. 关于firewalld的域

字符含义
trusted接收所有的网络连接
home用于家庭网络;允许接受 ssh
work工作网络; ssh ipp-client dhcp-client
public公共网络 ssh dhcp-client
dmz军级网络 ssh
block拒绝所有
drop丢弃;所有数据全部丢弃无任何回复
internal内部网络 ssh mdns ipp-client samba-client dhcp-client
externalipv4 网络地址伪装转发sshd

/etc/firewalld ##火墙配置目录
在这里插入图片描述/lib/firewalld ##火墙模块目录
在这里插入图片描述

3. firewalld 的管理命令(一)

firewall-cmd --state                     查看火墙状态
firewall-cmd --get-active-zones          查看当前火墙中生效的域
firewall-cmd --get-default-zone          查看默认域
firewall-cmd --list-all                  查看默认域中的火墙策略
firewall-cmd --list-all --zone=work      查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted  设定默认域
firewall-cmd --get-services              查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit   移除服务
firewall-cmd --reload

实验环境:
修改默认测试页的内容为hello westos ,默认域为public
在这里插入图片描述

firewall-cmd --set-default-zone=trusted ,设定默认域为 trusted
相当于编辑/etc/firewalld/firewalld.conf文件中的内容

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

firewall-cmd --set-default-zone=public
#设定默认域为 public

在这里插入图片描述

firewall-cmd --set-default-zone=block
#设定默认域为 block

在这里插入图片描述

firewall-cmd --permanent --remove-service=ssh
#其实更改的是 /etc/firewalld/zones/ 中的文件内容

在这里插入图片描述在这里插入图片描述测试:
在这里插入图片描述

firewall-cmd --state #查看当前火墙状态
firewall-cmd --get-active-zones #查看当前活跃域
firewall-cmd --get-default-zone #查看当前默认域
firewall-cmd --get-zones #查看所有的域名称;此处的 libvirt 为虚拟机开启时的域,在真实主机中并不存在
firewall-cmd --get-services #所有可以设定的服务;
firewall-cmd --set-default-zone=public #设定默认域为 public
firewall-cmd --list-all --zone=dmz #查看指定域dmz的火墙策略

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

firewall-cmd --get-services #所有可以设定服务中没有westos服务;
添加westos服务:
(1)cp /usr/lib/firewalld/services/ssh.xml
/usr/lib/firewalld/services/westos.xml
(2)vim /usr/lib/firewalld/services/westos.xml
(3)firewall-cmd --permanent --add-service=westos
(4)firewall-cmd --reload
(5)firewall-cmd --list-all

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

火墙策略中移除westos服务

在这里插入图片描述

4. firewalld 的管理命令(二)

firewall-cmd --permanent --add-source=172.25.4.0/24 --zone=trusted    
指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.4.0/24 --zone=public
删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens9 --zone=public       
删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens9 --zone=block           
添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens9 --zone=public       
更改网络接口到指定域

firewall-cmd --permanent --add-source=172.25.4.0/24 --zone=trusted
#指定数据来源,访问指定域,表示172.25.4.0/24网段的主机,访问此主机(a)走trusted域,其他主机走默认域(public)

在这里插入图片描述
测试:
在这里插入图片描述在这里插入图片描述

ens3网卡走public域,ens9网卡走trusted域

在这里插入图片描述
测试:

在这里插入图片描述

主机访问ens3网卡时失败,westosb访问ens9网卡成功

在这里插入图片描述

将ens9网卡从trusted域修改为public域

在这里插入图片描述

5. firewalld的高级规则

某一个用户的某一项权限的设置,就要用到高级规则,此处只允许70主机

firewall-cmd --direct --get-all-rules
##查看高级规则

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.70 -p tcp – dport 22 -j REJECT
##编写高级规则,其实编辑的是 direct 的文件

##在 filter 表的 INPUT 端设定规则为 1, -p表示的是用什么协议, --dport 22 表示端口号, -s 表示的是谁,!s 表示除了70主机, -j 表示执行什么动作,(direct:默认的规则中开启,使用direct可以作规则限制)
在这里插入图片描述测试:
只有 200 主机在访问时端口为 22 的服务时被允许,其他主机访问端口为 22 的服务时被拒绝,但是其他端口的服务还是接受的
在这里插入图片描述

6. firewalld中的NAT

以上的设置都是对于一个网段之间的设置,那么不同网段之间要通信就需要以下的设置:

(一)4网段的b主机无法ping通254网段的真实主机

westosb主机ip:172.25.4.204,无法ping通172.25.254.70主机,
westosa主机只需要开启地址伪装功能,westosb主机就可以ping通172.25.254.70主机

在这里插入图片描述
测试:
在这里插入图片描述
(二)端口转发:
真实主机172.25.254.70主机链接172.25.254.104主机,无地址伪装
在这里插入图片描述
解决方法:

当访问此主机的22端口时候,转换到172.25.4.204主机的22端口(必须基于masquerade功能打开)

在这里插入图片描述
测试:
在这里插入图片描述

以上是关于Unit8—Linux中的火墙策略优化的主要内容,如果未能解决你的问题,请参考以下文章

Linux中netfilter火墙访问控制策略优化详解(上)—iptables

Linux中netfilter火墙访问控制策略优化详解(下)—firewalld

防火墙策略配置优化

linux 防火墙 默认策略是DROP 如何让我能随意连接其他人的22端口

iptables的高级应用(网关型防火墙)

华为防火墙查看和调整安全域策略优先级