限制MongoDB内网访问的方法
发布日期:2016-4-15 13:4:53
限制MongoDB内网访问的方法 我的博客用到了MongoDB作为数据存储,服务器用的是阿里云的,今天阿里云突然给我发信息说我的MongoDB数据库没有设置用户名密码,我在自己的电脑上试着登陆了一下mongo client,直接连上了。。。。好吧,我只有赶紧设置一下去. 图1 首先查看了一下MongoDB的文档,发现mongodb在启动服务后,在默认情况下,是允许所有IP访问的,而且没有密码。也就是说,在任何电脑上,通过下面的命令都是可以直接连接我的MongoDB的: 1 mongo 115.28.143.213 好吧,从这么看来,这真的好危险,幸亏我的DB中没有什么隐私的数据。。于是我赶紧在网上搜索了一下MongoDB限制访问的方法,总结来说大概有以下三种方法: 1.限制访问IP与端口 MongoDB可以限制只允许某一特定IP来访问,只要在启动时加一个参数bind_ip,或者在/etc/mongodb.conf中添加bind_ip配置,如图2所示: 图2 这样之后,MongoDB服务端只有127.0.0.1和10.0.133.14这两个 IP 可以访问了。 MongoDB默认的监听端口是27017,为了安全起见,你可以修改这个监听端口,避免恶意的连接尝试。修改方法同样有两种,如图3所示的代码: 图3 客户端访问时不指定端口会连接到默认端口27017。当你修改了MongoDB服务端的端口后,客户端连接MongoDB时需要指定端口号,如: 1 mongo 10.0.133.14:28018 2.设置用户名与密码 MongoDB在默认的情况下启动时是没有用户名和密码的验证的,如果你需要使用密码验证功能,可以通过下面两种方式打开: 图4 MongoDB中的用户分为超级用户(super user)与普通的数据库用户(database user):
在MongoDB中创建用户非常简单,图5所示: 图5 图5所示的创建方式是基于MongoDB 2.4.x版本,最新版的2.6.x中创建用户的方法会有所不同,具体的方法请参见MongoDB官方文档:add mongodb user 在MongoDB中,用户和权限有以下几个特性:
3.使用Linux IPtables限制IP范围 这种方法和MongoDB本身没有关系,而是借用Linux的iptables功能,限制允许访问MongoDB端口的IP地址,具体的做法如图6所示: 图6 OK,这样就只允许通过本地访问MongoDB服务了。 参考:Configure Linux iptables Firewall for MongoDB MongoDB 用户和身份验证 mongoDB之用户及权限设置 以后还会更新mysql的内容,关注mysql的朋友敬请期待。 上一条: PostgreSQL 9.0 内存与进程 下一条: 图形数据库Neo4J
|