在使用轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量应用服务器等)时,配置安全组和防火墙规则是保障服务器安全的重要步骤。下面以腾讯云轻量应用服务器为例,介绍如何配置安全组和系统防火墙(如 firewalld 或 ufw),其他平台原理类似。
一、配置安全组(云端控制台)
安全组是云服务商提供的虚拟防火墙,用于控制进出服务器的网络流量。
步骤:
-
登录云控制台
- 登录腾讯云或阿里云控制台,进入「轻量应用服务器」管理页面。
-
找到目标实例
- 找到你要配置的轻量服务器实例,点击进入详情页。
-
进入安全组设置
- 在实例详情中,找到「安全组」或「防火墙」选项。
- 腾讯云轻量服务器默认使用“防火墙”代替传统安全组,但功能类似。
-
添加防火墙规则(入站规则)
常见端口配置示例:协议 端口范围 源IP 描述 TCP 22 0.0.0.0/0 或你的IP SSH远程登录(建议限制IP) TCP 80 0.0.0.0/0 HTTP服务 TCP 443 0.0.0.0/0 HTTPS服务 TCP 3306 你的办公IP MySQL数据库(不建议对公网开放) ICMP 全部 可选 允许ping测试 ✅ 安全建议:
- 不要随意开放
0.0.0.0/0到高危端口(如22、3306、redis等)。 - 尽量限制源IP为自己的公网IP。
- 关闭不必要的端口。
- 不要随意开放
-
保存规则
二、配置系统防火墙(服务器内部)
即使配置了云端安全组,仍建议在操作系统层面启用防火墙,形成双重保护。
方式1:CentOS/RHEL 使用 firewalld
# 查看状态
sudo firewall-cmd --state
# 启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 开放常用端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=22/tcp
# 如果只允许特定IP访问SSH
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的IP" port protocol="tcp" port="22" accept'
# 重新加载配置
sudo firewall-cmd --reload
# 查看已开放端口
sudo firewall-cmd --list-all
方式2:Ubuntu 使用 ufw(Uncomplicated Firewall)
# 安装 ufw(通常已预装)
sudo apt update && sudo apt install ufw
# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH、HTTP、HTTPS
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 更安全的方式:仅允许特定IP访问SSH
sudo ufw allow from 你的IP to any port 22 proto tcp
# 启用防火墙
sudo ufw enable
# 查看状态
sudo ufw status verbose
三、最佳实践建议
| 项目 | 推荐做法 |
|---|---|
| SSH端口 | 修改默认22端口,或使用密钥登录,禁用密码登录 |
| 数据库 | 不暴露在公网,使用内网连接或SSH隧道 |
| Web服务 | 仅开放80/443,配合Nginx/Apache做反向X_X |
| 定期检查 | 使用 netstat -tuln 或 ss -tuln 查看监听端口 |
| 更新系统 | 定期更新系统和软件包补丁 |
四、常见问题排查
-
无法访问网站?
- 检查安全组是否开放80/443。
- 检查Web服务是否运行(
systemctl status nginx)。 - 检查本地防火墙是否拦截。
-
SSH连接超时?
- 检查安全组是否允许22端口(或你修改后的端口)。
- 检查服务器是否运行SSH服务:
systemctl status sshd。 - 检查防火墙是否屏蔽了SSH。
总结
✅ 安全组(云平台) + 系统防火墙(OS层) = 双重防护
- 在云控制台配置最小必要的入站规则。
- 在服务器上启用
firewalld或ufw,限制违规访问。 - 遵循“最小权限原则”,只开放必需的服务端口。
如有具体场景(如部署WordPress、Node.js、MySQL等),可进一步细化规则配置。欢迎补充你的使用环境,我可以提供更具体的配置示例。
CLOUD云计算