firewalld
什么是Firewalld?
Firewalld (Dynamic Firewall Manager)提供了动态管理的防火墙,并支持网络/防火墙区域,以定义网络连接或接口的信任级别。它支持IPv4,IPv6防火墙设置和以太网桥,并具有运行时和永久配置选项的分离。它还支持服务或应用程序接口,以直接添加防火墙规则。
firewall-config-用于firewalld的图形管理工具
提供了用于配置firewalld的 图形工具firewall-config。要访问此图形工具,您必须在图形模式下运行(x窗口)。运行防火墙配置工具时,将立即提示您输入root密码。
防火墙配置
管理工具具有一个名为配置
的下拉菜单。这使您可以在运行系统
和永久
模式之间进行选择。如果选择了永久模式,则会在左上角显示另外一行图标。这些图标仅在永久配置模式下显示。
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 /中的区域设置是一系列预设设置,可以快速应用于网络接口。
使用命令行列出预定义的服务
[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