背景:
在企业安全中,比较基础的一块就是:资产漏洞管理;
巡风可以用来做这件事,当然某些地方需要根据自己实际情况修改、增加,这里不赘述;
其数据库为mongo;

在初步使用过程中,为了方便后续的开发,需要使用pycharm集成的mongo可视化插件,
这其中我们遇到了一些"不使用默认端口的坑",解决过程也很蛋疼,花费了3、4天吧,断断续续,有些东西还是可以记录一下的;(粗浅学习,大佬们一笑而过,能指点一下最好不过)
遇到两个问题:1、无法shell连接数据库,mongo报错,

指定使用的端口也没用

2、pycharm的mongo插件无法连接,mechanism尝试default,报错如下

看到支持的机制,那就尝试MONGODB-CR,这次报错不一样了:认证失败 ;但那里认证失败了呢,不知道。。。

解决:
1、首先搞清
mongo与mongod
要先启动mongod(有d的一般是守护进程,或服务本身),再mongo(连接服务)

2、发现巡风的数据库xunfeng配置时,指定了端口 65521,而不是默认的27017;

而巡风的配置文件Config.py里会写明,所以用巡风的脚本Run.sh启动时,完全没有问题;

但是,如果自己以shell方式要连接mongo时,如果以默认命令 mongo去连接就会报错,认证失败;
那么,就在在启动mongod的时候指定 端口65521来启动,

mongod --port 65521 --dbpath=/var/lib/mongodb

(或更改mongod的配置文件,并# mongod --config /etc/mongodb.conf 以生效);

然后去连接mongo 127.0.0.1:65521/xunfeng
成功!

3、pycharm中安装mongo可视化插件时
会提示认证失败,一直找不到原因;
直到通过以上步骤shell连接上数据库,查看用户信息后才发现:

(你说坑不坑,错误提示里是没有的啊,为啥当时没有多试一个;))
在这里选择相应的方式

成功

这里记着要用使修改后的conf生效(但为啥:每次都要指定,或用配置文件启动 ),这样才会连接成功;

总结:
其实就是数据库的服务启动时的问题,
1、没有启动服务
2、在没有使用默认端口的情况下没有指定使用的端口,(配置文件里也没有写)

后续
启动mongod服务的,写在开机启动服务里,并在后台运行 就好;这样不用每次都手动启动
进入 /etc/rc.local
在最后写 启动mongod的命令
mongod --port 65521 --dbpath=/var/lib/mongodb &
(或更改mongod的配置文件,并# mongod --config /etc/mongodb.conf &);

注:
1、记得写 “空格 &” 以后台形式运行;不然会在引导的时候卡住
2、如果有exit 0,上述命令写在exit 0 的前面;(exit 0 表示退出当前脚本,后续命令不会执行)

源链接

Hacking more

...