mysql与redis安全问题
2017-07-22 11:24
246 查看
作为网络服务的中心,网络服务器,经常会受到来自外部的***,今天简单概括一下,作为服务端重要组成部分--数据库服务,存在哪些不安全的地方,以及如何去防范;
常见服务的安全问题:
1、redis服务;
2、mysql服务;
redis服务所存在的潜在安全问题:
redis crackit 漏洞利用实例;
由于很多reids服务都是免密码登录的,
连接无密码认证的reids服务;
测试是否支持config命令,并查看当前db文件位置;
修改db文件路径到crontab文件(覆盖/var/spool/cron/crontabs/下的文件)
修改db文件路径到ssh登陆秘钥文件(覆盖~/.ssh/authorized_keys文件)
这样,基本就可以通过***机器,ssh到redis所属机器上了。并且拿到启动redis的用户权限;
redis服务需要注意的安全常识:
redis服务安全配置(/etc/redis.conf)
只监听localhost或对访问源进行限制;
使用低权限的独立服务账号(redis)
增加密码认证
禁用config、flushdb、flushall、keys等特殊指令;
mysql服务安全配置:
只监听localhost或对访问源进行限制;
使用低特权的独立服务账号(由于mysql内置了一套较为高级的账号管理系统,不同的账号不仅对不同的数据库、表有不同的管理权限,而且不同的账号对其他的账号具有一定的权限管理,相当的高级)
合理划分mysql账号权限
为所有sql账号设置复杂密码,禁用特权账号远程登陆
合理设置linux文件系统权限
禁止mysql账号对非数据库文件的写入
对于包括数据库服务在内的,所有服务而言,一些通用的防御手段:
采用规范的软件安装方法,对安装软件以及相关的配置运行目录权限进行较为注意的设置,
只保留必要的服务/端口
采取访问来源限制
合理的权限分配(文件权限和运行权限)
及时修复已知漏洞,补丁更新;
安全归类表格:
设置密码策略:
密码长度、字符集、独立密码、独立模式
推荐工具:mkpasswd (linux系统工具)
运行权限限制:
服务应运行在独立的低特权账号下
需监听1000以下端口则采用master-worker结构(如:nginx/apache/php-fpm)
工作账号运行服务的风险:
服务呗攻破后获取工作账号特权(可控制较多重要数据)
如,通过修改 ~/.bashrc,加入反弹shell脚本
当工作账号以sudo -s/-i 等方式切换到root时,会以root加载工作账号的环境,即执行恶意脚本
***者利用工作账号的正常操作实现提权;
文件权限限制:
禁止使用777等全员读写执行权限
合理设置文件属主及权限,重要文件及目录禁止读写执行
可写目录不解析,解析目录不可写(web)
可写文件不执行,执行文件不可写(mysql)
本文来自:http://blog.csdn.net/dengjiexian123/article/details/52973247
参考文章:http://blog.51cto.com/simeon/2115184
常见服务的安全问题:
1、redis服务;
2、mysql服务;
redis服务所存在的潜在安全问题:
redis crackit 漏洞利用实例;
由于很多reids服务都是免密码登录的,
连接无密码认证的reids服务;
测试是否支持config命令,并查看当前db文件位置;
修改db文件路径到crontab文件(覆盖/var/spool/cron/crontabs/下的文件)
修改db文件路径到ssh登陆秘钥文件(覆盖~/.ssh/authorized_keys文件)
这样,基本就可以通过***机器,ssh到redis所属机器上了。并且拿到启动redis的用户权限;
redis服务需要注意的安全常识:
redis服务安全配置(/etc/redis.conf)
只监听localhost或对访问源进行限制;
使用低权限的独立服务账号(redis)
增加密码认证
禁用config、flushdb、flushall、keys等特殊指令;
mysql服务安全配置:
只监听localhost或对访问源进行限制;
使用低特权的独立服务账号(由于mysql内置了一套较为高级的账号管理系统,不同的账号不仅对不同的数据库、表有不同的管理权限,而且不同的账号对其他的账号具有一定的权限管理,相当的高级)
合理划分mysql账号权限
为所有sql账号设置复杂密码,禁用特权账号远程登陆
合理设置linux文件系统权限
禁止mysql账号对非数据库文件的写入
对于包括数据库服务在内的,所有服务而言,一些通用的防御手段:
采用规范的软件安装方法,对安装软件以及相关的配置运行目录权限进行较为注意的设置,
只保留必要的服务/端口
采取访问来源限制
合理的权限分配(文件权限和运行权限)
及时修复已知漏洞,补丁更新;
安全归类表格:
服务分类 | 通用 | redis | mysql | web服务 |
外部 | 访问源控制 | 限制源ip | 限制源ip | waf等 |
外部 | 访问鉴权 | 设置强密码 | 设置强密码 | 增加token等方式 |
内部 | 程序内防御 | 禁用特权命令 | 只允许访问部分数据 | 判断数据是否合法 |
内部 | 服务权限划分 | 运行权限限制 | 运行权限限制 | 运行权限限制 |
内部 | 服务权限划分 | 文件权限划分 | 文件权限划分 | 文件权限划分 |
内部 | 操作系统防御 | 修补已知漏洞 | 修补已知漏洞 | 修补已知漏洞 |
密码长度、字符集、独立密码、独立模式
推荐工具:mkpasswd (linux系统工具)
运行权限限制:
服务应运行在独立的低特权账号下
需监听1000以下端口则采用master-worker结构(如:nginx/apache/php-fpm)
工作账号运行服务的风险:
服务呗攻破后获取工作账号特权(可控制较多重要数据)
如,通过修改 ~/.bashrc,加入反弹shell脚本
当工作账号以sudo -s/-i 等方式切换到root时,会以root加载工作账号的环境,即执行恶意脚本
***者利用工作账号的正常操作实现提权;
文件权限限制:
禁止使用777等全员读写执行权限
合理设置文件属主及权限,重要文件及目录禁止读写执行
可写目录不解析,解析目录不可写(web)
可写文件不执行,执行文件不可写(mysql)
本文来自:http://blog.csdn.net/dengjiexian123/article/details/52973247
参考文章:http://blog.51cto.com/simeon/2115184
相关文章推荐
- mysql与redis安全问题
- mysql与redis安全问题
- 浅析MySQL的注入安全问题
- 详解 MySQL 5.7 新的权限与安全问题
- 使用Redis需要注意的数据安全问题
- mysql_init()线程安全问题
- mysql 数据库管理中的安全问题(一)
- linux安装和配置 mysql、redis 过程中遇到的问题记录(转)
- nodejs + redis/mysql 连接池问题
- MySQL安全问题(匿名用户)的一点心得
- redis 安全问题
- MySQL安全问题(防范必知)
- mysql的多线程安全问题:在mysql_real_connect时出现段错误。
- 在Ubuntu上源码安装MySQL+安装问题解决+安全优化
- 【阿里云】CentOS7系统下开发环境安装配置问题汇总:mysql5.6/zookeeper/redis
- MySQL安全问题(匿名用户)的一点心得
- MySQL的安全问题从安装开始说起
- redis的安全问题
- linux安装和配置 mysql、redis 过程中遇到的问题记录
- MySQL安全问题(匿名用户)的一点心得