先确认系统与访问方式并做基础安全设置。小分段:1) 登录:使用控制台和SSH两条路径备份root登录;2) 系统:记录发行版与版本(Ubuntu/CentOS);3) DNS:域名A记录指向马来西亚VPS公网IP。
保持系统最新是首要步骤。小分段:Ubuntu/Debian:运行 apt update && apt upgrade -y,安装自动更新 apt install unattended-upgrades 并编辑 /etc/apt/apt.conf.d/50unattended-upgrades;CentOS:yum update -y 并启用dnf-automatic或yum-cron。
关闭密码登录、禁止root、使用密钥。小分段:1) 新建账号并授予sudo:adduser deploy && usermod -aG sudo deploy;2) 上传公钥:在本地 ssh-keygen 后把公钥写入 /home/deploy/.ssh/authorized_keys,权限 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys;3) 编辑 /etc/ssh/sshd_config:PermitRootLogin no,PasswordAuthentication no,Port 2202(可选),UsePAM yes,然后 systemctl restart sshd;4) 测试新账号能登录再关闭root。
使用UFW在Ubuntu上快速配置。小分段:1) 安装并启用:apt install ufw && ufw enable;2) 允许必要端口:ufw allow 2202/tcp(SSH替换端口),ufw allow 80/tcp,ufw allow 443/tcp;3) 限制规则:ufw limit 2202/tcp;4) iptables 示例(更细粒度):iptables -A INPUT -p tcp --dport 2202 -m conntrack --ctstate NEW -j ACCEPT,保存规则使用 iptables-persistent。
安装并配置Fail2Ban来防止暴力破解。小分段:apt install fail2ban,复制 /etc/fail2ban/jail.conf 到 /etc/fail2ban/jail.local,启用 [sshd] 部分并设置 bantime = 3600,maxretry = 5,findtime = 600,重启 systemctl restart fail2ban,查看状态 fail2ban-client status sshd。
为网站启用HTTPS并加强配置。小分段:1) 安装certbot:apt install certbot python3-certbot-nginx;2) 申请证书:certbot --nginx -d example.com -d www.example.com;3) Nginx安全配置片段:在server块加入 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'HIGH:!aNULL:!MD5'; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 4) 自动续期:系统默认会建立cron,测试 certbot renew --dry-run。
部署ModSecurity或Cloudflare。小分段:1) Nginx+ModSecurity:apt install libnginx-mod-http-modsecurity,启用OWASP规则集;2) 应用层:设置Content-Security-Policy、X-Frame-Options、X-Content-Type-Options等响应头;3) 可选使用Cloudflare/WAF服务做DDoS缓解与应用层防护。
保护数据库不被越权访问。小分段:1) 绑定到本地:在mysql配置 my.cnf 加 bind-address = 127.0.0.1;2) 执行 mysql_secure_installation 完成root密码与删除匿名用户;3) 为应用创建专用用户并只授予必要权限:CREATE USER 'app'@'localhost' IDENTIFIED BY 'strongpwd'; GRANT SELECT,INSERT,UPDATE ON db.* TO 'app'@'localhost';
建立定期备份并验证恢复。小分段:1) 文件备份示例:rsync -az --delete /var/www/ backup@backup.example:/backups/site/;2) 数据库备份:mysqldump -u root -p dbname | gzip > /backups/db_$(date +%F).sql.gz;3) 建立cron:编辑 crontab -e 添加每日备份并保留7天,测试恢复流程。
监控与告警确保及时响应。小分段:1) 文件完整性:安装 AIDE(apt install aide)并初始化 aideinit,定期比对 aide --check;2) 主机入侵:安装OSSEC或Wazuh做集中告警;3) 资源监控:部署Prometheus+Grafana或Netdata监测CPU、内存、网络与HTTP错误,结合Alertmanager发送告警到邮件或Telegram。
把重复工作自动化以减少人为错误。小分段:1) 使用Ansible写playbook来部署用户、SSH、UFW、证书和应用配置;2) 将安全检查(audit)脚本纳入CI/CD,每次部署前跑基本安全项;3) 建立变更记录与回滚步骤。
答:是的。马来西亚有数据保护法规(如PDPA),若处理个人数据需遵守本地合规;此外注意供应商对日志保存与跨境传输的条款。建议与法务确认并尽量将敏感数据加密存储与传输。
答:先隔离(断网或更换防火墙规则),保留当前镜像用于取证,使用最近的干净备份恢复服务,重建系统并更改所有凭证,分析入侵根因并补丁后再切换流量。
答:优先级建议:1) 系统更新与备份;2) SSH加固与防火墙;3) Fail2Ban与入侵检测;4) TLS证书与Nginx配置;5) 数据库加固与最小权限;最后部署WAF、监控与自动化。