本文翻译之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. 初始python(三)

    1. 循环 if, while, forbreak : 结束整个循环continue :跳出当前这次循环,但不结束整个循环else :结束整个循环后才执行,不能与break合用,但可以与continu ...

  2. Bypass xss过滤的测试方法

    0x00 背景 本文来自于<Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters>其中的byp ...

  3. CXF+JAXB处理复杂数据

    CXF+JAXB处理复杂数据   CXF默认使用JAXB 来实现对象和XML之间的映射.在前面的例子 中,使用CXF发布的Webservice,其方法的参数和返回值都是简单类型. 本文讨论对象复杂性的 ...

  4. 怎么在Linux环境下通过VS Code调试Python 3+?

    今天突然想写一写Python了,于是就开始弄.使用源码包安装好Python3.6.6之后,发现Linux下只能通过python3来调用python 3.6.6.如果直接使用python的话,调用的是系 ...

  5. Webserver管理系列:12、开启关闭Ping命令

    有些时候站点打开速度会非常慢,我们要排查故障所在.须要用到Ping命令.可是Windows Server 2008防火墙默认是关闭Ping的 我们能够通过下面方法开启Ping 打开防火墙->高级 ...

  6. Spring4 SpringMVC Hibernate4 Freemaker 整合样例

    更正改动(2014-05-30 13:47:22):有的IDE中web.xml会报这个错: cvc-complex-type.2.4.a: Invalid content was found star ...

  7. iOS获取当前连接的wifi信息

    导入框架CaptiveNetwork #import <SystemConfiguration/CaptiveNetwork.h> 获取当前连接的wifi信息 // 只能获取当前的SSID ...

  8. java学习笔记 --- 多线程(多线程的控制)

      1.线程休眠   public static void sleep(long millis) public class ThreadSleep extends Thread { @Override ...

  9. Android攻城狮学习笔记—入门篇二

    第七章  跑马灯 activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  10. ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)

    这篇文章主要介绍了oracle中rownum和row_number()的使用方法以及区别和联系,十分的详细,有需要的小伙伴可以参考下.   row_number()over(partition by ...