本文翻译之MongoDB官网博客,原地址:https://www.mongodb.com/blog/post/enabling-ip-security-for-mongodb-36-on-ubuntu

MongoDB3.6的默认配置会拒绝未授权的链接对公共网络的访问,从而保护数据收到外部威胁。MongoDB只会监听本地链接,除非添加规则允许监听其他地址。

本教程会简明的展示如何允许外部IP地址连接MongoDB节点,并保证联网服务器可以连接到你的数据库。通过本教程,你会发现配置MongoDB监听具体的网络端口是很容易的一件事情。

看本教程前,你需要:

l  安装MongoDB3.6

l  服务器上有多个网络接口(本例会使用AWS EC2实例)

l  了解IP网络的基本知识,会配置私有IP

我启动了安装有 Ubuntu 16.04 LTS的一台AWS EC2的实例,并且安装了MongoDB3.6

我想允许我的部分VPC IP地址连接到我们的MongoDB数据库。通过这种方式,可以保证只有我们的指定IP以及本机才能连接到数据库,而其他陌生地址禁止访问数据库。

首先启动VPC公共子网中的Ubuntu实例。

根据MongoDB官网文档安装mongodb3.6,通过以下命令可以查看进程占用了那个网络端口:

ubuntu@ip-172-16-0-211:~$ sudo netstat -plant | egrep mongod

tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      2549/mongod

命令结果输出显示用户只允许通过本机的27017端口进行访问,如果想其他系统访问数据库,就需要进行IP绑定。运行ifconfig命令

ubuntu@ip-172-16-0-211:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 0e:5e:76:83:49:3e
          inet addr:172.16.0.211  Bcast:172.16.0.255  Mask:255.255.255.0
          inet6 addr: fe80::c5e:76ff:fe83:493e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:65521 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7358 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:94354063 (94.3 MB)  TX bytes:611646 (611.6 KB)

现在我们知道了我们想要监听的网络地址,打开/etc/mongodb.conf文件,进行编辑,文件修改后如下:

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,172.16.0.211

现在文件中就添加了一个IP地址172.16.0.211, 重启mongod服务。

ubuntu@ip-172-16-0-211:~$ sudo service mongod stop
ubuntu@ip-172-16-0-211:~$ sudo service mongod start
ubuntu@ip-172-16-0-211:~$ sudo netstat -plnt | egrep mongod
tcp        0      0 172.16.0.211:27017      0.0.0.0:*               LISTEN      2892/mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      2892/mongod

可以看到现在除了本机,数据库还可以接受指定的IP的请求。

通过本机连接:

ubuntu@ip-172-16-0-211:~$ mongo localhost
MongoDB shell version v3.6.0-rc2
connecting to: mongodb://127.0.0.1:27017/localhost

通过指定IP连接

ubuntu@ip-172-16-0-211:~$ mongo 172.16.0.211
MongoDB shell version v3.6.0-rc2
connecting to: mongodb://172.16.0.211:27017/test

默认的本机配置是有很多好处的,但是现在就需要明确指定那些网络可以连接数据库,防止不信任的网络连接到系统。保证MongoDB系统不受远程攻击是非常重要的,确保只有在安全清单上的IP才能连接到系统。

你就知道了如何为系统配置其他IP地址以访问数据库,现在就可以为你的复制集进行配置了。不要忘记做备份、监控。如果你不想在这些工作上消耗太多精力,可以了解一下我们的数据库即服务:MongoDB Atlas。

在Ubuntu上开启MongoDB的IP Security的更多相关文章

  1. Ubuntu上安装MongoDB(译)

    add by zhj:直接从第四步开始就可以了,而且安装好MongoDB后会自动启动的,不必自己去执行启动命令 原文:https://docs.mongodb.com/manual/tutorial/ ...

  2. 在 Ubuntu 上安装 MongoDB

    在 Ubuntu 上安装 MongoDB 运行下列命令,导入 MongoDB 公开 GPG 键: sudo apt-key adv --keyserver hkp://keyserver.ubuntu ...

  3. Ubuntu上开启Apache Rewrite功能的方法

    Ubuntu上开启Apache Rewrite功能的方法 本文介绍ubuntn系统中开启apache的urlrewrite功能的方法. 在Windows上开启Apache的urlRewrite非常简单 ...

  4. 如何在 Ubuntu 上安装 MongoDB

    MongoDB 是一个越来越流行的自由开源的 NoSQL 数据库,它将数据存储在类似 JSON 的灵活文档集中,这与 SQL 数据库中常见的表格形式形成对比. 你很可能发现在现代 Web 应用中使用 ...

  5. Ubuntu 上安装 MongoDB

    官方安装文档:https://docs.mongodb.com/manual/installation/ 安装环境: mongodb-linux-x86_64-ubuntu1404-3.2.6.tgz ...

  6. 如何在Ubuntu上开启SSH服务

    更新源列表 打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-- ...

  7. Ubuntu 上配置静态的ip

    先关掉或卸掉 network-manager.然后,改动/etc/network/interfaces 如下:(由于是静态ip,你当然知道把例子中那些东西改成你自己的)auto lo eth0ifac ...

  8. ubuntu上mongodb的安装

    Ubuntu上安装MongoDB的完全步骤以及注意事项 本文我们详细介绍了Ubuntu上安装MongoDB的全部过程,希望本次的介绍能够对您有所帮助. AD: 2013大数据全球技术峰会课程PPT下载 ...

  9. Ubuntu 12.04上安装 MongoDB并运行

    Ubuntu 12.04上安装 MongoDB并运行 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在Terminal输入 sudo apt-key ...

随机推荐

  1. [翻译] ABPadLockScreen

    ABPadLockScreen ABPadLockScreen aims to provide a universal solution to providing a secure keypad/pi ...

  2. Python初学者第十六天 文件处理操作练习

    16day 练习:模拟登陆 1.用户输入账号密码进行登陆: 2.用户信息保存在文件内: 3.用户密码输入错误三次后,锁定用户,下次登陆,检测到这个用户再也登陆不了 #获取用户名及密码f_user = ...

  3. Python学习---深入编码学习1225

    1.1. Python2 Py2中只有2中数据类型,Str和Unicode,而且str中保存的是bytes,Unicode中保存的是unicode 一切我们能看到的明文都是unicode数据类型, b ...

  4. C++通过Callback向C#传递数据

    现在比较流行C#与C++融合:C#做GUI,开发效率高,C++做运算,运行效率高,二者兼得. 但是C++与C#必然存在数据交互,C#与C++dll的数据交互从来都是一个让人头疼的问题. 从调用方式看也 ...

  5. Linux提权后获取敏感信息的方法与途径

    在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享(我的出发点).下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看待事物.我知道 ...

  6. Hive安装报错

    安装好hive后在bin路径下输入hive报错: [ERROR] Terminal initialization failed; falling back to unsupported 原因是hado ...

  7. Java编程规范[转]

    目录 1       概述.... 5 1.1      目标:.... 5 1.2      原则:.... 5 2       Java编程命名规范.... 5 2.1      包的命名标准.. ...

  8. manbook pro和inode联网

    macbook pro可以通过usb以太网转换器来实现有线联网. 1.下载inode 7 2.在终端中输入:sudo /library/StartupItems/iNodeAuthService/iN ...

  9. gluoncv voc_detection

    https://github.com/zhreshold/gluon-cv/commit/73b3986aaa2e0d0e6f3f428c12072e3a9d29905e gluoncv可能版本还没更 ...

  10. 如何使用Loadrunner12录制WebSocket脚本

    简单说一下,关于Loadrunner12对WebSocket的支持可以参照以下文档: http://community.hpe.com/t5/LoadRunner-and-Performance/As ...