如何安全地配置一个生产环境的MongoDB服务器?
来源:互联网 发布:淘宝哪款踏步机好 编辑:程序博客网 时间:2024/06/05 19:48
如何安全地配置一个生产环境的MongoDB服务器?
安全配置一个生产环境的MongoDB服务器
如果MongoDB是一个为你提供选择的文档存储器,那么这篇文章会帮助你,安全妥善地配置一切就绪的生产环境。
MongoDB安装指南包括了如何在一个droplet上安装MongoDB。
请阅读安全与认证官方文件。
步骤
推荐两个不同的方法,但都可行。第一个是通过一个SSH通道安全地连接到你的数据库。另一个是允许在网上可以访问到你的数据库。两种方法,推荐前者。
通过SSH通道连接
通过一个SSH通道连接到你的Mongo虚拟专用服务器,你可以避免很多潜在的安全问题。警告:你的VPS一定要完全锁定,不能对其他端口开放。建议SSH配置为只有秘钥或秘钥加密码。
要建立一个SSH通道,你需要保证:
· 你可以通过SSH进入你的MongoDroplet
· 你的Mongo实例绑定到本地主机
然后,运行以下命令来初始化连接:
# The \s are just to multiline the command and make it more readablessh \-L 4321:localhost:27017 \-i ~/.ssh/my_secure_key \ssh_user@mongo_db_droplet_host_or_ip
我们一步一步来看:
1. SSH通道只需要SSH,你不需要其他特别的程序/二进制文件。
2. 当通过SSH进入MongoDB Droplet时, `-L` 选项会告诉SSH设置一个通道,让当前机器的4321端口传输到27017端口的主机 `localhost`。
3. `-i` 选项只是表示将上面的连接到一个SSH秘钥,而不是一个密码。
4. `ssh_user@mongo_db_droplet_host_or_ip` 是建立一个SSH连接的标准。
其中的第二条是真正的精华,决定你怎样告诉你的应用程序或服务器连接到你的MongoDBDroplet。
通过互联网连接
如果通过SSH通道连接不是一个必然的选择,你可以通过互联网连接,在这里有一些安全策略需要考虑。
首先是要使用非标准端口。这更多的像是一种模糊处理的技术,意思是默认连接适配器没有用处。
# In your MongoDB configuration file, change the following line to something other than 27017port = 27017
第二,你要把Mongo直接绑定到你的应用程序服务器的IP地址上,这意味着Mongo会只接受连接。
# In your MongoDB configuration file, change the following line to your application server's IP addressbind_ip = 127.0.0.1
最后是,可以考虑使用MongoDB的认证功能,并设置一个用户名和密码。要进行这项设置,需将MongoDb shell作为管理员与 `mongo` 命令连接,并添加一个用户。完成时,要确认你是在MongoDB连接字符串上增加新添加的用户名/密码。
结论
希望你能明白,对于MongoDB安全性来说,以上内容只是一个开始,而非全部或结束。有个关键因素这里没有提到,是服务器防火墙规则。在他们的安全文档里,可以看到对于MongoDB,10gen防火墙有怎样的建议。
- 如何安全地配置一个生产环境的MongoDB服务器?
- MongoDB实战-生产环境中分片的部署与配置
- LNMP——Mongodb生产环境配置
- 一般生产环境LINUX服务器配置
- 一般生产环境LINUX服务器配置
- Hadoop生产环境的配置
- 关于生产环境服务器的登录安全问题
- mongodb生产环境最佳实践
- 网站环境apache + php + mysql 的XAMPP,如何实现一个服务器上配置多个网站?
- mysql在生产环境下的配置
- 生产环境 MySQL Replication 的推荐配置
- 生产环境下的hadoop 配置实战
- MySQL的生产环境My.cnf配置
- 生产环境elasticsearch的配置建议
- Hadoop生产环境的配置札记
- 如何获取生产环境的 Device Token?
- 生产环境的java项目如何更新
- 一个奇怪的生产环境配置ldap服务引起的故障及解决过程分享
- (java)仿百度文库方案
- cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
- SequoiaDB:比MongoDB领先一到两年 打造企业级NoSQL数据库
- DB2中CAST的问题
- 对象的销毁原则
- 如何安全地配置一个生产环境的MongoDB服务器?
- [Ajax]十个优秀的 Ajax/Javascript实例网站
- sql serve 整表null值替换为0
- String类编译器与运行期分析
- iOS Programming 101: How To Customize Tab Bar Background and Appearance
- uva 539 The Settlers of Catan
- 【推荐】华清远见2014新版教材配套视频及样章下载
- 斗之气
- 串口通信示例