为Graylog设置MongoDB身份验证

时间:2020-03-21 11:47:01  来源:igfitidea点击:
[+] Databases
-----------------------------------
- MongoDB status                  [ FOUND ]
- Checking MongoDB authorization  [ DISABLED ]

尽管MongoDB仅在本地接口上侦听并且没有公共访问权限,但仍必须解决该问题。

启用MongoDB身份验证

停止服务:

# systemctl stop graylog-server elasticsearch mongod

在没有访问控制的情况下启动MongoDB:

# mongod --port 27017 --dbpath /var/lib/mongo/

连接到实例:

# mongo --port 27017

列出数据库:

show databases;
graylog   0.078GB
local     0.000GB

创建管理员用户。
确保角色设置为" root"。
我尝试使用" userAdminAnyDatabase",但遇到了问题。
这是你的选择。

use graylog;
db.createUser(
  {
    user: "mongo_admin",
    pwd: "passwd",
    roles: [ { role: "root", db: "admin" } ]
  }
)
exit

断开mongo shell的连接后,还原文件夹权限:

# chown -R mongod:mongod /var/lib/mongo/

打开文件" /etc/mongod.conf"进行编辑,然后添加以下内容:

security:
authorization: enabled

启动MongoDB:

# systemctl start mongod

以mongo_admin用户身份连接并进行身份验证:

# mongo --port 27017 -u "mongo_admin" -p  --authenticationDatabase "graylog"

配置Graylog以再次验证MongoDB

打开文件/etc/graylog/server/server.conf进行编辑,并添加以下内容:

mongodb_uri = mongodb://mongo_admin:[email protected]:27017/graylog

启动Elasticsearch和Graylog:

# systemctl start elasticsearch graylog-server

检查Graylog日志是否存在任何问题。