1. 上线前在控制台选择官方精简镜像(如 Ubuntu Server / AlmaLinux)。创建主机时启用操作系统更新与自动安全补丁(若提供)。记录控制台分配的公网IP、内网IP与控制台登录凭证。建议先通过控制台提供的VNC或serial进行一次初始登录,创建管理用户并测试网络连通性。
2. 本地生成密钥并上传:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_prod,然后在控制台或通过root将公钥追加到 /home/admin/.ssh/authorized_keys。创建用户并配置sudo:adduser admin && usermod -aG sudo admin。修改 /etc/ssh/sshd_config:PermitRootLogin no, PasswordAuthentication no, PubkeyAuthentication yes, Port 22022(可改非22端口)。重启ssh服务:systemctl restart sshd。验证新账号能登录后再断开root登录。
3. 立即更新并安装必要工具:Ubuntu: apt update && apt upgrade -y && apt install -y ufw fail2ban unattended-upgrades apt-transport-https curl vim rsync。CentOS/RHEL: yum update -y && yum install -y epel-release firewalld fail2ban rsync。启用自动安全更新:Ubuntu: dpkg-reconfigure --priority=low unattended-upgrades;检查内核版本并考虑启用供应商的长期支持内核。
4. 推荐使用 ufw 或 nftables。ufw 示例:ufw default deny incoming; ufw default allow outgoing; ufw allow 22022/tcp; ufw allow 80,443/tcp; ufw enable。nftables/iptables 可添加状态过滤:iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT; iptables -A INPUT -p tcp --dport 22022 -m connlimit --connlimit-above 6 -j REJECT。同样为IPv6配置规则。保存规则:iptables-save >/etc/iptables/rules.v4。
5. 除了密钥认证外,启用登录记录和二次验证:安装并配置 Google Authenticator(libpam-google-authenticator),在 /etc/pam.d/sshd 中加入 pam_google_authenticator.so。配置sshd允许ChallengeResponseAuthentication yes,并在sshd_config中设置 AuthenticationMethods publickey,keyboard-interactive:pam。开启登录审计:auditd 安装并添加 sshd 相关规则,查看 lastb/ausearch 来审计失败登录。
6. 安装 fail2ban 并编辑 /etc/fail2ban/jail.local:示例: [sshd] enabled = true port = 22022 filter = sshd maxretry = 5 bantime = 3600 action = iptables-multiport[name=SSHD, port="22022", protocol=tcp] 重启 fail2ban:systemctl restart fail2ban。为 nginx、postfix 等服务添加对应 jail(使用自定义 filter 文件定位异常请求)。
7. Nginx 限流与缓解配置示例:在 http{} 中加入 limit_conn_zone $binary_remote_addr zone=addr:10m; limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; 在 server/location 使用 limit_conn 和 limit_req。启用 fail2ban-nginx 过滤 bot 扫描,开启 request_body 的大小限制 client_max_body_size 10M。使用 WAF(如 ModSecurity + CRS)或云厂商提供的WAF规则配合高防策略。
8. 使用 Certbot 自动签发证书:apt install certbot python3-certbot-nginx;certbot --nginx -d example.com。在 nginx 配置中启用强加密: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers '…';(使用 Mozilla 优化配置) 启用 HSTS、X-Frame-Options、Content-Security-Policy 等安全头并定期检查证书自动续签(crontab -l 确认 renew 任务)。
9. 集中化日志:安装 rsyslog 或 filebeat 将日志推送到远端日志服务/ELK。安装并配置 AIDE 或 OSSEC 进行文件完整性检查(apt install aide; aideinit; cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db)。部署 Prometheus node_exporter + Grafana 或使用云监控告警。设置磁盘、CPU、连接数阈值告警并通过邮件/钉钉/Slack 通知。
10. 制定三层备份策略:本机快照(控制台快照)、异地增量备份(rsync/Restic 到对象存储)与数据库热备份(mysqldump 或 xtrabackup)。示例 Rsync 脚本: rsync -az --delete /var/www/ user@backup:/backup/$(hostname)/$(date +%F) 并将脚本加入 cron(每天、每周、每月分级)。定期演练恢复(每季度至少一次),确保快照和备份可以成功挂载与恢复。
11. 日常巡检建议脚本化:检查服务状态(systemctl list-units --failed)、磁盘空间(df -h)、连接数(ss -tunp | wc -l)、异常登录(lastb | tail -n 50)、iptables 规则完整性、fail2ban 状态(fail2ban-client status)。示例自动化巡检脚本写入 /usr/local/bin/daily_check.sh 并通过 cron@daily 执行,输出结果发送到运维邮箱或告警渠道。
问:如何在使用台湾VPS(CN2链路)时启用高防并降低误杀风险?
答:首先在云厂商控制台申请高防或清洗流量,选择合适的防护带宽阈值与清洗策略(基于端口/协议/来源黑白名单)。开启流量镜像或日志采集以便回放分析,配置回源IP白名单、应用层WAF规则并结合限流策略以降低误杀。务必在高防策略上线前在非生产时间做压测并逐步调优清洗阈值。
问:当遇到流量型DDoS攻击时,我应该先做哪些紧急操作?
答:立即通知云厂商启用清洗并切换到高防线路;临时在本机或负载均衡上启用严格的防火墙规则(只允许必要端口/白名单IP);在应用层启用限速和验证码机制(如 503+JS challenge);保留原始流量样本并启动流量采集用于事后分析,同时逐步放通正常流量并评估损害。
问:对台湾VPS与高防云主机,日常巡检频率与重点项如何安排?
答:建议日常(每日)检查基本可用性与告警、每周检查补丁/备份完整性与异常登录、每月进行漏洞扫描与配置审计、每季度做一次恢复演练。重点关注:系统与应用补丁、登录异常、连接/会话数、磁盘/备份状态、WAF/高防告警与误杀、日志完整性与告警流量趋势。