1.
初始化与系统更新
- 步骤1:登录控制台,用提供的root或初始账号登录。
- 步骤2(Debian/Ubuntu):执行 sudo apt update && sudo apt upgrade -y;(CentOS/RHEL):sudo yum update -y。
- 步骤3:设置时区(例如 Asia/Ho_Chi_Minh)sudo timedatectl set-timezone Asia/Ho_Chi_Minh。确认主机名 sudo hostnamectl set-hostname your-hostname。
2.
创建非root管理用户并配置sudo
- 创建用户:sudo adduser deployuser;设置密码并填写信息。
- 加入sudo组:sudo usermod -aG sudo deployuser(或CentOS用 wheel 组)。
- 验证:切换 su - deployuser并执行 sudo whoami,应返回 root。
3.
SSH 密钥认证与禁用密码登录
- 在本地生成密钥:ssh-keygen -t ed25519 -C "you@example.com",不设置口令或设置口令保护私钥。
- 上传公钥:ssh-copy-id -i ~/.ssh/id_ed25519.pub deployuser@your_vps_ip 或手动将公钥追加到 ~/.ssh/authorized_keys(权限:700, 600)。
- 修改 /etc/ssh/sshd_config:设置 Port 22022(可自定义)、PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes,保存后 sudo systemctl reload sshd。
4.
启用并配置防火墙(UFW / firewalld / iptables)
- UFW(Ubuntu)示例:sudo ufw allow 22022/tcp;sudo ufw allow 80,443/tcp;sudo ufw enable;sudo ufw status verbose。
- firewalld(CentOS)示例:sudo firewall-cmd --permanent --add-port=22022/tcp;sudo firewall-cmd --reload。
- 若用 iptables,写好规则并保存,避免把自己锁死(先允许SSH再启用规则)。
5.
安装并配置 fail2ban 防暴力破解
- 安装:Ubuntu sudo apt install fail2ban -y;CentOS sudo yum install epel-release && sudo yum install fail2ban -y。
- 配置 /etc/fail2ban/jail.local 添加:[sshd] enabled = true port = 22022 filter = sshd maxretry = 5 bantime = 3600。然后 sudo systemctl enable --now fail2ban。
- 查看状态:sudo fail2ban-client status sshd。
6.
系统加固与内核网络配置
- 禁用不必要服务:使用 systemctl list-unit-files --state=enabled,停用不需要的服务 sudo systemctl disable --now 服务名。
- /etc/sysctl.conf 示例:net.ipv4.ip_forward=0;net.ipv4.tcp_syncookies=1;net.ipv4.conf.all.rp_filter=1。执行 sudo sysctl -p 应用。
- 安装 rkhunter/chkrootkit 定期扫描:sudo apt install rkhunter chkrootkit -y,设置 cron 定期运行。
7.
使用TLS与WEB安全加固
- 安装证书:sudo apt install certbot -y;sudo certbot --nginx 或 --standalone 获取Let's Encrypt证书,并设置自动续期(cron / systemd timer)。
- 强制 HTTPS,禁用弱 SSL 协议和弱套件(示例 nginx ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'HIGH:!aNULL:!MD5')。
8.
备份总体策略(备份频率与保留)
- 建议保留策略:每日备份 7 天、每周备份 4 周、每月备份 6 个月。
- 区分类型:全量镜像快照(供应商快照)+ 增量文件/数据库备份(rsync / mysqldump)+ 异地副本(云存储)。
9.
文件与数据库备份的具体命令与自动化
- 文件备份(rsync 到备份目录或远程):rsync -avz --delete /var/www/ user@backup-server:/backups/yourhost/。可写入脚本并加入 crontab:0 2 * * * /usr/local/bin/backup_files.sh。
- 数据库(MySQL)备份:mysqldump -u root -p'密码' --single-transaction --quick --routines --events dbname | gzip > /backups/dbname_$(date +%F).sql.gz。配合 find 删除旧档案:find /backups -type f -mtime +30 -delete。
- 异地上传(rclone 示例):rclone copy /backups remote:bucket/yourhost --transfers=4 --checksum。先用 rclone config 配置远程(S3/GDrive/Backblaze)。
10.
备份加密与安全传输
- 对备份文件使用 gpg 对称/公钥加密:gpg --symmetric --cipher-algo AES256 backup.tar.gz(产生 .gpg 文件)。
- 通过 SSH 或 HTTPS 上传,确保使用 rclone 的加密 remote 或在传输前加密,避免明文备份泄露。
11.
快照与恢复演练
- 快照:在 VPS 控制面板创建定期快照(建议每周或在重大变更前)。
- 恢复演练:定期在孤立环境恢复一次快照并验证网站与数据库是否能启动,记录恢复时间与步骤,确保在事故时可快速恢复。
12.
监控与告警
- 设置简单监控:安装 netdata / Zabbix agent / Prometheus node exporter,配置邮件/Slack告警。
- 日志集中:使用 rsyslog/ELK 或第三方服务集中保存日志并做告警规则。
13.
针对越南 CN2 网络的注意事项
- CN2 路由通常对中国方向优化,但仍注意带宽与丢包:定期用 mtr/iperf 测试链路质量。
- 若面对大陆用户,高延迟或突发流量时考虑使用 CDN(Cloudflare 等)以减轻源站压力并提升可用性。
14.
常见问答 1
Q: 在越南VPS上禁用root登录会不会导致无法登录?
A: 不会,只要先配置好非root用户并安装公钥登录,验证可sudo后,再修改 /etc/ssh/sshd_config 中 PermitRootLogin no 并重启 sshd。
15.
常见问答 2
Q: 备份文件太大,上传异地很慢怎么办?
A: 使用增量备份(rsync 或 rclone 的 --backup-dir/--link-dest)、压缩和分卷(tar + gzip),并在非高峰时段上传;同时可使用提供商的快照减少传输量。
16.
常见问答 3
Q: 如何验证备份可用性?恢复演练频率应该是多少?
A: 每月至少做一次完整恢复演练:从异地下载并解密备份、导入数据库、启动服务并逐项核对业务功能;记录时间和问题,作为改进依据。
来源:新手指南越南vps cn2环境下的安全配置与备份策略