在rhel8 中如何设置firewalld防火墙

时间:2019-04-29 03:18:25  来源:igfitidea点击:

Linux防火墙用于保护服务器免受不必要的流量攻击。我们可以设置规则来阻止流量或者允许流量通过。
RHEL 8提供了一个动态的、可定制的基于主机的防火墙,带有D-Bus接口。您可以添加、删除或更新防火墙规则,而无需重新启动防火墙守护进程或服务。firewall-cmd是nftables的前端。在RHEL 8中,nftables代替iptables作为默认的Linux网络包过滤框架。

这里我们将使用firewall-cmd设置防火墙并进行管理。

zone

防火墙中zone是预定义的规则集。

查看防火墙所有的zone:

ls -l /usr/lib/firewalld/zones/
cat /usr/lib/firewalld/zones/drop.xml
firewall-cmd --get-zones

zone的区域分类

  1. public – 这个是常见的。不相信网络上的任何其他计算机和服务器。您只允许所需的端口和服务。对于公网服务器,应始终使用public zone。
  2. block - 拒绝所有网络连接进入。只允许从系统内部发起的网络连接。
  3. drop - 删除所有输入的网络连接,只允许输出的网络连接。
  4. external - 路由器类型的连接。使NAT能正常工作。
  5. internal - 在内部网络上,当信任局域网上的其他服务器或计算机时使用。
  6. trusted - 接受所有网络连接。不建议将此区域用于连接到WAN的服务器。
  7. home - 对于局域网的家庭电脑有用,这时是相信其他电脑的。只允许选择的TCP/IP端口。
  8. work - 在你的工作场所使用,只信任你的同事和其他服务器。

如何查看默认的zone区域

firewall-cmd --get-default-zone

查看激活的zone

ip link show
nmcli device status
firewall-cmd --get-active-zones

如何查看public zone中的防火墙规则和服务

sudo firewall-cmd --list-all
sudo firewall-cmd --list-all --zone=public

如何查看当前区域(zone)中允许哪些服务

sudo firewall-cmd --list-services
## 查看某个zone的服务
sudo firewall-cmd --list-services --zone=home

如何在RHEL 8上启动、停止和重启firewalld服务

启动firewalld服务并设置开机启动

 sudo systemctl start firewalld
 sudo systemctl enable firewalld

停止firewalld服务并禁止开机启动

sudo systemctl stop firewalld
sudo systemctl disable firewalld

检查防火墙状态

sudo firewall-cmd --state

在更改规则时,需要重新加载firewalld配置

sudo firewall-cmd --reload

获取firewalld服务的状态

 sudo systemctl status firewalld

在rhel8中,如何给防火墙永久添加服务规则

Linux中如何查看防火墙支持哪些服务

sudo firewall-cmd --get-services
sudo firewall-cmd --get-services | grep mysql
ls -l /usr/lib/firewalld/services/

如何在防火墙中开放https

 sudo firewall-cmd --zone=public --add-service=https --permanent
 sudo firewall-cmd --reload

linux中如何查看防火墙开放的服务

sudo firewall-cmd --list-services

如何在防火墙中删除服务

sudo firewall-cmd --zone=public --remove-service=vnc-server --permanent

如何在防火墙中打开端口

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

如何在linux防火墙中查看开放了哪些端口

sudo firewall-cmd --zone=internal --list-ports

linux防火墙如何禁止某个端口

禁止tcp 23端口:

sudo firewall-cmd --zone=public --remove-port=23/tcp --permanent