CentOS虚拟机防火墙配置指南(以firewalld为核心)
firewalld是CentOS 7及以上版本的默认防火墙管理工具,支持动态规则调整、区域划分和服务管理,以下是详细配置步骤:
1. 安装与启动firewalld服务
若系统未预装firewalld,需先通过包管理器安装:
sudo yum install firewalld -y # CentOS 7/8使用yum;CentOS Stream 9+可使用dnf
安装完成后,启动firewalld服务并设置开机自启:
sudo systemctl start firewalld # 启动服务
sudo systemctl enable firewalld # 开机自动启动
2. 检查firewalld状态
确认服务是否运行正常:
sudo systemctl status firewalld # 查看服务状态(显示"active (running)"即为运行中)
firewall-cmd --state # 快速查看防火墙状态(running/ not running)
3. 配置防火墙区域(Zone)
firewalld通过**区域(Zone)**管理不同网络环境的规则,默认区域为public(适用于公共网络)。常见操作包括:
- 查看当前默认区域:
firewall-cmd --get-default-zone - 修改默认区域(如设为
home,适用于家庭网络):sudo firewall-cmd --set-default-zone=home - 查看所有可用区域:
firewall-cmd --get-zones
4. 开放端口(常用操作)
① 永久开放端口(需重载生效)
例如,开放TCP协议的80端口(HTTP)和443端口(HTTPS):
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=8080/tcp
③ 验证开放的端口:
sudo firewall-cmd --list-ports # 列出所有开放端口
sudo firewall-cmd --zone=public --list-all # 查看public区域的详细规则(含端口、服务)
5. 允许服务通过防火墙
firewalld内置了常见服务(如SSH、HTTP、HTTPS)的规则,可直接添加服务名称,比开放端口更便捷:
sudo firewall-cmd --zone=public --add-service=ssh --permanent # 允许SSH登录
sudo firewall-cmd --zone=public --add-service=http --permanent # 允许HTTP访问
sudo firewall-cmd --zone=public --add-service=https --permanent # 允许HTTPS访问
添加后需重载配置:
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
删除后同样需要重载配置:
sudo firewall-cmd --reload
7. 其他实用操作
- 查看所有可用服务(用于添加服务时参考):
firewall-cmd --get-services - 设置默认拒绝所有流量(增强安全性,需谨慎使用):
此时需手动开放必要的端口(如SSH的22端口),否则将无法远程连接。sudo firewall-cmd --set-default-zone=drop
注意事项
- 避免锁定自己:若通过SSH远程管理虚拟机,开放SSH端口(22/tcp)后再修改规则,防止被锁在外面。
- CentOS 8及以上版本:默认使用firewalld,若需使用iptables,需先禁用firewalld:
然后安装iptables-services:sudo systemctl stop firewalld sudo systemctl disable firewalldsudo yum install iptables-services -y sudo systemctl enable iptables sudo systemctl start iptables - 规则持久化:firewalld的
--permanent参数确保规则重启后仍有效,临时规则需省略该参数但会在重启后失效。
通过以上步骤,可完成CentOS虚拟机防火墙的基本配置,根据实际需求调整区域、端口和服务规则,保障系统安全。
以上就是关于“如何配置centos虚拟机防火墙”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm