运维

运维

Products

当前位置:首页 > 运维 >

如何设置CentOS虚拟机的防火墙规则?

96SEO 2025-09-20 13:36 0


1.

CentOS虚拟机是Linux系统开发者和爱好者常用的环境之一。为了确保虚拟机的平安,合理配置防火墙至关重要。本文将详细介绍如何在CentOS虚拟机中设置防火墙规则。

如何配置centos虚拟机防火墙

2. 检查firewalld状态

firewalld是CentOS 7及以上版本的默认防火墙管理工具。先说说我们需要确认firewalld服务是否运行正常。

sudo systemctl status firewalld
sudo firewall-cmd --state

如果firewalld服务未启动,可以使用以下命令启动它并设置开机自启:

sudo systemctl start firewalld
sudo systemctl enable firewalld

3. 配置防火墙区域

firewalld通过区域管理不同网络环境的规则。默认区域为public。

  • 查看默认区域
  • firewall-cmd --get-default-zone
  • 修改默认区域
  • sudo firewall-cmd --set-default-zone=home
  • 查看所有可用区域
  • firewall-cmd --get-zones

4. 开放端口

① 永久开放端口

比方说 开放TCP协议的80端口和443端口:

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

② 临时开放端口

若需临时测试,可省略--permanent参数:

sudo firewall-cmd --zone=public --add-port=80/tcp
sudo firewall-cmd --zone=public --add-port=443/tcp

③ 验证开放的端口

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

5. 允许服务通过防火墙

firewalld内置了常见服务的规则,可直接添加服务名称,比开放端口更便捷:

sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

添加后需重载配置:

sudo firewall-cmd --reload

6. 删除防火墙规则

① 删除开放的端口

比方说删除TCP 8080端口:

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

② 删除允许的服务

比方说删除SSH服务:

sudo firewall-cmd --zone=public --remove-service=ssh --permanent

7. 其他实用操作

  • 查看所有可用服务
  • firewall-cmd --get-services
  • 设置默认拒绝所有流量
  • sudo firewall-cmd --set-default-zone=drop

    此时需手动开放必要的端口,否则将无法远程连接。

8. 注意事项

  • 避免锁定自己若通过SSH远程管理虚拟机, 开放SSH端口后再修改规则,防止被锁在外面。
  • CentOS 8及以上版本默认使用firewalld, 若需使用iptables,需先禁用firewalld:
  • sudo systemctl stop firewalld
    sudo systemctl disable firewalld
  • 规则持久化firewalld的--permanent参数确保规则重启后仍有效,临时规则需省略该参数但会在重启后失效。

9.

通过以上步骤, 可完成CentOS虚拟机防火墙的基本配置,根据实际需求调整区域、端口和服务规则,保障系统平安。


标签: CentOS

提交需求或反馈

Demand feedback