目标:确认VPS系统信息与可控项。步骤:1) 登录控制台记录IP、系统镜像、快照功能;2) 在VPS内执行 uname -a、lsb_release -a、df -h 并保存到 /root/vps_info.txt;3) 建立一个安全用户名单(管理员、运维)记录SSH公钥与职责;4) 开通并测试控制面板快照与API权限,确保可自动化备份。
目标:最小化远程访问面暴露。步骤:1) 禁用密码登录:编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication no,PermitRootLogin no;2) 使用公钥认证:把公钥放到 ~user/.ssh/authorized_keys,权限 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys;3) 修改默认端口(如 2222),但配合防火墙规则;4) 配置 AllowUsers,仅允许必要账户登录;5) 重启 sshd:sudo systemctl restart sshd。
目标:限定入站出站流量。步骤(ufw 示例):1) 安装并启用:sudo apt install ufw && sudo ufw enable;2) 允许必要端口:sudo ufw allow 2222/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp;3) 限制SSH速率:sudo ufw limit 2222/tcp;4) 查看规则:sudo ufw status numbered;(iptables/nftables)建议写入开机脚本并保存:sudo iptables-save >/etc/iptables/rules.v4。
目标:自动封堵重复失败请求。步骤:1) 安装:sudo apt install fail2ban;2) 创建本地配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local;3) 在 jail.local 添加 sshd 配置:[sshd] enabled = true port = 2222 maxretry = 5 bantime = 3600;4) 定制动作为 iptables 封禁并重启 fail2ban:sudo systemctl restart fail2ban;5) 查看被封列表:sudo fail2ban-client status sshd。
目标:保护网站免受常见攻击。步骤:1) 使用 Nginx 作为反向代理并启用 HTTPS(Certbot):sudo apt install nginx certbot python3-certbot-nginx;2) 配置 HTTP Header(X-Frame-Options、X-Content-Type-Options);3) 启用 rate limiting:limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;4) 部署 ModSecurity 或 Web 应用防火墙(WAF),并定期更新规则集;5) 对上传接口做白名单与文件类型校验。
目标:及时修补已知漏洞。步骤:1) 定期更新:sudo apt update && sudo apt upgrade -y(建议在维护窗口内);2) 启用 unattended-upgrades(非生产慎用自动升级);3) 记录更新日志:将 apt 日志转存 /var/log/package-updates.log;4) 每月做一次内核与关键服务重启计划并通知相关人员。
目标:保证数据可恢复、最小化RTO/RPO。步骤:1) 制定策略:决定快照(整机)与文件级备份频率(例如快照每日、增量每小时);2) 使用VPS控制面板快照并测试恢复:创建快照->从快照启动测试实例;3) 文件备份示例(rsync):sudo rsync -av --delete /var/www/ user@backup-host:/backups/vps1/www;4) 使用 rclone 同步到云存储(步骤:rclone config -> rclone sync /var/www remote:bucket/vps1 --delete --transfers=4);5) 将备份加入 cron:0 */4 * * * /usr/bin/rsync ... 并保留日志 /var/log/backup.log;6) 定期做恢复演练并记录恢复时间。
目标:防止磁盘被日志填满且保留审计记录。步骤:1) 安装并配置 logrotate:在 /etc/logrotate.d/ 添加服务配置,例如 /var/log/nginx/*.log { daily rotate 14 compress missingok notifempty copytruncate };2) 设置 rsyslog 或 journald 转发到外部服务器以做集中化;3) 定期检查磁盘:sudo du -sh /var/log && df -h;4) 保留关键日志至少30天,敏感日志做好访问控制。
目标:便于告警与溯源。步骤:1) 部署轻量化日志采集:安装 Filebeat:sudo apt install filebeat,配置输出到 Elasticsearch 或 Logstash;2) 配置 filebeat.inputs 指向 /var/log/nginx/*.log、/var/log/auth.log 等;3) 在 Elasticsearch/Kibana 建立索引模板与可视化看板;4) 配合 Prometheus node_exporter 采集主机指标,Grafana 建立仪表盘并配置告警规则;5) 设置告警通知到邮件/Slack/钉钉。
目标:快速定位并修复问题。步骤:1) 每日检查项:fail2ban 状态、磁盘使用、最近登录(last, lastb)、服务健康;2) 发现异常时的流程:隔离(调整防火墙)、取证(保存内存、日志快照)、恢复(从备份启动测试实例)、复盘(记录事件、补丁与流程改进);3) 准备应急脚本:一键拉起备份实例、切换DNS或负载均衡的脚本并测试。
答:常见包括SSH暴力破解、未授权Web漏洞利用(如CMS注入、文件上传)、端口扫描与挖矿恶意代码、弱口令导致的后门植入。防护要点是关闭不必要端口、加固SSH、更新补丁与使用WAF。
答:定期做恢复演练:从最近快照或备份恢复到测试实例,启动服务并用实际请求(HTTP、数据库连接)验证数据完整性与业务可用性;同时核对备份日志与校验和(rsync --checksum 或 rclone md5sum)。
答:应急步骤:立即切断可疑源IP、从外部日志聚合节点获取集中化日志副本;如果本地日志被篡改,用备份或远端日志恢复审计链并进行完整性校验(使用sha256sum或ELK中的事件时间序列);同时做内存与磁盘快照做进一步取证并通知相关合规团队。