在 CentOS 7 中,使用 firewalld 管理防火墙配置。以下是如何在 firewalld 中配置白名单 IP 地址并允许特定端口的步骤:
1. 确保 firewalld 正在运行
首先,确保 firewalld 服务正在运行:
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
2. 添加白名单 IP 地址
假设你要允许 IP 地址 192.168.1.100 访问特定的服务。
使用 firewalld 直接添加规则:
sudo firewall-cmd --permanent --zone=public --add-source=192.168.1.100
这条命令将 192.168.1.100 添加到 public 区域的源地址白名单中。
3. 开放特定端口
假设你要开放端口 8080 供白名单中的 IP 使用。
添加端口规则:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
这条命令将在 public 区域开放 8080 端口的 TCP 协议。
4. 重新加载 firewalld 配置
为了使配置生效,需要重新加载 firewalld:
sudo firewall-cmd --reload
5. 验证配置
你可以使用以下命令来验证你的配置是否正确:
sudo firewall-cmd --list-all
6. 配置服务白名单
如果你需要更细粒度的控制,可以创建自定义区域并将特定的服务仅对白名单 IP 开放:
创建自定义区域
sudo firewall-cmd --permanent --new-zone=myzone
在自定义区域中添加白名单 IP 和开放端口
sudo firewall-cmd --permanent --zone=myzone --add-source=192.168.1.100
sudo firewall-cmd --permanent --zone=myzone --add-port=8080/tcp
重新加载 firewalld 配置
sudo firewall-cmd --reload
将默认区域设置为自定义区域(可选)
如果你希望 myzone 成为默认区域,可以设置默认区域:
sudo firewall-cmd --set-default-zone=myzone
7. 额外配置
启用 HTTP 和 HTTPS 服务
如果你需要开放 HTTP 和 HTTPS 服务,可以使用以下命令:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
然后重新加载 firewalld:
sudo firewall-cmd --reload
通过上述步骤,你可以在 CentOS 7 上使用 firewalld 配置白名单 IP 地址和开放特定端口。这些步骤可以帮助你细化防火墙规则,确保服务器的安全性和灵活性。