配置firewalld防火墙

  • 格式:pdf
  • 大小:1.48 MB
  • 文档页数:5

1242020.02 www.365master.com 信息安全Security责任编辑:赵志远 投稿信箱:netadmin@365master.com

没有任何区别。所以随后的内容将不再强调操作系统。防火墙默认区域Block(阻塞):任何对该区域的连接请求都会被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。只能从系统内部启动网络连接。DMZ(隔离区):用于您的DMZ内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。Drop(丢弃):对进入该区域的所有数据包丢弃并且不进行任何回包,区域内主动发起连接的流入回程数据包允许通过,允许进行出方向的网络连接。External(外部):用于在启用伪装的外部网络上使用,尤其路由、防火墙认为在这个网络上的其他主机不可信。仅仅接收经过选择的连FirewallD 是由RedHat发起的提供了支持网络/防火墙区域(Zone)定义网络链接,以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。随着各个新Gnu/Linux发行版中防火墙引擎逐步从iptables向nftables迁移,FirewallD是目前唯一能够支持该两种防火墙后端引擎的前端服务组件,用户掌握以后可以方便的进行防火墙配置并很好地规避了iptables向nftables迁移带来的学习恐慌。笔者通过查阅RedHat8发行版网络配置手册,并结合自己在Debian Gnu/Linux 10社区版上进行FirewallD防火墙的实际配置使用,对该服务组件的功能和日常使用进行整理,希望通过该文能帮助其他Linux用户掌握该防火墙,并通过该防火墙提高主机测网络安全防御能力,为打造可信网络安全环境有所作为。FirewallD防火墙的安装在Debian Gnu/Linux 10社区版中使用命令“apt-get install firewall-applet firewall-config firewalld”,就可以直接进行FirewallD防火墙软件组件包的安装。在RedHat8下,该防火墙组件默认已经进行了安装,如果用户进行特殊定制安装之后,需要单独安装该软件组件,可以使用命令“yum install firewall-config”直接进行安装即可。笔者在两个系统进行过安装对比,发现该软件组件包在两个系统上除了安装命令稍有差异外,其他从配置文件到SYSTEMD服务配置并配置FirewallD防火墙编者按: FirewallD防火墙可以说取代了iptables防火墙,支持动态更新技术并加入了区域(Zone)的概念,本文对FirewallD防火墙服务组件的功能和日常使用进行了整理。■ 西安 王震华 朱丽璇

125责任编辑:赵志远 投稿信箱:netadmin@365master.com

www.365master.com 2020.02信息安全Security接。Home(家庭): 默认其他同区域内主机可信,仅仅接收经过选择的连接。同时默认放行SSH、mDNS、ipp-client、amba-client与dhcpv6-client服务产生的连接。Internal(内部):从描述中可以等同于home区域。Public(公开):公共区域,也是防火墙配置的默认区域,防火墙认为该区域主机不可信。仅仅接收经过选择的连接。同时默认放行SSH与dhcpv6-client服务产生的连接。Trusted(受信任的):可信区域,防火墙放行一切流量。等同于关闭防火墙功能。Work(工作):工作区域,防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。同时默认放行SSH、ipp-client与dhcpv6-client服务产生的连接。这些区域的命名不言自明,用户可以很快选择一个合适的安全区域,从而简化和避开很多安全问题,当然用户也可以根据自己的需要或者安全评估来对相应安全域进行更个性化的配置,以适应自己的安全管理规范。尽管有些安全域的安全规则是相同的,但还要在名字上有所区别,主要是为了从习惯上让用户更好区分不同域的独特使用场景,对用户来说更好理解和便于区分。防火墙日常管理1.查看防火墙当前状态查询状态:firewall-cmd –state更多的防火墙系统服务状态信息可以使用systemctl status firewalld在配置新的防火墙规则之前,你需要了解如何通过命令查看当前防火墙配置。查看防火墙当前配置可以通过图形界面或者在终端模式下使用CLI命令进行。在图形界面下可以直接通过点击应用程序“firewall-config”图标或者在终端窗口中输入“firewall-config”命令,如果当前用户为非root用户,系统将弹出管理员认证窗口,用户正确输入管理员密码后,防火墙配置窗口就会打开,用户即可以按照窗口界面提供的功能进行操作。CLI工具虽然学习起来需要一定的时间,不过该工具可以完全在系统处于终端模式下进行各种复杂的防火墙全功能配置,当用户在命令行下使用“firewall-cmd”工具进行防火墙配置时,有必要认真学习和掌握。2.防火墙基础命令FirewallD使用了区域进行数据流的管理,当用户使用“firewall-cmd –list-all” 命令时,如果没有使用“--zone”指定区域,那么系统将返回默认区域的当前配置状态。默认区域由配置文件“/etc/firewalld/firewalld.conf”中的字段“DefaultZone=”定义,初始状态下,默认区域被定义为public(公共区域)。用户可以使用命令“firewall-cmd –get-zones”命令查看当前系统防火墙设置的的区域名列表,也可以使用命令“firewall-cmd –get-default-zone”查看防火墙当前的默认区域,同时使用命令”firewall-cmd –set-default-zone=[zonename]”或者通过直接编辑配置文件

1262020.02 www.365master.com 信息安全Security责任编辑:赵志远 投稿信箱:netadmin@365master.com中“DefaultZone”字段的值进行默认区域的修改。启动:systemctl unmask firewalldsystemctl start firewalld随系统启动一起启动: systemctl enable firewalld停止:systemctl stop firewalld停止随系统启动:systemctl disable firewalld停止通过访问FirewallD的D-Bus接口和其他服务,需要FirewallD依赖导致的FirewallD自动启动,更加干净的关闭FirewallD服务:systemctl mask firewalld按照RedHat的官方文档定义,防火墙运行之后被称为runtime(运行时)状态,保存了启动默认参数之后的配置被称为Permanent(永久)状态。在当前runtime状态对防火墙进行的所有配置修改,系统即时生效,但重启后防火墙会恢复到它之前的Permanent状态,其实这一过程就是从保存之后的配置文件中加载相应配置参数的过程。用户可以使用命令“fiewall-cmd --runtime-to-permanent”对当前修改过的规则进行即时保存为Permanent配置,也可以使用命令“firewall-cmd –permanent”并在其后添加其他参数对Permanent进行修改,但是重新启动FirewallD 将关闭所有打开的端口并停止网络通信,需要使用“firewall-cmd –reload”重新加载Permanent配置才能生效。FirewallD提供了一种紧急模式下,系统受到攻击的操作功能,假设攻击者对系统进行攻击,用户可以直接使用命令“firewall-cmd –panic-on”关闭网络通信并且切断攻击者,而不用像之前那样通过物理拔除网线来进行断网操作,防止了系统在多网口环境中一次性插拔所有网线可能带来的混乱,以及由此引发的系统恢复后延续问题。需要恢复网络通信时,用户只要使用“firewall-cmd --panic-off”关闭恐慌模式即可,用户也可以使用“firewall-cmd –query-panic”查询防火墙当前恐慌模式的状态。3.防火墙服务管理命令用户可以通过CLI工具添加预定义的服务类型,防火墙会自动所需的端口,并且将其他设置修改为服务定义文件。使用“firewall-cmd -- list-services”可以查看当前区域内被允许的服务,使用“firewall-cmd --get-services”可以列出所有防火墙已经给定的预定义服务名称,使用“firewall-cmd --add-service=”可以添加具体服务,用户可以根据自己的实际需求,从预定义服务名称中,选取合适的服务名进行添加,在完成之后,用户可以使用“firewall-cmd –runtime-to-permanent”命令,将runtime的修改保存为Permanent。用户可以通过命令“irewall-config tool, firewall-cmd, and firewall-offline-cmd”,或者通过直接将/usr/lib/firewalld/services目录

127责任编辑:赵志远 投稿信箱:netadmin@365master.com

www.365master.com 2020.02信息安全Security的默认模板XML文件复制到/etc/firewalld/services目录中进行编辑来创建添加一个自定义服务类型,具体过程如下:方法一 :执行“firewall-cmd –new-service= service-name”,系统将会直接在/etc/firewalld/services目录下创建一个以“.xml”结尾的同名文件,自定义服务类型即可添加完成。方法二:在相应目录,使用编辑软件直接编辑好XML文件,并执行“firewall-cmd --new-service-from-file=service-name.xml”,系统将自动完成同名自定服务类型的添加。系统守护进程通常侦听特定的服务端口,防火墙在默认的服务类型配置中已经定义了相应服务需要放行的对应的端口。当用户还需要在某个服务中放行特定的自定义端口或者端口段时,可以通过fiewall-cmd完成,如下格式如下:# firewall-cmd [--zone=zone_name] [--service=service_name] –add-port=port-number/port-type这里需要说明的是,“--zone”和“--service”为可选参数,如果用户不添加这两个参数执行命令时,相当于在默认区域中直接添加了端口,当只选取了“--zone”参数时,命令执行的结果是在指定区域直接添加端口,此时与服务状态无关。只有在使用“--service”参数时,才是在相应的服务中添加端口。当用户需要删除一个端口时,可以使用如下命令:# firewall-cmd [--zone=zone_name] [--service=service_name] remove-port=port-number/port-type当用户需要向不同区域添加服务时,用户可以通过如下步逐进行:# firewall-cmd --add-service=ssh –zone=drop该命令将向区域drop中添加SSH服务,其实质就是放行SSH服务定义中的默认22端口入方向流量及连接。在多网络接口主机中,可以使用如下方法将指定的网络接口添加到需要的区域中,从而实现每个接口的安全连接区域要求,实现真正的区域化网络安全管理。使用命令“firewall-cmd --get-active-zones”,查看当前激活的安全区域和相应的网络接口配置,使用命令“firewall-cmd --zone=work –change-interface=ens3p0”,则将网卡“ens3p0”加入到了“work”区域,之后所有通过该网卡的流量将受到区域安全规则的约束和限制,该配置是即时生效的,并且会自动保存为永久配置。用户需要将某个网卡加入到特定安全区域,时也可以直接使用“vi /etc/sysconfig/network-scripts/ifcfg-