1. 登录与基本检查:使用控制面板或控制台登录,检查发行版(cat /etc/os-release)与内核(uname -r)。
1. 关闭密码登录到控制台后,先做完整更新:Ubuntu/Debian:sudo apt update && sudo apt upgrade -y;CentOS/RHEL:sudo yum update -y。
1. 安装常用工具:sudo apt install -y vim net-tools curl wget unzip fail2ban ufw bash-completion(按需)。
2. 修改默认端口与禁止 root:编辑 /etc/ssh/sshd_config,设置 Port 2222(或其他)、PermitRootLogin no、PasswordAuthentication no(改为 key 认证)。保存后 sudo systemctl restart sshd。
2. 上传公钥:在本地生成 ssh-keygen,然后将 id_rsa.pub 添加到 /root/.ssh/authorized_keys 或普通用户 .ssh。权限必须为 700(目录)与 600(文件)。chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。
2. 限制登录用户:在 sshd_config 添加 AllowUsers youruser@你的IP 或 UsePAM + /etc/security/access.conf 做白名单。
3. 启用 host 层防火墙:建议先使用云提供商控制台封锁管理端口,再在系统内配置。Ubuntu 推荐 ufw:sudo ufw default deny incoming; sudo ufw default allow outgoing; sudo ufw allow 2222/tcp; sudo ufw enable。
3. 高级规则(iptables 示例):sudo iptables -A INPUT -p tcp --dport 2222 -s 你的管理IP -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 2222 -j DROP。保存规则:apt install iptables-persistent / netfilter-persistent save。
3. 使用 provider 防火墙与安全组,尽量把 SSH、管理面板限制到固定管理 IP。
4. 安装并启用:sudo apt install fail2ban;复制模板:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local。
4. 常用 jail 设置(/etc/fail2ban/jail.local):[sshd] enabled = true; port = 2222; maxretry = 5; bantime = 3600;action = iptables-multiport[name=SSH, port=2222, protocol=tcp]。重启:sudo systemctl restart fail2ban。
4. 检查被封 IP:sudo fail2ban-client status sshd;若需解封:sudo fail2ban-client set sshd unbanip x.x.x.x。
5. 使用反向代理与限速:通过 Nginx 反向代理后端应用,示例配置 add_header X-Frame-Options "SAMEORIGIN"; limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; 在 location 中使用 limit_req。
5. 安装 ModSecurity + CRS:Ubuntu:sudo apt install libapache2-mod-security2(或 nginx-mod-security);启用 OWASP Core Rule Set,调整规则避免误判。
5. 定期扫描漏洞:使用 Nikto、wpscan、sqlmap 在测试环境检测并修补代码漏洞;使用 HTTPS(Let's Encrypt)强制 HSTS。
6. 首先启用 CDN/清洗服务:如果流量异常大,使用 Cloudflare、阿里云或机房提供的 DDoS 清洗服务。
6. TCP 层缓解:启用 syn cookies:编辑 /etc/sysctl.conf 添加 net.ipv4.tcp_syncookies = 1;应用 sudo sysctl -p。
6. 限速与连接数控制:使用 connlimit(iptables 模块)限制单 IP 并发连接数,如 sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j REJECT。
7. sysctl 推荐项(/etc/sysctl.d/99-hardening.conf):net.ipv4.ip_forward=0;net.ipv4.conf.all.rp_filter=1;net.ipv4.conf.default.rp_filter=1;net.ipv4.icmp_echo_ignore_broadcasts=1;net.ipv4.tcp_syncookies=1。应用 sudo sysctl --system。
7. 禁用不必要服务:systemctl list-unit-files --state=enabled,禁用不需要的服务 systemctl disable --now 服务名。
7. 启用 SELinux/AppArmor,安装并配置 auditd、AIDE 定期检测文件篡改:sudo apt install aide; sudo aideinit 并建立基线。
8. 定期备份:制定每日/周备份策略,将数据推到异地(S3、远程备份服务器或快照),使用 rsync/duplicity/Restic。
8. 日志集中与告警:配置 rsyslog/Graylog/ELK,将关键日志(/var/log/auth.log、/var/log/nginx/access.log)集中并设置异常告警。
8. 监控与流程:安装 Prometheus + Grafana 或使用 Zabbix,监控 CPU、内存、连接数、带宽峰值,设置阈值告警并自动触发脚本备份或封禁。

9. 问:常见攻击类型包括:SSH 暴力破解、Web 应用的 SQL 注入与 RCE、端口扫描与弱口令利用、DDoS/TCP SYN 洪泛以及后门植入与提权。CN2 因连接中国速度好,往往更易成为目标。
9. 答:针对这些威胁,采取分层防护:先由网络层(提供商防护、CDN)过滤,再由主机层(防火墙、Fail2Ban、sysctl)、应用层(WAF、代码修复)和运维流程(备份、监控)共同防御。
10. 问:遇到暴力破解或流量激增的应急步骤是什么?
10. 答:立即从控制面板封禁可疑 IP 或临时关闭公网服务;启用云端清洗/CDN;在主机层快速添加 iptables 拒绝规则或调整 ufw;切换管理端口并启用密钥登录;同时查看 /var/log/auth.log 和 netstat/lsof 确认攻击特征并保留证据。
11. 问:长期运维应做哪些事情?
11. 答:保持系统与软件及时更新、仅开放必要端口、使用密钥与2FA、定期更换和审计密钥、开启自动备份并演练恢复、部署 IDS/文件完整性检测与集中日志、定期漏洞扫描与修复、限制管理 IP 并记录审计日志。