
1.
2.
3.
# 生成密钥(本地) ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_light # 上传公钥到服务器 ssh-copy-id -i ~/.ssh/id_rsa_light.pub user@你的原生IP # 禁用密码登录(在服务器) sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd同时建议改默认端口:编辑 /etc/ssh/sshd_config 修改 Port 22 为其它端口并在安全组放行该端口。
4.
# Ubuntu + UFW 示例 sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 你的SSH端口/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable或用 iptables 写入持久规则。不要仅依赖控制台安全组,主机防火墙是最后防线。
5.
sudo apt update && sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 编辑 /etc/fail2ban/jail.local,启用 sshd,设置 bantime/jail 最大尝试次数 sudo systemctl restart fail2ban验证:sudo fail2ban-client status sshd。该工具能自动阻断重复失败的登录尝试。
6.
sudo apt install certbot sudo certbot --nginx -d example.com配置自动续期:sudo systemctl enable certbot.timer。对数据库绑定本机访问或使用内网IP,并限制外部访问。
7.
# 导出 MySQL mysqldump -u root -p 密码 --databases dbname > /root/backup/dbname_$(date +%F).sql # 打包 tar czf /root/backup/site_$(date +%F).tar.gz /var/www/html /root/backup/dbname_$(date +%F).sql # 可选加密 openssl enc -aes-256-cbc -salt -in file.tar.gz -out file.tar.gz.enc -pass pass:你的强口令
8.
#!/bin/bash DATE=$(date +%F) mkdir -p /root/backup/$DATE mysqldump -u root -p你的密码 dbname > /root/backup/$DATE/db.sql tar czf /root/backup/site_$DATE.tar.gz /var/www/html /root/backup/$DATE/db.sql openssl enc -aes-256-cbc -salt -in /root/backup/site_$DATE.tar.gz -out /root/backup/site_$DATE.tar.gz.enc -pass pass:强口令 coscmd upload /root/backup/site_$DATE.tar.gz.enc bucketname /backups/site_$DATE.tar.gz.enc # 清理本地超过30天的备份 find /root/backup -type f -mtime +30 -delete加入 crontab:0 3 * * * /usr/local/bin/backup_to_cos.sh >> /var/log/backup.log 2>&1
9.
# 从 COS 下载并解密 coscmd download bucketname /backups/site_2026-01-01.tar.gz.enc /tmp/ openssl enc -d -aes-256-cbc -in /tmp/site_2026-01-01.tar.gz.enc -out /tmp/site_2026-01-01.tar.gz -pass pass:强口令 tar xzf /tmp/site_2026-01-01.tar.gz -C / # 数据库还原 mysql -u root -p 密码 < /root/backup/db.sql控制台快照恢复:控制台 → 快照 → 选择快照 → 恢复为新实例或重置系统盘。每季度至少做一次全流程恢复演练并记录时间。
10.
11.
12.
13.