1.
准备与初始评估
- 确认云厂商与机房:选择日本(例如东京/大阪)节点,注意带宽峰值与BGP是否支持。
- 核心配置核对:CPU 2核、内存 4GB、磁盘 80GB SSD、公网带宽 200Mbps(示例)。
- 操作系统版本:优先使用LTS版本,如Ubuntu 20.04 / Debian 11 / CentOS 7-8,核对内核版本(示例:Linux 5.10.0-8-amd64)。
- 访问控制列表:确认控制台、API密钥与紧急密码的保存位置,启用二次验证(2FA)。
- 法规与合规:日本当地的隐私与数据保留要求,若提供面向日本用户的服务需遵守当地法律。
2.
系统安装与基础加固
- 更新与补丁:执行 apt update && apt upgrade -y 或 yum update -y,记录更新时间与补丁版本。
- 最小化安装:只安装必要软件包,移除未使用的服务(例:ftp、telnet)。
- 账户策略:禁用root直接登录,创建单独管理账号并加入sudo组。
- 时间同步:配置 ntp 或 chrony,保证日志时间一致(示例:chrony, poll 64s)。
- 软件源镜像:使用日本或国内镜像以提高更新速度并减少跨境延迟。
3.
SSH与远程访问安全
- 更换默认端口:将SSH端口改为2222或非标准端口(示例:Port 2222)。
- 禁止密码登录:配置公钥认证,PermitRootLogin no,PasswordAuthentication no。
- 限制登录失败:安装fail2ban,设置 maxretry=3、bantime=3600(秒)。
- 使用密钥管理:建议使用4096位RSA或ed25519密钥,保护私钥并启用ssh-agent。
- 二次跳板与堡垒机:对管理流量通过堡垒机集中审计并记录session。
4.
用户与权限管理
- 最小权限原则:使用sudoers精细控制命令执行权限,避免全局sudo。
- 账户生命周期:为每个员工建立独立账户,并在离职后立即撤销。
- 文件与目录权限:配置关键目录权限(/etc/ssh/sshd_config 600,/var/log 640)。
- 审计与记录:启用auditd记录高敏感操作(示例:auditctl -w /etc/sudoers -p wa)。
- SSH证书与到期:对短期运维使用临时SSH证书并设定到期时间。
5.
网络与防火墙策略
- 默认策略:使用ufw/iptables/nftables设置默认拒绝入站,允许出站。
- 端口白名单:仅开放必要端口(示例:80/443/2222),其他端口DROP。
- SYN/连接限制:iptables示例:--limit 25/s --limit-burst 100 防止SYN洪泛。
- 内网隔离:同一VPC内部使用安全组细分分层(web/db/cache)。
- 管理接口专网:控制面板与API仅允许指定管理IP访问。
6.
入侵检测与日志管理
- 集中日志:将/var/log转发到远端syslog或ELK/Graylog集群。
- IDS/IPS:部署OSSEC/Suricata作为主机/网络入侵检测,设定告警阈值。
- 日志保留策略:至少保留90天访问日志,关键审计日志保留一年。
- 日志完整性:使用WORM或远端只写存储防篡改。
- 告警与响应:配置PagerDuty或短信通知,建立应急SOP。
7.
CDN与DDoS防护设计
- 使用CDN前置:将Nginx/Apache后端隐藏在Cloudflare/阿里云CDN/腾讯云CDN之后。
- 均衡流量:结合L3/L4清洗(例如云厂商清洗阈值:带宽>1Gbps触发)与L7 WAF规则。
- 阈值配置:示例阈值:每秒请求数(RPS)超过2000时触发速率限制;单IP并发连接>100封禁。
- 缓存与压缩:缓存静态资源至CDN并开启gzip、brotli减少后端负载。
- 黑白名单与挑战页:对可疑流量启用JS挑战或验证码验证。
8.
备份、恢复与高可用
- 定期备份:每日全量快照+每小时增量,保存30天。示例:磁盘快照大小 80GB。
- 异地备份:在不同可用区或不同云厂商保存备份,防单点故障。
- 恢复演练:每季度至少做一次冷恢复并记录RTO/RPO(示例:RTO 1 小时,RPO 15 分钟)。
- 数据库备份:使用mysqldump或xtrabackup,测试回滚过程。
- 自动化脚本:使用Ansible/Terraform管理基础设施与恢复流程。
9.
监控与性能优化
- 指标监控:CPU、内存、磁盘IO、网络吞吐与响应时间,设置80%阈值告警。
- 进程与连接监控:监测长连接、文件描述符数,设置ulimit限制。
- Nginx/TCP调优:示例:worker_processes auto, keepalive_timeout 65,tcp_tw_reuse=1。
- 缓存策略:使用Redis/Memcached缓存热点数据,减轻DB压力。
- 伸缩方案:结合自动扩缩容(scale-out)应对流量突发。
10.
真实案例与配置清单示例
- 案例背景:某日本电商站点在促销期间遭受L7请求洪泛与L3带宽攻击,流量峰值700Mbps、20k RPS。
- 应对措施:启用Cloudflare Pro + 本地Nginx限速,调整缓存策略并在边缘启用挑战页。
- 结果数据:攻击发生后,接入CDN后后端平均CPU从95%降至25%,响应时间从1200ms降至200ms。
- 建议清单:见下表为标准最小可运行配置与建议值。
- 后续建议:定期演练、调整WAF规则并与云厂商保留沟通渠道。
| 项目 | 示例值 | 说明 |
| CPU / 内存 | 2 vCPU / 4 GB | 小型生产服务起点 |
| 磁盘 | 80 GB SSD | 日志与快照空间 |
| 带宽 | 200 Mbps(公网) | 根据业务弹性调整 |
| SSH端口 | 2222 | 非标准端口+密钥登录 |
| fail2ban | maxretry=3 bantime=3600 | 阻断暴力破解 |
| CDN触发阈值 | RPS>2000 / 带宽>1Gbps | 自动启用加固策略 |
来源:从零开始配置linux日本云服务器 的安全加固清单