关联文章:
Mongodb 集群replicat set 搭建:
https://blog.csdn.net/royzhang7/article/details/100076335
MongoDB数据库作为一款应用越来越广的数据库产品,使用简单,部署方便,
但是也存在部分安全隐患,主要有以下两点:
1、mongodb默认不开启auth认证模式,导致所有数据库用户都拥有最高权限
2、mongodb默认27017端口,容易遭受定向攻击
所以,此次安全加固会针对这两点进行优化:
1、开启mongodb的auth认证模式
2、修改mongodb默认端口号
具体操作:(replica set模式)
#先备份数据库
./mongodump --host=192.168.1.2 --port=27017 -d test -o /mongodb/bak
#确认replicat set状态
./mongo 192.168.1.2:27017
db.serverStatus()
#登陆master节点
#创建管理用户
./mongo 192.168.1.2:27017
use admin
db.createUser(
{
user: "admin",
pwd: "admin321",
roles: [ { role: "root", db: "admin" } ]
}
)
#登陆slave节点查看用户同步是否ok
./mongo 192.168.1.3:27017
rs.slaveOk()
use admin
db.system.users.find() --已同步
#首先修改IP
#登陆关闭mongodb(主节点192.168.1.2),主节点切换到备节点
./mongod --shutdown --dbpath /mongodb/data/master
#修修改关闭节点的配置文件mongodb_master.conf ,然后启动节点
port=28123
./mongod -f /mongodb/mongodb_master.conf
#在主节点重新配置rs信息,注意修改priority
cfg={ _id:"mongodb", members:[ {_id:0,host:'192.168.1.2:28123',priority:1}, {_id:1,host:'192.168.1.3:27017',priority:2},
{_id:2,host:'1192.168.1.3:27019',arbiterOnly:true}] };
rs.reconfig(cfg)
rs.status()
查看节点状态。
#关闭当前主节点(192.168.1.3),主节点切换到备节点
./mongod --shutdown --dbpath /mongodb/data/slaver
#修改关闭节点的配置文件mongodb_slaver.conf ,然后启动节点
port=28321
./mongod -f /mongodb/mongodb_slaver.conf
#在当前主节点重新配置rs信息,注意修改priority
cfg={ _id:"mongodb", members:[ {_id:0,host:'192.168.1.2:28123',priority:2}, {_id:1,host:'192.168.1.3:28321',priority:1},
{_id:2,host:'192.168.1.2:27019',arbiterOnly:true}] };
rs.reconfig(cfg)
rs.status()
查看节点状态。
#关闭arbiter节点
./mongod --shutdown --dbpath /mongodb/data/arbiter
--修改关闭节点的配置文件mongodb_arbiter.conf,然后启动节点
port=28333
./mongod -f /mongodb/mongodb_arbiter.conf
--在当前主节点重新配置rs信息,注意修改priority
cfg={ _id:"mongodb", members:[ {_id:0,host:'192.168.1.2:28123',priority:2}, {_id:1,host:'192.168.1.3:28321',priority:1},
{_id:2,host:'192.168.1.3::28333',arbiterOnly:true}] };
rs.reconfig(cfg)
rs.status()
查看节点状态。
#然后开启auth认证模式
#在主节点生成keyfile文件(192.168.1.2)
openssl rand -base64 90 > /mongodb/keyfileprod
chmod 600 /mongodb/keyfileprod
#传到备节点(192.168.1.3)
scp /mongodb/keyfileprod root@192.168.1.3:/mongodb/keyfileprod
chmod 600 /mongodb/keyfileprod
#修改auth 模式
#关闭三个节点,顺序PAS(主、投票、备)
#192.168.1.2
./mongod --shutdown --dbpath /mongodb/data/master
#192.168.1.3
./mongod --shutdown --dbpath /mongodb/data/arbiter
./mongod --shutdown --dbpath /mongodb/data/slaver
#修改三个config文件,添加auth参数和keyfile参数
#192.168.1.2
auth=true
keyFile=/mongodb/keyfileprod
#192.168.1.3
auth=true
keyFile=/mongodb/keyfileprod
#重启三个节点,顺序PSA(主、备、投票)
#192.168.1.2
./mongod -f /mongodb/mongodb_master.conf
#192.168.1.3
./mongod -f /mongodb/mongodb_slaver.conf
./mongod -f /mongodb/mongodb_arbiter.conf
#登陆主备节点查看状态OK
./mongo 192.168.1.2:28123
use admin
db.auth("admin","admin321")
rs.status()
./mongo 192.168.1.3:28321
use admin
db.auth("admin","admin321")
rs.status()
#测试同步