如何在 Linux 中配置 firewalld 规则

2021-09-01 17:55:09 浏览数 (1)

以下命令列出 FirewallD 提供的zones。运行以下命令以列出zones:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
  • Firewalld services

Firewalld 的service配置是预定义的服务。要列出可用的服务模块,请运行以下命令:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --get-services

Firewalld的临时设置和永久设置

Firewalld 使用两个独立的配置,即临时设置和永久设置:

  • 临时设置: 临时设置不会在系统重启时保持不变。这意味着临时设置不会自动保存到永久设置中。
  • 永久设置: 永久设置会存储在配置文件中,将在每次重新启动时加载并成为新的临时设置。

启用、禁用Firewalld

Firewalld默认安装在Centos7/8中,下面命令时如何启用或者停用firewalld:

代码语言:javascript复制
# 启用Firewalld
[root@server1 ~]# systemctl start firewalld
# 禁用Firewalld
[root@server1 ~]# systemctl stop firewalld
# 开机启动
[root@server1 ~]# systemctl enable firewlald
# 禁止开机启动
[root@server1 ~]# systemctl disable firewalld

查看firewlald的状态:

代码语言:javascript复制
[root@server1 ~]# systemctl status firewalld
或者
[root@server1 ~]# firewall-cmd --state
running

zone管理

Firewalld 为每个区域提供不同级别的安全性,公共区域设置为默认区域。下面命令查看默认区域:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --get-default-zone 
public

下面命令查看默认区域的配置:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client ntp ssh
  ports: 2222/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

通过使用选项"--zone”和“--change-interface”的组合,可以轻松更改zone中的接口。例如,要将“ens33”接口分配给“home”区域,请运行以下命令:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --zone=home --change-interface=ens33
success
[root@server1 ~]# firewall-cmd --zone=home --list-all
home (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

要查看所有活动的zone,请运行以下命令:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --get-active-zones 
home
  interfaces: ens33
public
  interfaces: ens160

要更改默认zone,请使用以下命令。例如,要将默认区域更改为 home,请运行以下命令:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --set-default-zone=home

要找出与 ens160 接口关联的区域,请运行以下命令:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --get-zone-of-interface=ens160
public

要创建新zone,请使用以下命令。例如,要创建一个名为“test”的新区域,并永久生效,请运行:

代码语言:javascript复制
[root@server1 ~]# firewall-cmd --permanent --new-zone=test
success
[root@server1 ~]# firewall-cmd --reload
success

0 人点赞