安全重于泰山
一、操作系统相关
1.1 安装、初始化
在主机操作系统的选择上,如非特殊需求,我们均使用 Linux(CentOS7.x 及 CentOS6.x),所以主要的安全相关的操作重点也是基于该发行版做具体落实,不过无论是什么系统,需要考虑的方向基本上是相同的。
系统初始化:
在安装系统的时候我们会对一些系统的内核参数及相关软件配置配置进行修改,以提升安全性、性能及易用性,安全相关的内容包括:
- 精简开机启动项
- 去除无用账户及用户组
- 修改 ssh 默认端口及 root 远程登陆等限制
- 强制使用较高等级的安全协议
- 使用密钥认证,屏蔽 ctrl alt delete 组合键
- 调优系统内核,设置默认历史命令格式、存储时长,空闲超时退出
- 锁定高危系统文件等。
【实施】:生成自动化脚本用于完成系统优化及加固,完成各项初始化内容后生成可重复使用的 image 镜像用于新机器的创建使用。
1.2 访问/操作
使用跳板机/堡垒机实现服务器的集中话访问及基于角色的访问控制,针对不同的访问需求创建用户组并授权指定主机。
- 每个人使用私有账户,便于管理及回收。
- 针对管理用户设置 sudo 权限。
二、网络
2.1 防火墙、安全组
公有云服务器都不启用防火墙,均使用云服务商提供的基于 VPC 主机组的安全组/防火墙策略进行统一配置,不同的主机组使用不同的安全组/防火墙策略,并且遵循尽量小范围的原则;
严禁添加全放行的策略(如:端口范围-1/-1,来源 ip:0.0.0.0/0)。
2.2 其他网络设备:
VPN 及 NAT 网关等设备实时关注协商状态、运行状态、流量状态等。
三、数据安全
- 生产环境所有 DML 及 DDL 操作均走 DMS(企业级数据库管理服务);
- 生产环境所有数据库服务均使用高可用架构;
- 各数据库(postgresql、mysql、mongoDB 等)均基于白名单授权访问权限;
- 各数据库均禁止公网接入;
- 按业务分账户降低风险;
- 所有需要持久化的数据均定时备份。
四、平台
4.1 CI/CD:
严格管控测试、演示及生产环境的发布动作,除开发环境可由 push 触发 webhook 自动构建并更新外,其他环境的发布均由专人负责,测试验证通过后在每周固定时间上线。
4.2 监控:
- iaas、paas 资源监控:主要使用服务商内置的云监控功能,设置各项监控指标并发送告警/恢复通知至指定人员;
- API 接口监控:主要 API 接口添加监控,返回状态异常或者超时均触发告警;
- k8s 业务监控:
我们的业务应用都运行在 k8s 中,使用自建监控平台完成该项目的监控,涵盖:k8s 组件状态、node、pod 资源使用率、开发人员自定义的监控需求等; - 异常日志监控:目前基于 ali-log 收集业务日志,并根据关键字完成异常日志的检测及告警;
- 部分网络设备监控:上海机房的防火墙相关监控使用 open-falcon 实现。
###
五、定期巡检:
- 告警项:云监控、自有监控平台状态;
- 云主机、各种开源应用漏洞检测及修复;
- 各应用(DMS、跳板机、)过期数据/账号清理;
- 账户剩余资源:云平台组件、云服务状态、资源统计、操作日志、可用资金余额/授信额度等。