保护你存储在MongoDB中的数据的最基本方法是限制对运行数据库的服务器的网络访问。做到这一点的方法之一是提供一个_虚拟专用网络_(VPN)。VPN将其连接呈现为一个本地私人网络,允许其中的服务器之间进行安全通信。通过在VPN后面运行MongoDB,你可以阻止没有连接到同一VPN的任何机器的访问。
但是,就其本身而言,VPN可能不足以阻止未经授权的用户访问你的MongoDB安装。例如,可能有大量的人需要访问你的VPN,但只有少数人需要访问你的Mongo数据库。你可以通过在你的数据库服务器上设置一个_防火墙_,对谁可以访问你的数据进行更细化的控制。
防火墙根据一组用户定义的规则过滤传入和传出的流量,从而提供网络安全。防火墙工具通常允许你高度精确地定义规则,使你能够灵活地允许来自特定IP地址的连接访问你服务器上的特定端口。例如,你可以编写规则,只允许应用服务器访问你的数据库服务器上由MongoDB安装使用的端口。
另一种限制数据库的网络暴露的方法是配置 IP绑定.默认情况下,MongoDB在安装时只绑定到localhost。这意味着,如果没有进一步的配置,一个新的Mongo安装将只能接受来自localhost的连接,或者安装MongoDB实例的同一台服务器。
这个默认设置是安全的,因为它意味着数据库只能被那些已经有权限进入安装它的服务器的人访问。然而,如果你需要从另一台机器上远程访问数据库,这种设置将导致问题。在这种情况下,你可以另外将你的实例绑定到远程计算机可以到达数据库服务器的IP地址或主机名。