即时通讯使用v3.4(Ubuntu 16.04)并使用此命令运行它:
mongod --fork --logpath /var/log/mongodb/mongod.log --dbpath /var/lib/mongodb
奇怪的是,上面的命令mongod服务在0.0.0.0:27107公开运行,尽管默认文件位置/etc/mongod.conf说:
net:
port: 27017
bindIp: 127.0.0.1
现在,我知道我没有明确地传递配置文件这个参数:
mongod --fork --logpath /var/log/mongodb/mongod.log --dbpath /var/lib/mongodb --config /etc/mongod.conf
如果我这样做,配置很好,但我的问题是:如果我运行mongod守护进程没有特定的配置文件而且它没有读取/etc/mongod.conf作为默认值,那么它的读取默认配置是什么?什么是默认配置参数?另外默认是监听0.0.0.0,这是一个巨大的安全漏洞,这是一个错误吗?
提前致谢。
答案 0 :(得分:1)
我知道我没有明确地传递配置文件这个参数:
您需要指定--config FILENAME以指定运行时的配置文件。这是命令行配置选项的首选方法。没有mongod
隐式使用的默认配置文件。配置是可选的。
什么是默认配置参数?
您可以在the documentation for mongod options上看到mongod
参数的默认值。
默认是监听0.0.0.0这是一个巨大的安全漏洞,这是一个bug吗?
从MongoDB v3.6 +开始,mongod
和mongos
默认绑定到localhost。以前,从MongoDB 2.6开始,默认情况下只有官方MongoDB RPM(Red Hat,CentOS,Fedora Linux和衍生产品)和DEB(Debian,Ubuntu和衍生产品)包中的二进制文件绑定到localhost。另见Localhost binding compatibility changes。
我还建议您查看MongoDB Security Checklist以改进MongoDB部署的安全措施。