1.
概述:威胁模型与防御目标
1) 明确威胁来源:网上扫描、SSH 爆破、Web 漏洞、DDoS、僵尸网络流量。
2) 评估VPS能力:常见免费
日本VPS规格示例:CPU 2 核、内存 2GB、磁盘 50GB SSD、带宽峰值 1Gbps。
3) 防御目标:保证控制面板可用、阻断大规模扫描、保护数据完整性与隐私。
4) 风险优先级:先封堵暴力破解与高流量洪水,再做应用层深度防护。
5) 合规与备份:定期快照,保留最近7天与月度备份,避免单点失效。
2.
基础系统加固(示例配置)
1) 系统更新:使用 apt update && apt upgrade -y 或 yum update -y,至少每周检查安全补丁。
2) SSH 加固示例:/etc/ssh/sshd_config 示例项:Port 3222、PermitRootLogin no、PasswordAuthentication no、UseDNS no。
3) 使用密钥登录:ssh-keygen -t rsa -b 4096,然后将公钥放入~/.ssh/authorized_keys,禁用密码后检查登录。
4) 登录防护:安装 fail2ban,示例 jail.local 中 sshd maxretry=5,bantime=3600。
5) 防火墙规则:示例 nftables/iptables:允许 127.0.0.1、指定管理 IP、放行 3222、禁止其他入站端口。示例:iptables -A INPUT -p tcp --dport 3222 -s 管理IP -j ACCEPT;iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT。
3.
网络与边界防护(CDN 与 DDoS 缓解)
1) 部署 CDN/反向代理:使用 Cloudflare 或其他 CDN 做第一级过滤,隐藏真实 IP,转发 HTTPS。
2) IP 黑白名单:仅允许管理 IP 直连,所有 Web 流量走 CDN;将真实服务器端口绑定到内部网络。
3) TCP/UDP 限制:开启 SYN cookies:sysctl -w net.ipv4.tcp_syncookies=1;调优 conntrack 和 netfilter 超时。
4) 流量限速示例:nginx limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10; limit_req zone=req burst=20 nodelay。
5) 绑定带宽策略:当观察到异常峰值(如 >500 Mbps 持续 5 分钟)时,自动切换到 CDN 的“I'm under attack”模式。
4.
Web 与应用层加固
1) 使用 WAF:部署 ModSecurity 或 CDN 提供的 WAF,启用 OWASP CRS 规则集拦截 SQLi、XSS 等。
2) Nginx 安全示例:server_tokens off;add_header X-Content-Type-Options nosniff;add_header X-Frame-Options SAMEORIGIN;ssl_protocols TLSv1.2 TLSv1.3。
3) 进程隔离:将 PHP-FPM 用 socket 隔离不同站点,设置用户权限 nobody -> www-data,限制文件访问。
4) 上传与权限策略:上传目录 750 权限,执行权限仅限必要用户,禁用 .php 在上传目录执行。
5) 数据库安全:远程 DB 仅允许内网访问,设置强口令和最小权限原则,定期导出数据并加密存储。
5.
日志、监控与应急响应
1) 集中化日志:使用 rsyslog/Fluentd 将日志发到独立日志主机或云端,保留 90 天最小摘要。
2) 重要指标监控:CPU、内存、网络带宽、连接数、HTTP 500/429 率,阈值示例:连接数 > 10k 触发告警。
3) 告警与自动化:Prometheus + Alertmanager 或简单脚本结合短信/邮件推送,发生 DDoS 达到 200k 请求/分钟自动启用 CDN 严格策略。
4) 事件响应流程:发现异常->隔离受影响服务->启用防护->采集证据->恢复并总结。
5) 日志示例:SSH 日志中出现 12345 次失败尝试,来源 3,456 个不同 IP,可导出为 /var/log/auth.log 并用 grep 统计。
6.
真实案例与数据演示(含表格)
1) 案例概述:某免费日本VPS在一周内遭遇 SSH 暴力破解与小规模 HTTP Flood。
2) 初始服务器规格:CPU 2 核、内存 2GB、磁盘 50GB、带宽 1Gbps。
3) 攻击数据:SSH 爆破 12,345 次/日,HTTP 流量峰值 35 Gbps(由外部放大器发动)。
4) 采取措施:更换 SSH 端口为 3222、启用 fail2ban(ban 3,456 IP)、通过 CDN 转发并启用严格 JS 挑战,最终将网页请求峰值降至可接受范围。
5) 结果:CPU 从攻击高峰时的 95% 降至 15%,带宽利用率由 35 Gbps 被 CDN 吸收到回源 40 Mbps。
| 项 | 初始 | 攻击高峰 | 防护后 |
| CPU 使用率 | 15% | 95% | 18% |
| 内存使用 | 1.1GB | 2.0GB | 1.2GB |
| 带宽(回源) | 100 Mbps | 35 Gbps | 40 Mbps |
| 被封IP数 | 0 | 3,456/日 | 3,456 总计 |
7.
自动化、安全策略与备份实践
1) 自动化补丁:使用 unattended-upgrades 或定时脚本,每日检查 CVE 更新并自动重启非核心服务。
2) 快照策略:示例策略——每天快照保留7天,周快照保留4周,月快照保留6个月。
3) 演练恢复:每月一次恢复演练,验证备份可用性与恢复时间目标(RTO ≤ 30 分钟)。
4) 配置管理:使用 Ansible 管理 /etc/ssh/sshd_config、firewall、fail2ban 配置,确保可回滚。
5) 最后建议:免费VPS更需谨慎,优先把对外服务放在 CDN 前端,把管理端口限定到可信 IP,并保持监控与快速响应流程。
来源:安全加固指南 保护你的8日本免费vps免受常见攻击