1.
总体加固策略与准备
在正式操作前,先备份快照并记录当前配置:使用云控制台创建快照或镜像;记录安全组/防火墙规则和当前开放端口(命令:ss -tulpn / netstat -tulpn)。建立变更窗口与回滚计划,确保有管理员可本地访问控制台以防 SSH 被锁死。2.
网络层——安全组与防火墙最小化原则
只开放业务必需端口:22/SSH(尽量改端口或限制来源IP)、80/443、数据库端口仅内网可访问。云控制台设置安全组规则,示例:仅允许公司固定公网IP访问管理端口。Linux 侧使用 ufw/nftables/iptables 强化:示例 ufw 命令:ufw default deny incoming; ufw allow proto tcp from 1.2.3.4 to any port 2222; ufw allow 80,443/tcp; ufw enable。3.
SSH 加固(必做)
修改 /etc/ssh/sshd_config:PermitRootLogin no;PasswordAuthentication no(改为公钥认证);UsePAM yes;ChangePort 2222 等。操作示例:sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config; sudo systemctl restart sshd。创建并分发公钥:ssh-keygen -t rsa -b 4096;把公钥放到~/.ssh/authorized_keys,chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys。4.
入侵防护与暴力破解防御
安装并配置 fail2ban:apt install fail2ban;创建 /etc/fail2ban/jail.d/sshd.local,启用 ban 时间和阈值。例如:[sshd] enabled = true; port = 2222; maxretry = 5; bantime = 3600。结合 iptables 限制连接速率:iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW -m recent --set --name SSH; iptables -A INPUT -p tcp --dport 2222 -m recent --update --seconds 60 --hitcount 6 --rttl --name SSH -j DROP。5.
内核与网络参数硬化
编辑 /etc/sysctl.conf 加入:net.ipv4.ip_forward=0;net.ipv4.conf.all.rp_filter=1;net.ipv4.tcp_syncookies=1;net.ipv6.conf.all.disable_ipv6=1(如不使用 IPv6)。应用命令:sysctl -p。限制核心转储与文件句柄,编辑 /etc/security/limits.conf。6.
系统更新与自动化补丁
启用自动安全更新(Debian/Ubuntu):apt install unattended-upgrades;dpkg-reconfigure --priority=low unattended-upgrades。对于 RHEL/CentOS 使用 yum-cron 或 dnf-automatic。定期运行 sudo apt update && sudo apt upgrade -y,并将关键补丁纳入变更管理。7.
应用与服务安全配置(以 Nginx + PHP 为例)
Nginx TLS 配置:使用 certbot 获取证书(apt install certbot python3-certbot-nginx;certbot --nginx -d example.com)。在 nginx.conf 中加入:ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; 添加安全 header 和限速:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_req zone=one burst=20;。PHP-FPM 以独立用户运行,禁止显示错误信息(php.ini display_errors=Off)。8.
数据库与权限隔离
数据库只监听本地(my.cnf bind-address = 127.0.0.1 或使用 socket)。为每个应用创建独立 DB 用户并赋予最小权限:GRANT SELECT, INSERT, UPDATE ON db.* TO 'app'@'localhost' IDENTIFIED BY 'strongpwd'; 删除匿名用户与 test 库,并禁止远程 root 登录。备份并验证备份恢复。9.
日志、审计与监控
启用集中日志:rsyslog/remote syslog 或云日志服务,将 /var/log 发送到远程。安装 auditd 并配置审计规则监控关键文件变更。部署监控(Prometheus + node_exporter / 云监控)并设置告警(CPU、磁盘、异常登录、流量突增)。10.
WAF、CDN 与 DDoS 缓解
使用云WAF或 ModSecurity 保护常见 web 漏洞,配置规则阻止 SQLi/ XSS。接入 CDN(Cloudflare 等)或云厂商抗 DDoS 服务做清洗,设置速率限制与连接数上限;对于越南本地流量,选择在越南节点的 CDN / 加速服务能降低延迟并防护流量攻击。11.
备份与灾难恢复
使用云快照 + 增量备份(rsync / borg / restic)策略:每日全量快照周、增量每天;备份加密并异地保存(最好在不同区域)。定期演练恢复脚本:关闭服务 -> 恢复快照 -> 验证业务。12.
常见问答 — Q1
问:越南云服务器如何最简单地阻止暴力破解?答:最简单且有效的组合是:关闭密码登录只用密钥(sshd_config PasswordAuthentication no)、启用 fail2ban 限制错误登录次数、并在云安全组只允许管理 IP 访问 SSH。三者合用即可大幅降低风险。
13.
常见问答 — Q2
问:如何在不影响业务的情况下启用自动安全更新?答:先在测试环境启用 unattended-upgrades 并观察一周,确保关键服务重启脚本正确;再在生产启用并配置邮件告警与变更窗口。对有风险的包(如 kernel、数据库)可配置为手动审批。
14.
常见问答 — Q3
问:云侧和主机侧的防护哪个更重要?答:两者缺一不可。云侧(安全组、WAF、DDoS)提供边界防护,主机侧(系统加固、日志、应用配置)防止内部被攻破后横向扩散。建议按“防护层叠”原则同时执行。

