2017-01-16 43 views
0

我正试图在我的AWS Linux服务器上运行MongoDB身份验证。我一直在使用MongoDB的运行验证没有问题,运行在Windows,Mongo安全身份验证不起作用

>mongod --auth 

在我的AWS服务器我试图使用服务命令来执行MongoDB,

$ sudo service mongod start 

然而,mogod不启动。我相信问题出在我的/etc/mongod.conf文件中。这里是启用了身份验证的/etc/mongod.conf,

# mongod.conf 

# for documentation of all options, see: 
# http://docs.mongodb.org/manual/reference/configuration-options/ 

# where to write logging data. 
systemLog: 
destination: file 
logAppend: true 
path: /var/log/mongodb/mongod.log 

# Where and how to store data. 
storage: 
dbPath: /var/lib/mongo 
journal: 
enabled: true 
# engine: 
# mmapv1: 
# wiredTiger: 

# how the process runs 
processManagement: 
    fork: true # fork and run in background 
    pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile 

# network interfaces 
net: 
    port: 27017 
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces. 

security: 
authorization: enabled 

#operationProfiling: 

#replication: 

#sharding: 

## Enterprise-Only Options 

#auditLog: 

#snmp: 

问题出在安全标签上。

security: 
authorization: enabled 

如果包含它,MongoDB将无法启动。如果我把它拿出来,MongoDB开始很好,但没有安全性。我做错了什么?

回答

0

好的,我的坏...该文件是YAML类型。我原本输入,

security: 
authorization: enabled 

因为是YAML,我需要一些空格。正确的条目是,

security: 
    authorization: enabled 

现在正常工作。

顺便说一句,如果您使用的是MongoDB并且公开IP /端口暴露,我强烈建议您启用安全性。我上周从AWS收到一封电子邮件,表示如果您使用的是具有公开可用端口的MongoDB,则应该实施安全性。我仍在开发中,所以我忽略了AWS的建议。好吧,3天后,有人访问我的数据库,复制它们,删除它们,并在我的新数据库中留下勒索软件说明。他们想要一个比特币来归还我现有的数据库。我没有支付赎金。幸运的是,这对我来说不是问题。所有的数据都是有限的测试数据。为了避免潜在的恶意软件炸弹,我删除了AWS实例,创建了一个新实例,并在启用授权的情况下安装了新的MongoDB版本。

本集可能是真实客户数据的灾难。如果您使用MongoDB进行公共访问,请确保启用授权。