1.1 建议:优先选择延迟低、带宽稳定的香港节点VPS(如Vultr香港、Tencent Cloud 香港、AWS 香港),购买时留意防火墙与快照功能。
1.2 准备:一台Ubuntu 20.04/22.04或Debian 11 VPS、域名已解析到该VPS公网IP、SSH密钥对、sudo权限账号。执行:sudo apt update && sudo apt upgrade -y。
2.1 建立密钥登录:本地运行 ssh-keygen,复制公钥到服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub user@your.ip.addr。
2.2 编辑 /etc/ssh/sshd_config(务必保留一条已连上的会话以防锁定):修改 Port(如改为2222)、PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes。保存后 sudo systemctl reload sshd。
2.3 可选:安装 fail2ban 以防暴力破解:sudo apt install fail2ban -y,启用默认配置并根据需要在 /etc/fail2ban/jail.local 添加 sshd 配置。
3.1 使用 ufw(推荐新手):sudo apt install ufw -y;允许SSH(按你修改的端口)如 sudo ufw allow 2222/tcp;允许HTTP与HTTPS:sudo ufw allow 80/tcp && sudo ufw allow 443/tcp;启用 sudo ufw enable。
3.2 高级:若使用 iptables,自定义规则并保存(例如使用 iptables-persistent)。确保规则先保存再启用以避免锁定。
4.1 安装 Nginx 与 Certbot:sudo apt install nginx certbot python3-certbot-nginx -y。
4.2 配置网站 server block(/etc/nginx/sites-available/example):确保 server_name 已设置为你的域名并能响应80端口。测试 nginx -t 并 sudo systemctl reload nginx。
4.3 获取证书:sudo certbot --nginx -d example.com -d www.example.com 按提示选择重定向HTTP到HTTPS(推荐)。成功后证书文件路径会显示在 /etc/letsencrypt/live/。
4.4 自动续期检测:certbot 自带 systemd timer,可用 sudo systemctl status certbot.timer 或手动测试 sudo certbot renew --dry-run。
5.1 推荐配置片段(放入 server 或 http 段):使用现代配置(支持 TLS1.2/1.3、启用 HSTS、OCSP Stapling):
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:...'; ssl_prefer_server_ciphers off; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; ssl_stapling on; ssl_stapling_verify on;5.2 生成强DH参数(可选,首次耗时):sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048,并在 nginx 配置引用。
6.1 若需通配符或更长保期,可购买商业证书(DigiCert、Sectigo等)或通过ACME DNS验证获取Let’s Encrypt通配符证书(需要DNS API或手动TXT记录)。
6.2 导入证书到 Nginx:将证书与私钥放到 /etc/ssl/yourcert/ ,在 server 中设置 ssl_certificate 与 ssl_certificate_key 指向相应文件,测试 nginx -t 并 reload。
7.1 Fail2ban:在 /etc/fail2ban/jail.local 添加 nginx-http-auth 或 nginx-botsearch 等规则,对可疑IP实施封禁(bantime、findtime、maxretry 调整)。重启 sudo systemctl restart fail2ban。
7.2 WAF:部署 ModSecurity + OWASP CRS(Nginx 可用 ModSecurity-nginx 或使用反向代理如 Cloudflare)。安装示例:sudo apt install libapache2-mod-security2(Apache)或参考 nginx 模块安装步骤。
8.1 安装 logwatch、fail2ban 邮件通知,或使用外部监控(Prometheus + Grafana)。定期检查 /var/log/nginx/access.log 与 error.log。
8.2 可选安装 AIDE 或 rkhunter 做文件完整性与 rootkit 检测:sudo apt install aide rkhunter,初始化并定期运行检查。
问:在香港节点使用免费的Let’s Encrypt证书是否可靠,是否有地域限制或频率限制问题?
答:答:Let’s Encrypt 对地域没有限制,但有每周签发限额(每个注册主体的域名限额)。在香港VPS使用完全正常。若需要通配符证书要用 DNS 验证,注意不要频繁请求避免触发速率限制。
问:如何避免证书续期失败导致网站出现证书过期?
答:答:确保 certbot 的 systemd timer 或 cron 存在并可运行,测试 sudo certbot renew --dry-run;同时确保 80/443 端口可达(某些DNS/防火墙会阻断验证),并监控续期结果(邮件或监控告警)。
问:在香港VPS上做安全时有哪些容易忽视的点?
答:答:常见误区包括:只看证书而忽略TLS配置(弱密码/旧协议仍会被中间人攻击)、开放不必要端口、未禁用root远程登录、没有备份与快照、未配置监控。按本指南逐项落实并定期复查即可大幅提升安全性。