firewalld 服务教程
1. 什么是 firewalld? 🤔
firewalld 是一款基于区域的动态防火墙管理工具,适用于 Linux 系统。它提供了比传统 iptables 更易用的界面,可以通过命令行或图形化工具配置。firewalld 默认基于 zones(区域)来管理网络流量,可以根据不同的信任级别和网络接口设置规则。🌐
特点 | 描述 |
---|---|
区域管理 | 使用区域(zones)来管理不同的网络接口。 |
动态管理 | 不需要重启服务即可应用配置,便于实时管理。 |
支持丰富的协议 | 支持 TCP、UDP、ICMP 等协议的配置。 |
2. 安装 firewalld 📥
2.1 安装 firewalld
在大多数 Linux 发行版中,firewalld 可能已经预装。如果没有,可以使用以下命令安装它:
在 Ubuntu 或 Debian 系统上:
sudo apt update
sudo apt install firewalld
在 CentOS 或 RHEL 系统上:
sudo yum install firewalld
2.2 启动 firewalld 服务
安装完成后,启动 firewalld 服务:
sudo systemctl start firewalld
2.3 设置 firewalld 开机自启
为了确保 firewalld 在系统启动时自动启用,使用以下命令:
sudo systemctl enable firewalld
2.4 检查 firewalld 服务状态
检查 firewalld 是否正在运行:
sudo systemctl status firewalld
3. 配置 firewalld 防火墙 ⚙️
3.1 firewalld 区域(Zones)
firewalld 使用“区域”来表示不同网络接口的信任级别。每个区域可以拥有不同的规则,允许或拒绝某些类型的网络流量。默认情况下,firewalld 提供了以下几种区域:
- public: 适用于不信任的网络,默认拒绝大多数连接。
- home: 适用于家庭网络,通常允许大多数流量。
- work: 适用于公司网络。
- trusted: 允许所有流量的区域。
你可以使用以下命令查看当前系统支持的区域:
sudo firewall-cmd --get-zones
3.2 设置活动区域
查看当前网络接口所在的区域:
sudo firewall-cmd --get-active-zones
如果你想更改某个接口的区域,可以使用:
sudo firewall-cmd --zone=public --change-interface=eth0
3.3 查看当前区域规则
你可以查看某个区域的规则, 例如查看 public
区域的规则:
sudo firewall-cmd --zone=public --list-all
3.4 配置防火墙规则
3.4.1 允许某个端口的访问
例如,要允许 SSH(端口 22)访问:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
3.4.2 允许服务(如 HTTP 和 HTTPS)
可以通过服务名称添加规则:
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent