firewald 自身并不具备防火墙的功能,而是和 iptables 一样需要通过内核的 netfilter 米实现。也就是说 firewalld 和 iptables 一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的 netfilter,只不过 frewalld 和iptables 的结构以及使用方法不一样罢了。系统提供了图形化的配置工具 firewall-config、system-config-firewal,提供命令行客户端 firewall-cmd,用于配置 firewalld 永久性或非永久性运行时间的改变:它依次用 iptables工具与执行数据包筛选的内核中的 Netfilter 通信。firewalld 和 iptables 的逻辑关系如图 1.1所示。
》iptables service 在 /etc/sysconfig/iptables 中储存配置,而 firewalld 将配置储存在/usr/lib/firewalld/ 和 /etc/firewalld! 中的各种 XML 文件里。
》使用 iptables service 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables 里读取所有新的规则,然而使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同之处。因此,firewalld 可以在运行时间内,改变设置而不丢失现行连接。
在 CentOS7 系统中,可以使用三种方式配置 firewalld 防火墙:
》firewall-config 图形工具。
》firewall-cmd 命令行工具。
》/etc/firewalld/中的配置文件。
通常情况下,不建议直接编辑配置文件。所以本章我们只介绍 firewall-config 图形工具与 frewall-cmd 命令行工具的配置方法。
firewall-config 图形化配置工具支持防火墙所有的特性,系统管理员可以通过它来改变系统或用户策略。通过 firewall-confg 图形化配置工具,可以实现配置防火墙允许通过的服务、端口、伪装、端口转发、ICMP 过滤器等功能。在 CentOS7 系统中单击“应用程序”中的“杂项”,选择"防火墙"即可打开如图 1.2 所示的 firewall-config 工作界面,或者直接在终端中输入 firewall-config 命令也可以打开此界面。
要立刻改变现在的防火墙设置,须确定当前视图设定在运行时。或者,从下拉菜单中选择永久(Permanent)如见图 1.12所示,编辑下次启动系统或者防火墙重新加载时执行的设定。
在运行时(Runtime)模式下更改防火墙的设定时,一旦您启动或者清除连接服务器的复选框,选择立即生效。在 Permanent模式下更改防火墙的设定,仅仅在重新加载防火墙或者系统重启之后生效。可以使用文件菜单下的重新加载图标,或者点击 选项菜单,选择 重新加载防火墙。
要设定一个将要被分配新接口的分区作为默认值,则启动firewall-config,从菜单栏选择选项卡,由下拉菜单中选择修改默认区域,出现默认区域窗口如图1.13所示。从给出的列表中选择您需要用的分区作为默认分区,点击确定按钮即可。
在安装 CentOS7 系统时,会自动安装 firewalld 和图形化工具firewall-config。执行以下命令可以启动 frewalld 并设置为开机自启动状态。
如果 firewalld 正在运行,通过 systemctl status firewalld 或 frewall-cmd 命令可以查看其运行状态。
或
如果想要禁用 frewalld,执行以下命令即可实现。
使用 firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能。表1-2 中列出了 firewall-cmd 命令的区域管理选项说明。
具体操作如下所示。
(1)显示当前系统中的默认区域。
(2)显示默认区域的所有规则。
(3)显示网络接口 ens33 对应区域。
(4)将网络接口 ens33 对应区域更改为 internal 区域.
(5)显示所有激活区域。
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口。例如,执行以下操作即可实现在 internal 区域打开 443/TCP 端口。
若想实现在 internal 区域禁止 443/TCP 端口访问,可执行以下命令。
前面提到 firewall-cmd 命令工具有两种配置模式:运行时模式(Runtime mode)表示当前内存中运行的防火墙配置,在系统或firewalld 服务重启、停止时配置将失效;永久模式(Permanent mode)表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置文件中的。
firewall-cmd 命令工具与配置模式相关的选项有三个。
》–reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
》–permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动firewalld 或重新加载防火墙规则时才会生效:若不带有此选项,表示用于设置运行时规则。
》–runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性配置。