跳转至

Rocky Linux 中防火墙管理

约 401 个字 96 行代码 预计阅读时间 3 分钟

一、防火墙服务的管理

在开机时启用防火墙服务:

systemctl enable firewalld
在开机时禁用防火墙服务:
systemctl disable firewalld
查看防火墙服务是否开机启动:
systemctl is-enabled firewalld
启动防火墙服务:
systemctl start firewalld
关闭防火墙服务:
systemctl stop firewalld
重启防火墙服务:
systemctl restart firewalld
显示防火墙服务的状态:
systemctl status firewalld
查看已启动的服务列表:
systemctl list-unit-files|grep enabled
查看启动失败的服务列表:
systemctl --failed

二、防火墙管理工具firewall-cmd的使用

查看版本:

firewall-cmd --version
查看帮助:
firewall-cmd --help
显示状态:
firewall-cmd --state
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
更新防火墙规则:
firewall-cmd --reload
查看区域信息:
firewall-cmd --get-active-zones
查看指定接口所属区域:
firewall-cmd --get-zone-of-interface=<网卡名>
拒绝所有包
firewall-cmd --panic-on
取消拒绝状态:
firewall-cmd --panic-off
查看是否拒绝:
firewall-cmd --query-panic

三、添加http服务到防火墙

查看防火墙允许列表:

sudo firewall-cmd --permanent --list-all
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
[sudo] fotianmoyin 的密码:
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
可以看到http服务不在允许访问列表,下面我们添加http到服务列表:
sudo firewall-cmd --permanent --add-service=http
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --add-service=http
success
再次查看防火墙允许列表,示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client http ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
http服务已经添加到了防火墙允许服务的列表。执行如下命令,重新加载防火墙配置:
sudo firewall-cmd --reload
执行示例:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --reload
success

四、添加8888端口到防火墙

查看防火墙允许列表:

sudo firewall-cmd --permanent --list-all
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
[sudo] fotianmoyin 的密码:
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client http ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
可以看到8888端口不在允许访问列表,下面我们添加8888端口到端口列表:
sudo firewall-cmd --permanent --zone=public --add-port=8888/tcp
执行示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --zone=public --add-port=8888/tcp
[sudo] fotianmoyin 的密码:
success
再次查看防火墙允许列表,示例如下:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client http ssh
  ports: 8888/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
8888端口已经添加到了防火墙允许服务的列表。执行如下命令,重新加载防火墙配置:
sudo firewall-cmd --reload
执行示例:
[fotianmoyin@fotianmoyin-rl ~]$ sudo firewall-cmd --reload
success