上次提到,本人服务器mongodb被黑,惨遭勒索的事情,第一时间进行修复。现把修复记录如下:
- 由于之前有备份数据库,(10天前😭),所以恢复。
- 关闭Mongodb远程连接、更换mongo默认端口: 找到
/etc/mongod.conf
, 设置如下
# mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 12121
bindIp: 127.0.0.1
net
下的port换一个随机端口号,bindip
绑定本机,意思是只能在本机登录。
- 开启mongodb权限验证
先登录没有权限的shell:
mongo --port 12121
先删除了所有用户,然后建立admin 超级管理员
use admin
db.system.users.find()列出所有用户
db.dropUser("xxxx")
db.createUser( { user: "*******", pwd: "********", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } ) 添加超级管理员
进入相应数据库建立数据库管理员
use asdasd//数据库名称,mongodb的用户随着库走,所以这一步很重要,必须要先切到这个库才能进行下面操作
db.createUser( { user: "********", pwd: "********", roles: [ { role: "readWrite", db: "asdasd" } ] } )
退出shell, 重启mongod服务service mongod restart
,(这里发现无法重启,原因接下来说)开启mongodb权限验证:在conf文件里加一句
security:
authorization: enabled
重新登录shell,mongo --port 12121
,
赋予权限
use admin
db.auth("****","****")
db.system.users.find()
如果打印出来信息,说明权限设置成功。
- mongod服务无法启动的问题解决方案:
如果你是按照官网安装的mongo,那么重启服务器后可能会出现无法启动的问题。原因有
- mongod.lock(解决办法是删除
/var/lib/mongodb/mongod.lock
文件 ) - 服务未链接到系统服务 (解决办法
systemctl enable monogod.service
) - 我以上都做完了还是不行,折腾了很久,最后发现是权限问题:按下面赋予权限
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .
service mongod start
顺利启动,至此服务端数据库加固完毕。
顺便说一下,查看service的方法service mongod status
, 打印如下则说明服务顺利启动:
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2017-11-29 09:02:27 CST; 2s ago
Docs: https://docs.mongodb.org/manual
Main PID: 5323 (mongod)
CGroup: /system.slice/mongod.service
└─5323 /usr/bin/mongod --config /etc/mongod.conf
网友评论