服务器安全 - 血的教训

前言

收藏一些日常工作中一些真的会让你公司受到损失的点

开发安全问题

  • Web服务器运行,因禁止写入权限

    • 一般html只读,没必要给他开这个
    • 如果有些写入,请注意Nginx配置
  • 尽量使用七牛云等OSS服务商存储文件

    1. 安全可靠
    2. CDN加速,快到飞起
    3. 收费不高,流量计费
  • MySQL 给予开发等,不因给ROOT账号

    1. MySQL会在服务连接满时,还允许ROOT进行一次连接,对我们线上排查排错有很大帮助
    2. 还有ROOT权限太高,容易给人开小号
  • 对于提交 HTML类代码,因做好防 XSS注入风险

    1. 如Java开发者使用 MySQL 日常维护 - 如何抵御XSS攻击
  • 完善的日志体系,当用户量大时,快速定位问题

    1. Java链路日志监控
    2. ELK组合
  • 千万不要让业务域名,与后台域名使用同一个

    • 比如:www.baidu.com
    • 管理域名:admin.baidu.com 黑客很容易知道,进行爆破
  • 对于管理端登录,我们一定要使用高强度验证码,并有条件限流

    • 管理账号,不应该是 admin

    • 避免黑客暴力破解管理密码,验证码一定要

MySQL

  • MySQL 给予开发等,不因给ROOT账号

    1. MySQL会在服务连接满时,还允许ROOT进行一次连接,对我们线上排查排错有很大帮助
    2. 还有ROOT权限太高,容易给人开小号
  • 千万不要使用单机环境,除非你是测试

    1. 使用PXC集群 高价值数据

    2. 使用RP集群 低价值 or 不需要实时

  • 不要让开发等知道服务器外放地址,当然你也不要开发外网写入

    1. 使用SQL审计工具,审计开发提交SQL

    2. 使用中间级,避免外部人员知道真实服务器IP,进行攻击

  • 及时备份数据,千万别偷懒

    1. 千万不要在主库上进行全备,因为会影响线上,因该使用从库

    2. MySQL 日常维护 - XtraBackup全量备份

    3. MySQL 日常维护 - XtraBackup增量备份

  • 误删数据可别慌,我们能恢复

    1. MySQL 日常维护 - 拯救误删 - 日志闪回方案
    2. MySQL 日常维护 - 拯救误删 - 延时节点方案

Linux

  • 任何服务运行千万不要使用ROOT权限

  • 千万不要使用账号密码直接登录Linux服务

    你应该是用SSH等更安全的方式

  • 千万不要将域名无保护直接解析到你真实服务器IP

    1. 可以使用CDN做一下加速,并且还可以隐藏真实服务器IP 至少增加了难度
    2. 或者使用中间机器反代到真实机器,恶意攻击最多打到你中间服务器上
  • 尽量使用HTTPS,在防劫持方面较安全

    1. 购买阿里云https证书申请

    2. Cloudflare 免费证书,速度比较慢,国外较出色

    3. acme 生成免费三个月证书,就是到期续费麻烦

  • 服务器较多,使用堡垒机限制开发者 or 运维 or dba 的登录操作

    1. 使用JumpServer等堡垒机,确保登录统一入口,开放不同账号

      对于追责,人员离职管控教到位

    2. DBA等应该有测试环境,使用SQL审计工具,开发提交SQL进行审计

  • 关闭服务器对外接口,只对nginx等服务器开放 80、443

    1. 阿里云主机基本做了,你可不要给开发开后门,免得人员密码泄露,公司资料被盗卖
    2. 如要连接管理mysql调试,建议使用中间服务器反代真实服务器,如 A -> B,B才是真正的MySQL
  • 所有服务都应实现高可用,而并非单机,避免宕机 or BUG 半夜出事

    • Keeplived ,自建机房
    • SLB,阿里云提供高可用负载均衡

你可能感兴趣的:(Java,MySQL)