1. 环境与前提准备
说明:建议以 Ubuntu/Debian 服务器为例;准备一个域名并将 A 记录指向台湾节点公网 IP。
步骤:登录服务器(临时允许 SSH),运行更新:
sudo apt update && sudo apt upgrade -y。备份现有配置目录:
sudo tar czf /root/etc-backup-$(date +%F).tgz /etc。
2. 创建非 root 用户与 SSH 密钥认证
创建用户:
sudo adduser deploy,将用户加入 sudo:
sudo usermod -aG sudo deploy。
生成密钥(本地):
ssh-keygen -t ed25519 -C "deploy@yourdomain",然后把公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@your-ip。
3. 加固 SSH 配置
编辑
/etc/ssh/sshd_config,关键项修改:
- 更改端口:Port 2202(或其他随机端口);
- 禁止 root 登录:PermitRootLogin no;
- 禁用密码认证:PasswordAuthentication no;
保存后重启 SSH:
sudo systemctl restart sshd。远程前先用新端口与密钥验证成功再断开旧会话。
4. 防火墙规则(UFW/iptables)
使用 UFW(示例):
sudo apt install ufw -y
允许必要端口:
sudo ufw allow 2202/tcp(SSH 自定义端口)、
sudo ufw allow 443/tcp(TLS)、其他代理端口按需放行;启用并设置速率限制:
sudo ufw limit 2202/tcp;最后
sudo ufw enable。
5. 安装并配置 Fail2Ban
安装:
sudo apt install fail2ban -y。创建本地配置
/etc/fail2ban/jail.local,示例内容:
[sshd]
enabled = true
port = 2202
maxretry = 5
bantime = 3600
重启服务:
sudo systemctl restart fail2ban,用
sudo fail2ban-client status sshd 检查。
6. TLS 与 Nginx 反向代理(伪装网站 + WebSocket)
安装 Nginx 与 Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y。为域名创建 server block 并 proxy_pass 到本地代理服务(例如 127.0.0.1:10000),并为 WebSocket 添加头:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
使用 Certbot 自动签发:
sudo certbot --nginx -d yourdomain.com,确保证书续期:
sudo systemctl enable certbot.timer。
7. 代理服务(V2Ray/SS/Trojan)部署与硬化要点
建议使用 V2Ray/vmess + ws + tls 或 Trojan + tls。要点:
- 使用随机路径(path)和伪装域名;
- 服务绑定到本地回环(127.0.0.1)并通过 Nginx 转发;
- 最小化服务日志或定期清理,配置访问控制;
安装示例(V2Ray):参考官方脚本或手动放置
/etc/v2ray/config.json,确保 inbound 的 listen 为 127.0.0.1。
8. 系统级监控、自动更新与入侵检测
自动更新:
sudo apt install unattended-upgrades -y 并编辑
/etc/apt/apt.conf.d/50unattended-upgrades;
入侵检测:安装 rkhunter/chkrootkit:
sudo apt install rkhunter chkrootkit -y,并设置定时任务。日志监控:部署 fail2ban 邮件报警或使用 Prometheus + Grafana 监控指标。
9. 最佳实践与运维细节
- 定期更换证书与密钥并收集最小必要日志;
- 使用强口令、密钥和 2FA(管理面板);
- 关闭不必要服务(如 ftp、telnet);
- 定期备份配置(/etc、v2ray 配置、nginx 配置)并验证恢复流程。
10. 常见问题 Q1
Q:为什么要把代理服务绑定到 127.0.0.1 并用 Nginx 反向代理?
A:绑定到本地回环减少服务直接暴露风险,Nginx 可做 TLS 终端、伪装(伪装为正常网站)、统一日志与速率控制,增强隐蔽性与安全边界。
11. 常见问题 Q2
Q:如何应对暴力破解或端口扫描?
A:使用非标准端口、Fail2Ban 限制登录失败、UFW/iptables 速率限制、并通过 Cloudflare 等 CDN 做前端过滤(如果域名可用),同时保持 SSH 密钥登录并禁用密码。
12. 常见问题 Q3
Q:小火箭客户端如何配置才能与上述安全策略兼容?
A:在小火箭中填写伪装域名、对应的端口(通常 443)、选择 TLS 并填写 WebSocket 路径;如果使用 V2Ray/Vmess,确保 UUID、alterId(或对应 field)与服务器 config.json 保持一致,启用 TLS 并验证域名。
来源:面向开发者的小火箭台湾服务器节点安全加固指南