现状

目前,网上运维工程师服务器安全意识参差不齐,大部分都存在这三方面的问题:

  • 服务器安全不是很懂;

  • 服务器安全重要,但没按要求做,或安全设置不全面;

  • 服务器安全重要,安全设置都有做,但实际操作有遗忘,安全意识不强。

  • 比如:在2017/01/31 18:00 UTC国外Gitlab出现故障,丢失了6小时的生产数据!Gitlab 数据库终于在北京时间 2月2日 0:14 恢复成功(18:14 UTC 02/01)。运维工程师操作时。没有检查正在操作的服务器,以至于误删除了正常的数据。

服务器安全那些要做,那些不要做

  • 安全设置要不要做?做安全还是不做安全?还是说只做一些基础设置。

  • 如果安全相关工作,能让服务器和服务器集群更安全,那就要去做。

  • 安全的相关工作尽量做,不会做的想办法做,实在没法做的,那就延后再说,也许现在没办法做,可能以后有办法,想做总能找到办法。

  • 安全无小事,要想想不安全的后果,如果出现安全事件,数据泄露,数据库被拖库,后果是很严重的,这样的案例互联网上很多,就不多说了。

  • 项目的口号是:使用服务器安全运维规范,不掉坑,不背锅!

事前检查和监控

提前检查

  1. 服务器和网站漏洞检测,对Web漏洞、弱口令、潜在的恶意行为、违法信息等进行定期扫描。

  2. 代码的定期检查,安全检查,漏洞检查。

  3. 服务器安全加固,安全基线设置,安全基线检查。

  4. 数据库执行的命令,添加字段、加索引等,必须是经过测试检查的命令,才能在正式环境运行。

数据备份

  1. 服务器数据备份,包括网站程序文件备份,数据库文件备份、配置文件备份,如有资源最好每小时备份和异地备份。

  2. 建立五重备份机制:常规备份、自动同步、LVM快照、Azure备份、S3备份。

  3. 定期检查备份文件是否可用,避免出故障后,备份数据不可用。

  4. 重要数据多重加密算法加密处理。

  5. 程序文件版本控制,测试,发布,故障回滚。

对于生产环境的数据库备份:「高逼格企业级MySQL数据库备份方案,原来是这样....」,读者还可以在民工哥技术之路公众号对话框直接回复「备份」,可以获取一份完整的源自民工哥实际生产环境的数据库备份方案。

安全监控

  1. nagios监控服务器常规状态CPU负载、内存、磁盘、流量,超过阈值告警。

  2. zabbix或cacti监控服务器常规状态CPU负载、内存、磁盘、流量等状态,可以显示历史曲线,方便排查问题。

  3. 监控服务器SSH登录记录、iptables状态、进程状态,有异常记录告警。

  4. 监控网站WEB日志(包括nginx日志php日志等),可以采用EKL来收集管理,有异常日志告警。

  5. 运维人员都要接收告警邮件和短信,至少所负责的业务告警邮件和短信必须接收,运维经理接收重要业务告警邮件和短信。(除非是专职运维开发)

  6. 除服务器内部监控外,最好使用第三方监控,从外部监控业务是否正常(监控URL、端口等),比如:监控宝。

对于运维监控还可以参考一些之前写过的一篇文章:

面试装逼系列|这篇文章,让运维监控不再成为你的短板!

故障避免预防

  1. 网站WEB增加WAF,避免XSS跨站脚本、SQL注入、网页挂马等漏洞威胁。

  2. 程序代码连接数据库、memcache、redis等,可以使用域名(域名HOSTS指定IP),当出问题,有备用的服务器,就可以通过修改DNS或者HOSTS,恢复服务。

  3. 建立应急预案机制,定期演练事故场景,估算修复时间。

  4. 部署蜜罐系统,防范企业和服务器内网APT攻击。

  5. 建立双活集群,包括业务服务的高可用,避免业务服务单点。

  6. 服务器集群采用跳板机或堡垒机登录,避免服务器集群每台服务器可以远程连接管理。

  7. 操作重要业务升级、迁移、扩容……之前,列一下操作步骤,越详细越好,实际操作按步骤操作,操作完做好记录。

事中操作

  1. 网站WEB增加WAF,发现XSS、SQL注入、网页挂马等攻击,会自动拦截,并记录日志。

  2. 检查服务器数据备份是否可用。

  3. 在处理需求和故障时,执行风险命令(比如rm、restart、reboot等)需再三确认,执行命令前,检查所在服务器,所在服务器路径,再执行!

  4. 不要疲劳驾驶,喝酒不上机,上机不喝酒,尤其别动数据库,避免在不清醒的状态下,在服务器上执行了错误命令,导致数据丢失或业务故障。

  5. 在处理事故时,一定要考虑处理措施是否会引发连锁故障,重要操作三思而行。

事后检查分析

  1. 实现网络安全可视化管理,可以看到每天有那些异常IP和异常URL请求,服务器集群开放端口列表等。

  2. 能对全网进行安全策略集中管理。

  3. 统一日志收集和分析。

  4. 备份及篡改恢复功能,程序文件、图片、数据文件、配置文件的备份,故障回滚机制。

  5. 对攻击日志进行深度分析,展现攻击路径、攻击源,协助管理员溯源。

  6. 践行DevOps的无指责文化,尤其是在做事故分析时。事故分析重在定位原因,制定改进措施;

服务器遭受攻击后,这样排查处理不背锅! :https://mp.weixin.qq.com/s/sEFxSo60s6MWz4UYu-Bbcw

一篇超实用的服务异常处理指南 :https://mp.weixin.qq.com/s/dduLDD2T1e6GVwdWWtVxsA

黑客入侵 linux 系统常用手段 : https://mp.weixin.qq.com/s/-gkdtMR-rus6nLLvfkOntA

06-05 16:09