KOPS - firewalld
type: channel
link: https://www.kops.cc/tag/firewalld/
items: Linux 新一代防火墙配置程序 firewalld

Linux 新一代防火墙配置程序 firewalld
type: item
date: 2018-12-27T02:02:00+00:00
description: firewalld 与 iptables 介绍firewalld 和 iptables 都是 Linux 防火墙 (netfilter) 的配置程序，netfilter 有众多的配置程序，它们仅仅是其中应用较为广泛之二。firewalld 最早是在 Fedora 20 中取代 iptables 成为系统默认防火墙配置程序。在 CentOS 7 / RHEL 7 中，firewalld 取代了 iptables 成为 系统内置防火墙配置程序，它使得配置防火墙更加的容易。越来越多的 Linux 发行版也即将或已经采用 firewalld 作为其系统默认防火墙配置程序，如知名发行版 Debian 已经使用 firewalld。firewalld 区域firewalld 的区域 (zone)firewalld 使用服务 (service) 和区域 (zone) 来代替 iptabls 的规则 (rule) 和链 (chain)。默认情况下，firewalld 有以下几个区域：区域说明drop任何接收的网络数据包都被丢弃，没有任何回复。仅能有发送出去的网络连接。block任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。public在公共区域内使用，不能相信网络内的其他计算机不会对您的计算机造成危害，只能接收经过选取的连接。external特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算，不能相信它们不会对您的计算机造成危害，只能接收经过选择的连接。dmz用于您的非军事区内的电脑，此区域内可公开访问，可以有限地进入您的内部网络，仅仅接收经过选择的连接。work用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。home用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。internal用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。trusted可接受所有的网络连接。区域只是一个逻辑概念，类似于 windows 防火墙中的家庭或工作(专用)网络、公用网络，是 firewalld 内置的一些默认规则罢了。firewall 服务管理启动服务，设置开机服务自启systemctl start firewalld systemctl enable firewalld停止服务，关闭开机服务自启systemctl stop firewalld systemctl disable firewalld查看服务状态firewall-cmd --state输出结果是 running 或 not running查看守护进程状态systemctl status firewalld示例输出● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-03-29 04:35:45 EDT; 4 days ago​ Docs: man:firewalld(1)Main PID: 691 (firewalld) CGroup: /system.slice/firewalld.service​ └─691 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid重新加载配置firewall-cmd --reload​配置 firewalldfirewalld 使用 XML 文件来记录配置信息。除非是非常特殊的配置，否则你不必直接去修改 XML 文件，应该使用 firewall-cmd 命令去配置。firewalld 配置文件主要位于两个目录中：/usr/lib/firewalld 下保存默认配置，如默认区域和公用服务。因此我们避免去修改它们，因为软件更新会覆盖这些文件。/etc/firewalld 下保存系统配置文件，这些文件优先级更高，将覆盖默认配置。配置集firewalld 有两个配置集："运行时" 和 "持久"。在系统重启或重新启动 firewalld 服务，"运行时"配置将会丢失。而"持久"配置是在下次重启才会生效。一般而言，我们会同时修改"运行时"和"持久"配置。或者修改"持久"配置，再重载配置。同时修改"运行时"和"持久"配置firewall-cmd --zo…