firewalld的图形化管理和命令管理

1.什么是firewalld?

防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)
防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出
防火墙是系统的第一道防线,其作用是防止非法用户的进入
centos 7中防火墙FirewallD是一个非常的强大的功能了, FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接
以及接口安全等级的动态防火墙管理工具,它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项
它也支持允许服务或者应用程序直接添加防火墙规则的接口
以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启
这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等,而模块的卸载将会破坏状态防火墙和确立的连接
centos 7中防火墙FirewallD是一个非常的强大的功能了, FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接
以及接口安全等级的动态防火墙管理工具,它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项
它也支持允许服务或者应用程序直接添加防火墙规则的接口
以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启
这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等,而模块的卸载将会破坏状态防火墙和确立的连接

2.搭建实验环境

重置desktop 虚拟机并配置网络(ip=172.25.72.100),yum源,安装firewall服务,apache服务

systemctl stop iptables关闭这个火墙,为了不影响firewalld的实验效果
systemctl mask iptables锁住这个服务
systemctl start firewalld开启firewalld服务器
systemctl enable firewalld设置开机启动

查看防火墙状态  systemctl status firewalld

在desktop主机上面安装apache服务

3.firewalld中的区域管理

(1)网络区域简介

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

(2)有如下几种不同的初始化区域

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

注:Firewalld的默认区域是public

4.使用图形界面管理firewalld防火墙

firewall-config 输入这个命令,firewalld图形化管理,在里面进行一系列设置

可以看出此时desktop的firewalld的网络域是public(字体最粗)

在真机的浏览器里面访问desktop的apache应该访问不到

现在更改desktop的火墙的网络域

改为trusted

再次在真机的浏览器里面访问desktop的apache应该可以访问到了

在真机里面ssh连接desktop应该可以,因为此时是trusted

在desktop里面将网络域由trusted改为block

 

5.使用命令管理firewalld防火墙

(1)基本命令的用法
使用命令行接口配置防火墙
 

查看防火墙现在正在使用的网络域,可以看出是block域

列出block域的信息

firewall-cmd --state 查看防火墙的状态

firewall-cmd --get-active-zones 查看正在使用的域

firewall-cmd --get-default-zone 查看系统默认使用的域(本来是public,被我在图形界面改了)

firewall-cmd --get-zones 查看域

firewall-cmd --zone=public --list-all 列出公共域里面所有可以支持添加的服务

firewall-cmd --get-services 列出所有的服务

firewall-cmd --list-all-zones 列出所有的域

firewall-cmd --set-defaults-zone=dmz 更改默认的域

能列出来的服务和端口是集成在一块的

火墙是内核上的插件
firewall-cmd --state防火墙状态
firewall-cmd --get-active-zones正在生效的域
firewall-cmd --get-default-zone默认的域
firewall-cmd --zone=public --list-allPublic域里的设置,指定的域
firewall-cmd --list-all默认的域的服务设置
firewall-cmd --set-default-zone=public把默认的域改为public
firewall-cmd --get-zones查看所有的域
firewall-cmd --get-services查看所有可以添加到火墙里的服务
firewall-config                  ##开启火墙的图形管理
firewall-cmd --state	         ##查看火墙的当前状态
firewall-cmd --get-active-zones  ##查看正在工作的域,用的是哪个就是哪个
firewall-cmd --get-default-zone  ##查看默认使用的域,与正在工作的域可以不同
firewall-cmd --get-zones         ##查看所有的域
firewall-cmd --zone=public --list-all   ##public域里的设置
firewall-cmd --list-all-zones 	 ##查看所有域的所有设置
firewall-cmd --get-services      ##所有支持可以直接添加使用的服务名称
firewall-cmd --set-default-zone=public  ##改变默认域

(3)本来public域不允许访问apache,现在做特殊指定
本来desktop的火墙策略是public,不允许httpd服务,因此真机里面访问不到172.25.72.100的apache,现在做一些改变

先搭建基本环境

给Desktop重新配置网络(172.25.72.100),yum源

在desktop上面
firewall-cmd --list-all 发现是public域

此时的火墙区域是public,不允许httpd服务

yum install httpd

systemctl start httpd

systemctl status firewall

在真机上面:

firefox输入 172.25.72.100此时访问不到,因为desktop的火墙策略里面没有添加这个服务

在desktop上面

在desktop上面添加数据包的属性:(也就是指定外来的主机走自己的trusted域)
firewall-cmd --add-sources=172.25.72.100 --zone=trusted 

将真机的访问设置改为trusted域,此时依然是public域,并且没有httpd服务

在真机上面

firefox输入 172.25.72.100此时可以访问

 

此时真机可以访问到desktop的apache了

在server虚拟机上

firefox输入 172.25.72.100此时访问不到,因为desktop的火墙策略里面没有添加这个服务

数据包属性:就是当desktop主机处于public域的时候,指定外来ip走自己的trusted域

(3)接下来指定什么样的人可以访问服务端的什么服务

搭建实验环境:
desktop虚拟机两块网卡:
eth0 172.25.72.100
eht1 1.1.1.100
server虚拟机一块网卡:
eth0 1.1.1.200 

给server配置网络

在serevr上面:

ping 1.1.1.100可以

输入1.1.1.100想访问desktop的apache,访问不到

因为此时desktop的eth0(1.1.1.100)在public里面

在desktop上面

firewall-cmd --list-all eth0和eth1均在public域里面,不允许外来主机访问apache

firewall-cmd --remove-interface=eth1 --zone=public将eth0从public域上面移走
firewall-cmd --list-all 

 

firewall-cmd --add-interface=eth0 --zone=trusted
firewall-cmd --list-all 

 

firewall-cmd --list-all --zone=trusted
此时desktop的eth0在trusted

在server上面:

输入1.1.1.111想访问desktop的apache,可以访问

在desktop上面:

firewall-cmd --list-all 
firewall-cmd --list-all --zone=trusted

firewall-cmd --change-interface=eth1 --zone=public将eth0重新放回public域

在serevr上面:

firewall-cmd --permanent --zone=internal --add-source=172.25.0.0/24指定服务
firewall-cmd --permanent --zone=internal --remove-source=172.25.0.0/24移走服务
firewall-cmd --permanent --zone=internal --add-interface=eth0添加网卡所在的域
firewall-cmd --permanent --zone=internal --change-interface=eth0改变网卡所在的域
firewall-cmd --permanent --zone-internal --remove-interface=eth0将eth0网卡从internal域上面移走
firewall-cmd --permanent --zone=public --add-service=smtp永久添加服务
firewall-cmd --permanent --zone=public --remove-service=smtp永久移走服务
firewall-cmd --zone=public --list-ports列出允许的端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp永久添加,开机依然生效
firewall-cmd --permanent --zone=public --remove-port=8080/tcp永久移走,开机依然生效
如果改域里面的服务不加permanent的话,直接改,直接查就会生效
reload后,就会返回原来的状态

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iptables和firewalld是Linux系统中两种常见的网络防火墙管理工具,它们都用于控制进出系统的网络流量,但各有特点。 **iptables (Internet Protocol Table):** - **历史久远**:Iptables在早期的Linux发行版中就已经存在,最初作为内核模块,后来发展为一个用户空间程序(iptables-save和iptables-restore)。 - **命令行操作**:它使用一系列复杂的规则链(Chain),如INPUT、OUTPUT、FORWARD等,通过iptables-save命令保存配置,iptables-apply或reload重新加载。 - **灵活性高**:允许高级定制,适合对网络策略有深入了解的用户,可以编写复杂的访问控制列表(ACLs)。 - **配置文件易丢失**:如果没有定期保存,配置可能会因重启而丢失。 **firewalld:** - **现代化设计**:firewalld是相对较新的工具,它是一个基于数据库的防火墙系统,提供了图形界面和命令行工具。 - **简化管理**:它采用区域(Zones)的概念,将网络分为不同的安全级别,简化了防火墙规则的管理。 - **动态规则**:火墙规则会自动适应网络连接的变化,如SSH、HTTP等服务的启动和关闭。 - **服务导向**:它以服务名(而非端口)为单位管理防火墙,更容易理解和调整。 - **默认安全**:firewalld在大多数情况下会提供一个预设的安全策略,用户可以直接应用或者修改。 **区别总结:** - **用户友好性**:firewalld倾向于用户友好的图形界面,适合普通用户,而iptables更适合高级用户或自动化场景。 - **管理复杂性**:iptables需要手动编写和维护规则链,firewalld则使用服务和区域概念简化规则管理。 - **自动化**:firewalld可以自动处理服务相关的规则,iptables则依赖于用户手工添加规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值