31. linux中firewalld的图形化管理和命令的使用

Lesson31 linux中firewalld的图形化管理和命令的使用

1. 什么是firewalld
防火墙(Firewalld)是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出
防火墙是系统的第一道防线,其作用是防止非法用户的进入
centos 7 中防火墙Firewalld是一个非常强大的功能,Firewalld提供了支持网络/防火墙区域(zone)定义网络连接以及接口安全等级的动态防火墙管理工具,它支持IPv4,IPv6防火墙设置以及以太网桥接,并拥有运行时配置和永久配置选项它也支持允许服务或者应用程序直接添加防火墙规则的接口
以前的system-config-frewall/lokkit防火墙模型是静态的,每次修改都要求防火墙完全重启
这个过程包括内核netfilter防火墙模块的卸载和新配置所需模块的装载等,而模块的卸载将会破坏状态防火墙和确立的连接;
相反firewall deamon动态管理防火墙,不需要重启防火墙便可以更改,因此也就没有必要重新加在所有的内核防火墙模块了
不过要使用firewall deamon就要求防火墙的所有变更都要通过改守护进程来实现。以确保守护进程中的状态和内核里的防火墙是一致的
另外firewall deamon无法解析由 ip*tables和ebtables 命令行工具添加防火墙的规则
2. 搭建实验环境

将server虚拟机和desktop虚拟机reset,保持实验环境纯净,给desktop虚拟机再添加一块虚拟网卡做服务器,配置eth0的静态ip为172.25.254.114,配置eth1=192.168.0.114,给server虚拟机的一块网卡的ip设置为192.168.0.214,配置172.25.254.114的yum源,将desktop当作防火墙服务器

给desktop安装firewalld服务

yum install firewalld #安装火墙服务

在这里插入图片描述
安装火墙图形化界面的软件
yum install firewall-config -y

在这里插入图片描述

systemctl start firewalld  #开启firewalld服务
systemctl enable firewalld  #设置开启启动

查看火墙的状态,可以看到,火墙正在运行

在这里插入图片描述

在这里插入图片描述

3. firewalld中的区域管理
3.1 网络区域简介
通过网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流
例如,互联网是不可信的区域,而内部网络是高度信任的区域
网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化
该模型描述了主机所连接的整个网络环境的可信级别,并定义了连接的处理方式
3.2 火墙初始化区域

firewalld的默认区域是public

区域名称作用
阻塞区域block任何传入的网络数据包都会被阻止(有回显)
工作区域work相信网络上的其他计算机,不会损害自己的计算机
家庭区域home相信网络上的其他计算机,不损害自己的计算机
公共区域public不相信网络上的任何计算机,只选择接受传入的网络连接
隔离区域 DMZ隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用,对于隔离区域,只有选择接受传入的网络连接
信任区域trusted所有网络连接都可以接受
丢弃区域drop任何传入的网络连接都被拒绝(不回显)
内部区域internal信任网络上的其他计算机,不会损害自己的计算机,只有选择接受传入的网络连接
外部区域external不相信网络上的其他计算机不会损害自己计算机,只有选择接受传入的网络连接
4. 使用图形界面管理firewalld防火墙

firewall-config #输入这个命令,firewall图形化管理工具就显示出来了,可以在里面进行修改,并且修改的参数可以通过命令查看
在这里插入图片描述
在这里插入图片描述
firewall-cmd --get-active-zones #查看正在使用的域
在这里插入图片描述

在图形化界面中将172.25.254.114主机加入block域

在这里插入图片描述

可以看到,block域里已经成功添加了ip为172.25.254.114的主机

用命令行可以查看到在这里插入图片描述
用命令可以查看到新添加进block的域
在这里插入图片描述
firewall-cmd --get default-zone 查看默认域
在这里插入图片描述
firewall-cmd --get-service #列出所有服务
在这里插入图片描述
firewall-cmd --list-all-zones #列出所有的域的详细信息
在这里插入图片描述
firewall-cmd --get-zones #列出所有的域名
在这里插入图片描述
firewall-cmd --set-default-zones=trusted #设置默认于为trusted
在这里插入图片描述
firewall-cmd --get-zones #列出默认的域名
在这里插入图片描述
firewall-cmd --zone=public --list-all #列出public域的所有信息
在这里插入图片描述

4. 使用命令行接口配置防火墙

在desktop服务器端配置好yum源,安装Apache服务

编辑yum源的安装指向文件
在这里插入图片描述
安装Apache软件
在这里插入图片描述
在这里插入图片描述
安装成功
实验:public域是不允许访问apache,现在做特殊指定,就可以让真机访问的到114火墙端的apache了
设置默认域为public,在来源里加入172.25.254.14,允许真机访问服务器端
在这里插入图片描述开启apache服务

在这里插入图片描述

4.1 ip方式设定允许访问apache的主机

在desktop服务器端

外来的主机进入自己的trust域
firewall-cmd --add-sources=172.25.254.14 --zone=trusted
此时默认域仍是public,不允许http服务

firewall-cmd --add-sources=172.25.254.14 --zone=trusted
此时在主机的浏览器地址栏输入172.25.254.14,可以看到apache的默认发布目录
在这里插入图片描述
server访问不到的原因是因为,desktop上的eth0和eth1两块网卡均在public域里面,不允许外来主机访问apache
在这里插入图片描述
firewall-cmd --remove-interface=eth1 --zone=public #把eth1从public域中移走

在这里插入图片描述

4.2 网卡方式设定允许访问apache的主机

把eth1网卡添加到trusted域,可以看到,public域里已经没有eth1网卡了
在这里插入图片描述
在真机端的浏览器地址栏输入172.25.254.114,可以看到,不能访问apache的默认发布目录
在这里插入图片描述
而在server虚拟机中可以访问到apache的默认发布页面
在这里插入图片描述
firewall-cmd --change-interface=eth1 --zone=public #将eth1网卡的域改为public
可以看到,eth1网卡已经在public域里了
在这里插入图片描述

5. firewalld防火墙中的文件配置
firewalld防火墙主要涉及两个文件:
1. /usr/lib/firewalld/ #火墙工作时访问的数据文件
2. /etc/firewalld/ #火墙工作时访问的策略文件
5.1 在firewalld中添加允许iscsi服务

在/usr/lib/firewalld/services文件中,保存着多个以.xml结尾的文件,每个文件以它所提供的服务命名, 火墙在工作时访问这些数据文件,就可以通过这些服务
在这里插入图片描述
由于我们对apache服务比较熟悉,我们使用vim命令来查看一下.xml中写入的内容
在这里插入图片描述

可以看到,里边包含.xml文件的版本信息,编码方式,服务名称,服务描述,使用的协议及端口号
在这里插入图片描述
如果我们自己想在firewalld的数据文件中添加相同格式的服务文件,那么,防火墙也就能够提供相应的服务,我们可以看到,防火墙的默认服务中并没有iscsi网络磁盘共享服务,先将apache服务的文件复制一份,名称为iscsi.xml
在这里插入图片描述
对这个文件的内容进行修改,可以删除描述性的内容,添加服务名称,端口号修改为3260
在这里插入图片描述
修改完文件之后需要重启火墙服务才能生效
在这里插入图片描述
firewall-cmd --get-services #查看防火墙可以使用的服务,可以看到,现在已经包含了iscsi服务
在这里插入图片描述
在防火墙中永久添加iscsi服务,重新加载使其生效
在这里插入图片描述
在防火墙的信息列表中也可以看到已经添加了iscsi服务
在这里插入图片描述

5.2 在firewalld中添加允许http服务

切到/etc/firewall/zones目录下,查看域文件中存在的文件
在这里插入图片描述
使用vim命令查看公共域文件的内容
在这里插入图片描述
可以看到,里边包含 <service name="http">的行就代表着公共域允许这个服务
在这里插入图片描述
使配置修改生效,查看http服务是否添加成功

firewall-cmd --reload
firewall-cmd --list-all

可以看到,public域已经添加了http服务

在这里插入图片描述

5.3 firewalld中端口的添加和移除
firewall-cmd --list-ports   #列出已经存在的端口
firewall-cmd --add-port=8080/tcp   #将以tcp协议的方式传输数据的3260端口添加进firewald
firewall-cmd --list-ports    #再次查看端口是否已经添加进firewalld
firewall-cmd --remove-port=8080/tcp   #将8080端口从firewalld中移除
firewall-cmd --list-ports   #列出已经存在的端口,看8080端口是否成功移除

在这里插入图片描述
从上图可以看到,8080端口已经成功添加

在这里插入图片描述
从上图可以看到,8080端口已经成功移除

5.4 了解reload和complete-reload的区别

desktop服务器端:
首先查看firewald中public域已经添加的服务

在这里插入图片描述
可以看到,firewalld中含有ssh服务,将ssh服务移除,使用–reload重新加载
在这里插入图片描述
再次查看列表发现,ssh服务已经不在firewalld里
在这里插入图片描述
查看desktop服务器的ip为172.25.254.114
在这里插入图片描述
在真机端测试
用真机测试,使用ssh root @172.25.254.114命令来测试firewalld服务器到底是否允许ssh服务
在这里插入图片描述
输入密码之后发现,能够登陆desktop服务器,说明在desktop服务器端虽然使用firewall-cmd --reload命令重新加载使其生效,并且列表里也已经看不到ssh服务,但是实际上ssh服务依然存在
在这里插入图片描述
desktop服务器端:
再次使用firewall-cmd --complete-reload重新加载使移除生效

在这里插入图片描述
在真机端测试
用真机sshdesktop虚拟机,此时可以发现,终端被占用,无法进行操作,说明ssh服务已经被彻底移除了

在这里插入图片描述

总结:
reload: 管理当前火墙状态,重新加载使其生效,不会终止任何当前已经建立的到达服务器的链接

complete-reload: 管理当前火墙状态,重新加载生效,并且会断掉访问服务器的连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值