firewalld

时间:2019-04-29 03:17:38  来源:igfitidea点击:

什么是Firewalld?

Firewalld (Dynamic Firewall Manager)提供了动态管理的防火墙,并支持网络/防火墙区域,以定义网络连接或接口的信任级别。它支持IPv4,IPv6防火墙设置和以太网桥,并具有运行时和永久配置选项的分离。它还支持服务或应用程序接口,以直接添加防火墙规则。

firewall-config-用于firewalld的图形管理工具

提供了用于配置firewalld的 图形工具firewall-config。要访问此图形工具,您必须在图形模式下运行(x窗口)。运行防火墙配置工具时,将立即提示您输入root密码。

firewalld

防火墙配置管理工具具有一个名为配置的下拉菜单。这使您可以在运行系统永久模式之间进行选择。如果选择了永久模式,则会在左上角显示另外一行图标。这些图标仅在永久配置模式下显示。

firewalld提供的防火墙服务是动态的,而不是静态的。这意味着可以随时进行更改并立即实施。这允许在不中断现有网络连接的情况下应用更改。

firewall-cmd-用于firewalld的命令行界面

firewall-cmd是用于管理firewalld的命令行界面。它可用于进行永久和非永久的运行时更改。Firewalld中的运行时配置与永久配置是分开的。这意味着可以在运行时配置或永久配置中进行更改。

firewall-cmd命令可以由root用户或具有相关管理权限的其他用户运行。

配置文件:/usr/lib/firewalld /和/etc/firewalld/

Firewalld和iptables之间的区别

Firewalld和iptables服务之间的主要区别是:

iptables服务将其配置文件存储在/etc/sysconfig/iptables中,而Firewalld将其配置存储在各种XML文件中。

由于默认情况下已安装firewalld,因此在使用RHEL 7的新安装中,路径/etc/sysconfig/iptables不再存在。从版本6.x升级的系统仍将具有此路径。如前所述,firewalld可以进行动态更改而不会中断,但是,使用iptables时,每次更改规则都需要先清除旧规则,然后再从文件/etc/sysconfig/iptables中读取新规则,

以上两项仍然使用iptables工具`与内核数据包过滤器进行对话。

下面描述了如何在不同模型之间进行更改:

system-config-firewall >> iptables service >> iptables command >> kernel netfilter

firewall-config >> firewalld >> iptables command >> kernel netfilter

firewall-cmd >>  iptables (command) >> kernel netfilter

网络区域和防火墙

防火墙下的区域用于根据信任级别将网络分为不同的区域。NetworkManager通知Firewalld接口属于哪个区域。

/etc/firewalld /中的区域设置是一系列预设设置,可以快速应用于网络接口。

firewalld

使用命令行列出预定义的服务

[root@rhel07a /]# ls /usr/lib/firewalld/services/
amanda-client.xml      ipp-client.xml   mysql.xml       rpc-bind.xml
bacula-client.xml      ipp.xml          nfs.xml         samba-client.xml
bacula.xml             ipsec.xml        ntp.xml         samba.xml
dhcpv6-client.xml      kerberos.xml     openvpn.xml     smtp.xml
dhcpv6.xml             kpasswd.xml      pmcd.xml        ssh.xml
dhcp.xml               ldaps.xml        pmproxy.xml     telnet.xml
dns.xml                ldap.xml         pmwebapis.xml   tftp-client.xml
ftp.xml                libvirt-tls.xml  pmwebapi.xml    tftp.xml
high-availability.xml  libvirt.xml      pop3s.xml       transmission-client.xml
https.xml              mdns.xml         postgresql.xml  vnc-server.xml
http.xml               mountd.xml       proxy-dhcp.xml  wbem-https.xml
imaps.xml              ms-wbt.xml       radius.xml

您永远不要尝试手动编辑以上文件。

要列出系统或用户创建的服务,请以root用户身份执行以下命令:

ls /etc/firewalld/services /

可以使用图形firewall-config工具或通过手动编辑/ etc中的XML文件来添加和删除服务。/ firewalld/services /。

如果管理员尚未添加或修改服务,则将在路径/etc/firewalld/services/中找到相应的XML文件。

是否已安装firewalld?

检查系统上是否已经安装了firewalld(基于RHEL的发行版)

[root@centos07b ~]# yum install firewalld firewall-config
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.serverspace.co.uk
 * epel: mirror.i3d.net
 * extras: centos.serverspace.co.uk
 * updates: centos.serverspace.co.uk
Package firewalld-0.3.9-7.el7.noarch already installed and latest version
Package firewall-config-0.3.9-7.el7.noarch already installed and latest version
Nothing to do

如果已经安装了防火墙,您将看到类似于上面的输出。(存储库将根据所使用的操作系统而有所不同)。注意,我们还向命令添加了firewall-config。这使我们还可以检查是否已安装此配置工具。

如果未安装上述程序,则将提示您安装相关的软件包和所有依赖项。

检查防火墙的状态

您可以使用以下命令来检查firewalld的状态:

[root@centos07b ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Fri 2014-10-10 14:15:44 BST; 8min ago
 Main PID: 618 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─618 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Oct 10 14:15:44 centos07b systemd[1]: Started firewalld - dynamic firewall ...n.
Hint: Some lines were ellipsized, use -l to show in full.

您还可以通过执行firewall-cmd命令,检查firewalld是否在运行,如下所示:

[root@centos07b ~]# firewall-cmd --state
running

使firewalld在重新启动时自动启动

如果使用上述yum命令手动安装了firewalld,则可能需要将firewalld配置为在系统启动时自动启动。

[root@centos07b ~]# systemctl enable firewalld.service
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'

确认该服务已启用

[root@centos07b ~]# systemctl list-unit-files | grep firewalld
firewalld.service                           enabled 

禁用和停止防火墙

如果需要禁用/停止firewalld,可以通过以root用户身份执行以下命令来实现:

[root@centos07b ~]# systemctl stop firewalld.service

[root@centos07b ~]# systemctl disable firewalld.service
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

手动启动防火墙

要手动启动firewalld,请以路由用户身份执行以下命令:

[root@centos07b ~]# systemctl start firewalld.service

切记要启用该服务以便在系统重新引导时自动启动:systemctl enable firewalld.service