常用数据库加固方法

本文详细介绍了如何优化Mysql、Redis和MongoDB的安全设置,包括修改密码、删除默认用户、加密存储、防火墙配置、远程连接控制、禁止危险操作、备份与恢复等关键步骤。
摘要由CSDN通过智能技术生成



一、Mysql

1.修改dba登录密码

mysqladmin -u root password

或在myql环境下执行

update user set password=password('123456') where user='root';
flush privileges;

2.删除默认库和用户

删除默认库test

show databases;
drop database test;

删除除root用户以外的其他默认用户

delete from mysql.user where user <> 'root';

删除密码为空的root用户

delete from mysql.user where user='root' and password='';
flush privileges;

3.变更DBA用户名

update mysql.user set user='nicai' where user='root';
flush privileges;

4.在账户管理时使用加密算法

insert into test.t1 values (1,'test',password(111111)); 

5.更改mysql启动账户

vim /etc/my.cnf
#添加如下行
user=mysql

6.限制远程连接数

vim /etc/my.cnf
#添加如下行
[mysqld]
max_connections=5
max_user_connections=2

7.关闭远程管理数据库

vim /etc/my.cnf
#添加如下行
skip-networking

8.清除mysql命令历史

清理家目录中的.mysql_history

ln -s /dev/null /root/.mysql_history

9.禁止mysql读取本地文件

vim /etc/my.cnf
#加入如下内容
[mysqld]
local_infile=0

10.禁止将表导出到文件

#执行以下命令将test库的t1表导出
select * from test.t1 into outfile '/tmp/outfile.txt' fields terminated by ',';
#禁止导出
update user set File_priv='N' where user='test';

11.日常手动备份数据库

mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob -p > /root/mysql.sql
#导入数据库
mysql -u root -p < mysql.sql

二、redis

1.禁止网络访问redis服务

vim /usr/local/redis/redis.conf
#添加如下配置
bind 127.0.0.1

2.设置防火墙过滤流量

设置iptables防火墙,确保访问源安全

iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT

3.禁用高危命令

vim /usr/local/redis/redis.conf
#添加如下配置,将shutdown命令改为kill
rename-command shutdown kill
#启动redis时需加载配置文件才能生效
./redis-server /usr/local/redis/redis.conf &

4.开启密码认证

vim /usr/local/redis/redis.conf
#添加如下配置
requirepass 123456

此时停止redis服务需使用如下命令:

./redis-cli -a 123456 shutdown

5.使用小权限用户运行主程序

useradd redis
su -l redis -c /usr/local/redis/src/redis-server 

6.备份和恢复数据

#在redis终端下执行命令bgsave
bgsave

恢复数据库只需将备份的文件放在安装目录,重启服务即可。

三、Mongodb

1.自建配置文件


#1、创建文件夹
mkdir -p data/db logs etc
#2、创建配置文件
vim etc/mongodb.conf
#3、输入如下内容
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/logs/mongodb.log  
#port=28017
fork=true  
#auth=true
journal=false 
#4、启动mongodb
/usr/local/mongodb/bin/mongod --config usr/local/mongodb/etc/mongodb.conf
#5、关闭mongodb
./bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

2.在配置文件中更改默认端口

vim /usr/local/mongodb/etc/mongodb.conf
port=27017
#开启服务时需指定端口号
mongo --port 27017

3.只监听业务流网卡

vim /usr/local/mongodb/etc/mongodb.conf
#加入如下配置
bind_ip=192.168.159.137
#登陆时需输入
mongo 192.168.159.137:28017

4.开启认证功能

#无认证状态下对数据库进行操作
use admin
db.createUser({user:"test1",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
#编辑配置文件,加入如下配置
auth=true
#重启服务后添加test2用户失败,需认证
db.auth('test1','123456')

5.备份与恢复

创建备份账户与恢复账户

#备份账户
db.createUser({user:"bkuser",pwd:"123456",roles:[{role:"backup",db:"admin"}]})
#恢复账户
db.createUser({user:"reuser",pwd:"123456",roles:[{role:"restore",db:"admin"}]})

使用备份账户备份指定数据库

#备份local数据库到/opt/mongodb目录中
./bin/mongodump --host 127.0.0.1 --port 27017 -d local -o /opt/mongodb -u bkuser -p 123456 --authenticationDatabase admin
#使用恢复账户恢复local数据库
./bin/mongorestore --host 127.0.0.1 --port 27017 -d local /opt/mongodb  -u reuser -p 123456 --authenticationDatabase admin
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值