2月22号数据库加固

1.数据库存放位置检查

  • mysql -uroot -p
  • show variables where variable_name = ‘datadir’

加固

  • set global datadir = ‘路径’
    #my.cnf文件下添加
  • datadir = ‘路径’

2.最小权限运行数据库

  • ps 命令查看进程 ,grep过滤结果,使用下面命令查看运行mysql的用户
    ps -ef | grep mysql

加固

  1. 创建低权限账号和组
    groupadd mysql
    useradd -r -g mysql mysql
  2. 给新建账号添加密码
    passwd mysql
  3. 修改MYSQL安装目录的权限(提前关闭mysql服务)
    chown -R mysl.mysql mysql安装路径
  4. 读写执行权限最小化755
    chmod 755 mysql安装根路径
    chmod 755 mysql安装后执行目录(bin)
    chmod 755 mysql安装后lib库(libexec)
    chmod -R go-rwx mysql数据存储目录(data)
    5.重启mysql服务即可
    service mysqld start

3.禁止使用MySQL命令历史记录

  • find / -name “.mysql_histry”
    加固
  • echo “export MYSQL_HISTORY=dev/null” >> /etc/profile
  • ln -s /dev/null .mysql_history文件路径
  • rm -r .mysql_history文件路径

4.控制慢查询日志权限

如果没有开启慢查询表示安全

第一种方法

  1. 查看慢查询日志文件名称和路径
    select @@slow_query_log_file;
    #或者
    show variables like ‘slow_query_log_file’;
  2. 查看是否开启慢查询, slow_query_log 值:ON表示开启,OFF表示关闭
    show variables like ‘%query%’;

第二种方法,直接查看mysql配置文件 /etc/my.cnf

  • cat /etc/my.cnf
    #看[mysqld]下面是否有以下配置:
  • logout=file
  • slow_query_log=on
  • slow_query_log_file=路径
  • long_query_time=2
  1. 日志文件的权限
  • ls -l 慢查询日志文件路径

加固

#修改慢查询日志权限如下

  • chmod 660 慢查询日志文件
  • chmod msyql.mysql 慢查询日志文件

5.控制通用日志文件权限

文件日志权限应满足660
没有开启慢查询表示安全

  • 查看是否开启通用日志记录,general_log 为on表示打开功能
  • 其中通用日志位置为show variables like ‘%general%’;

加固

  • chmod 660 <log_file>
  • chown mysql:mysql <log_file>

6.审计日志文件权限控制

查看审计文件权限是否超过660

  • show variables like ‘%audit_log_file%’
    查看权限
  • ls -l 审计文件

加固#修改权限和所属权限

  • chmod 660
  • chown mysql:mysql

7.查看SQL版本是否需要打补丁

  • show variables like ‘version’

8.删除test数据库

查看是否存在test默认数据库,需要进行删除

  • show database

加固

  • drop database test;

9.禁止读取本地文件

确定mysql数据库关闭读取文件内容,local_infile应为OFF

  • show variables like ‘local_infile’

加固

临时设置

  • set @@local_infile=0
    永久设置
  • 修改/etc/my.cnf 加入local-infile = 0

10.关闭原始日志功能

原始日志选项会决定一些敏感信息是否会被明文写进日志中,例如查询日志、慢查询日志、二进制日志,确保数据库配置文件中存在如下配置项

  • 查看配置文件中是否有 log-raw=ON或者log-raw=1
  • cat /etc/my.cnf

加固

#修改mysql 配置文件 /etc/my.cnf 加入 log-raw=0

11.数据库定时备份

加固

定时备份数据库

  • 新建备份文件并赋予可以执行的权限
    mkdir -p /home/mysql_backup/
    touch /home/mysql_backup/mysql_backup.sh
    chmod 551 /home/mysql_backup/mysql_backup.sh
  • 编辑/home/mysql_backup/mysql_backup.sh
    vim /home/mysql_backup/mysql_backup.sh
  • 写入一下内容
    backupdir=/home/mysql_backup
    time=date +%Y_%m_%d_%H_%M_%S
    db_user=root
    db_pass=123456
    mysqldump --all-databases -u d b u s e r − p db_user -p dbuserpdb_pass | gzip > b a c k u p d i r / backupdir/ backupdir/time.sql.gz
    find $backupdir -name “*.sql.gz” -type f -mtime +5 -exec rm -rf {} ; > /dev/null 2>&1
  • 编辑crontab
    crontab -e
  • 在最后一行加入
    **/1 * * * root /home/mysql_backup/mysql_backup.sh
  • 重启crontab
  • service crond restart
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值