防火墙对于控制进出 Linux 服务器的网络流量至关重要。它能够定义一组防火墙规则来控制主机上的传入流量。本文介绍如何添加、删除、启用和禁用防火墙规则和区域。 |
什么是FirewallD
“firewalld”是firewall daemon。它提供了一个动态管理的防火墙,带有一个非常强大的过滤系统,称为 Netfilter,由 Linux 内核提供。
FirewallD 使用zones和services的概念,而 iptables 使用chain和rules。与 iptables 相比,“FirewallD”提供了一种非常灵活的方式来处理防火墙管理。
每个zones都可以按照指定的标准进行配置,以根据你的要求接受或拒绝某些服务或端口,并且它可以与一个或多个网络接口相关联。默认区域为public区域。
[yijiFirewalld zones[/yiji]
以下命令列出 FirewallD 提供的zones。运行以下命令以列出zones:
[root@server1 ~]# firewall-cmd --get-zones block dmz drop external home internal public trusted work
- block: 对于 IPv4,任何传入连接都会被 icmp-host-prohibited 消息拒绝,对于 IPv6 则是 icmp6-adm-prohibited。
- dmz:应用于你的DMZ区域的计算机,这些计算机可公开访问,但对内部网络的访问受到限制。仅接受选定的传入连接。
- drop:任何传入连接都将在没有任何通知的情况下被丢弃。只允许传出连接。
- external:用于在系统中充当路由器时启用 NAT 伪装的外部网络。只允许选定的传入连接。
- home:用于家庭网络。仅接受选定的传入连接。
- internal:用于内部网络,网络上的其他系统通常是可信任的。仅接受选定的传入连接。
- public:用于公共区域,仅接受选定的传入连接。
- trusted:接受所有网络连接。
- work:用于工作区域,同一网络上的其他计算机大多受信任。仅接受选定的传入连接。
Firewalld services
Firewalld 的service配置是预定义的服务。要列出可用的服务模块,请运行以下命令:
[root@server1 ~]# firewall-cmd --get-services
Firewalld的临时设置和永久设置
Firewalld 使用两个独立的配置,即临时设置和永久设置:
- 临时设置: 临时设置不会在系统重启时保持不变。这意味着临时设置不会自动保存到永久设置中。
- 永久设置: 永久设置会存储在配置文件中,将在每次重新启动时加载并成为新的临时设置。
启用、禁用Firewalld
Firewalld默认安装在Centos7/8中,下面命令时如何启用或者停用firewalld:
# 启用Firewalld [root@server1 ~]# systemctl start firewalld # 禁用Firewalld [root@server1 ~]# systemctl stop firewalld # 开机启动 [root@server1 ~]# systemctl enable firewlald # 禁止开机启动 [root@server1 ~]# systemctl disable firewalld
查看firewlald的状态:
[root@server1 ~]# systemctl status firewalld 或者 [root@server1 ~]# firewall-cmd --state running