VestaCP是一款由俄罗斯开发者打造的开源主机管理面板,广泛支持RHEL、CentOS、Debian以及Ubuntu等多种Linux发行版。它能够在服务器资源充足的情况下,仅需几分钟便可自动部署基于Linux+Apache+Nginx+MySQL+PHP的完整生产环境。VestaCP自带丰富功能,包括每日自动备份、DNS管理、FTP服务、SSL证书与SNI支持、命令行和API接口、多域名系统监控、安全平台配置,以及邮件服务器、防垃圾邮件/杀毒工具(AntiSpam/Antivirus)、DKIM签名等。此外,它还可以集成WHMCS账单系统,并且内置多达13种语言界面,其中包括简体中文。
以下是关于如何提升VestaCP安全性和使用体验的一些实用技巧:
1. 修改默认端口8083
VestaCP 默认通过 8083 端口(HTTPS)访问,为了防止暴力破解账号密码,建议将其更改为其他不常见端口。只需编辑 /usr/local/vesta/nginx/conf/nginx.conf
文件,将其中出现的 8083 替换为你想要的新端口号。同时,记得调整服务器防火墙规则,允许新端口通过,否则可能无法正常访问面板。
2. 替换 SSL 证书
为了提高安全性,可以替换 VestaCP 面板所用的 SSL 证书,只需要将你的新证书文件覆盖如下路径下的原有文件即可:
/usr/local/vesta/ssl/certificate.crt
/usr/local/vesta/ssl/certificate.key
完成后重启相关服务使变更生效。
3. 禁用 SSL 强制访问
如果希望直接通过 HTTP 而非 HTTPS 来访问 VestaCP,可在 nginx.conf
文件中找到第65至69行,将涉及 ssl 的相关代码注释掉。例如:
# ssl on;
# ssl_certificate /usr/local/vesta/ssl/certificate.crt;
# ssl_certificate_key /usr/local/vesta/ssl/certificate.key;
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
这样就能通过 http://IP:PORT 的方式无加密地进入控制面板,但请注意,这样做会降低传输过程中的数据安全性。
4. 面板绑定专属域名
为了进一步加强管理入口安全,可以让 VestaCP 管理后台仅绑定到特定域名上。在 nginx.conf
文件第80和81行进行如下设置:
listen 8088;
server_name cp.example.com;
此时只有通过 https://cp.example.com:8088 或 http://cp.example.com:8088 (取决于是否关闭了SSL)才能登录控制台,其它IP或未授权域名都无法进入,有效减少被扫描攻击风险。
5. 查看及修改 MySQL root 密码
若需查看当前 MySQL root 用户密码,可执行命令读取配置文件内容:
cat /usr/local/vesta/conf/mysql.conf
返回结果中 PAVPSWORD 字段即为 root 密码。如需修改,请同步更新该配置文件及数据库实际密码保持一致。
6. 加强 PhpMyAdmin 路径保护
出于安全考虑,不建议使用默认路径公开 PhpMyAdmin。可以编辑 /etc/httpd/conf.d/phpMyAdmin.conf
文件,将 alias 设置为自定义地址,例如:
Alias /mysql /usr/share/phpMyAdmin
Alias /MySQL /usr/share/phpMyAdmin
这样只有知道这个特殊路径的人才能访问,大大降低被恶意扫描利用的概率。
参考资料:
- Vesta Control Panel 官方文档
- 各大 Linux 社区经验分享