1. 概述:为什么要基于香港使用国外VPS做安全配置
- 说明:国外VPS提供灵活性,但延迟、合规与地理访问可能影响香港用户体验。
- 目标:保证对香港访问的低延迟同时最大限度降低被攻陷与滥用风险。
- 要点:选择节点、启用防火墙、SSH 加固、DDoS 缓解、日志与备份。
2. 选择VPS与网络位置的实际建议
- 步骤1:选择提供香港、东亚或近邻节点(东京、新加坡、香港云服务商)以降低延迟。
- 步骤2:优先支持 DDoS 防护或有可选 CDN 的供货商(例如:Cloudflare + 后端 VPS)。
- 步骤3:确认控制面板可配置防火墙(security groups)和私有网络,便于分层防护。
3. 初始系统设置(以Ubuntu/Debian为例)
- 命令1:更新系统:apt update && apt upgrade -y。
- 命令2:创建非root管理员:adduser adminuser; usermod -aG sudo adminuser。
- 命令3:设置时区与时间同步:timedatectl set-timezone Asia/Hong_Kong; apt install -y chrony; systemctl enable --now chronyd。
4. SSH 强化(关键操作)
- 步骤1:生成密钥(本地):ssh-keygen -t ed25519 -C "hk-admin"。
- 步骤2:在VPS上创建.ssh并加入公钥:mkdir -p /home/adminuser/.ssh; echo "你的公钥" > /home/adminuser/.ssh/authorized_keys; chown -R adminuser:adminuser /home/adminuser/.ssh; chmod 700 /home/adminuser/.ssh; chmod 600 /home/adminuser/.ssh/authorized_keys。
- 步骤3:编辑 /etc/ssh/sshd_config,关键项:PermitRootLogin no, PasswordAuthentication no, ChallengeResponseAuthentication no, UseDNS no, AllowUsers adminuser。保存后重启 ssh:systemctl restart sshd。
5. 使用Fail2Ban和限制暴力破解
- 安装:apt install -y fail2ban 或 yum install -y fail2ban。
- 配置最小示例 /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 5
bantime = 3600
- 启动并使其随开机自启:systemctl enable --now fail2ban。
6. 防火墙策略概念:默认拒绝,最低权限开放
- 原则:只开放必要端口(SSH、HTTP/HTTPS、应用端口),对香港源可做白名单。
- 例外:管理访问建议限制到固定IP或通过VPN访问管理端口。
- 备份策略:在修改前保存现有规则,例如 iptables-save > /root/iptables.bak。
7. 使用UFW(Ubuntu友好)的实际配置示例
- 安装并启用:apt install -y ufw; ufw default deny incoming; ufw default allow outgoing。
- 允许关键端口(示例仅允许香港IP 1.2.3.4 管理):ufw allow from 1.2.3.4 to any port 22 proto tcp; ufw allow 80/tcp; ufw allow 443/tcp。
- 启动生效:ufw enable; ufw status numbered。
8. 使用iptables的实操配置(适用于Debian/CentOS)
- 最小规则集(示例):
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 1.2.3.4 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j DROP
- 持久化:apt-get install -y iptables-persistent 或使用 iptables-save >/etc/iptables/rules.v4。
9. nftables(现代替代)的配置示例
- 安装并创建文件 /etc/nftables.conf 示例:
table inet filter {
chain input { type filter hook input priority 0; policy drop; ct state established,related accept; iif "lo" accept; tcp dport {22,80,443} accept; } }
- 加载:nft -f /etc/nftables.conf; systemctl enable --now nftables。
10. 云端安全组与多层防火墙
- 操作:在控制面板(AWS/GCP/Vultr等)先设置安全组,仅开放必要端口并限制来源IP或地区。
- 配合:VPS内部再启防火墙,形成双层保护(cloud firewall + host firewall)。
- 额外:对香港用户可在安全组中允许香港ASN或已知代理IP段,减少误拦。
11. 日志、远程集中与入侵检测
- 部署远程日志:安装 rsyslog,配置将 /var/log 发送到远端日志服务器(建议香港或可信第三方)。
- IDS/文件完整性:安装 AIDE 或 OSSEC 做文件完整性监测;rkhunter 和 chkrootkit 做根套件检测。
- 命令示例:apt install -y aide; aideinit; cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db。
12. DDoS 缓解与流量限制实操
- 建议1:前端使用 Cloudflare、阿里云 CDN 等做 L7 过滤与缓存。
- 建议2:启用限流(iptables rate-limit 或 nftables limit):例如 iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min --limit-burst 5 -j ACCEPT。
- 建议3:对大带宽攻击考虑使用供应商 DDoS 保护或升级包。
13. 自动更新、备份与恢复策略
- 自动更新:配置 unattended-upgrades(Ubuntu)或 yum-cron(CentOS)来自动安装安全补丁。
- 备份:制定每天快照+异地备份,脚本示例用 rsync 将 /etc、/home、数据库备份到香港或其他安全位置。
- 恢复:定期演练从快照恢复,确保防火墙规则与密钥可立即恢复。
14. 高级建议:VPN、端口敲门与最小暴露面
- VPN:将管理通道放在私有VPN(WireGuard/OpenVPN)内,仅允许VPN访问管理端口。
- 端口敲门(port knocking):对 SSH 使用 knockd 限制可见性。
- 最小暴露:删除不必要服务、关闭 IPv6(若不用)以减少攻击面。
15. 合规与审计(面向香港用户的注意事项)
- 合规性:若为香港用户保留数据,注意个人数据保护相关法律与跨境传输合规。
- 审计记录:保存并定期审阅访问记录与变更记录,设置日志保存周期和审计流程。
- 保密性:对敏感配置文件使用严格权限与密钥管理(Vault/KMS)。
问1:我应当如何为香港用户单独优化VPS网络与防火墙?
答1:优先选择与香港地理或网络邻近的节点(香港/新加坡/东京),在云端安全组中允许香港已知IP段并在主机防火墙做二次限制;同时使用 CDN 及任何提供的边缘防护减少延迟和DDoS风险。
问2:如果我只会一套防火墙工具,推荐UFW、iptables还是nftables?
答2:对初学者推荐UFW(易用);需要精细控制和高性能建议使用nftables(未来方向);若已习惯iptables也可继续使用并持久化规则。关键是遵循“默认拒绝、只开必要端口”的原则。
问3:万一被入侵,第一步应如何应对并恢复服务?
答3:立刻隔离受影响实例(从网络撤出或更改安全组),保留快照与日志用于取证;使用异地备份或快照恢复到干净镜像,修补成功入口(更新密钥、修复漏洞),并在恢复后进行全面审计与密码轮换。
来源:支持香港的国外vps安全最佳实践与防火墙配置指南