Mongo安全 之 SSL

目录

引言

上一篇Mongo安全 之 鉴权的文章中 我们讨论Mongo的鉴权和权限控制

这一篇我们将详细讨论如何打开和配置Mongo SSL 即Mongo安全 之 SSL

下一篇Mongo安全 之 拾遗我们还会讨论Mongo安全的其他方面

安装

在正式开始讨论SSL之前 我们先搭建Mongo服务 以验证SSL问题

安装Mongo

上一篇Mongo安全 之 鉴权中我们介绍了使用Docker安装Mongo的方法 这里将介绍基于Ubuntu 1604 LTS使用apt包管理器安装最新Mongo的方法

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt-get update

sudo apt-get install -y mongodb-org

其他系统的安装方法可以参考Install MongoDB Community Edition

运行Mongo

sudo service mongod start

如果想要重启Mongo服务 可以使用restart参数

普通连接

通过上述安装和运行命令之后 我们就可以访问Mongo了

mongo --host 192.168.56.101

默认配置下 除主机外是无法访问Mongo服务的 需要删除或注释掉/etc/mongodb.conf中的"bindIp: 127.0.0.1"后重启Mongo服务 关于bindIp的更多介绍 可以参考Mongo安全 之 拾遗

# 切换至auth数据库 如果没有该数据库则新建
use auth

# 创建collection "users"
db.createCollection("users")

上述连接的Mongo地址192.168.56.101为本文测试地址 请根据实际情况替换成相应的Mongo地址

然后 我们打开WireShark工具抓取指定网卡的网络包

关于Wireshark的使用教程 请读者自行搜索参考

接着 我们进行插入数据库的操作

# 向collection "users"插入数据
db.users.insert({"email": "test@test.com", "password": "password"})

此时 WireShark抓取的数据包 如下图所示

mongo-ssl-01.png

从图中我们可以看到 此时发送的数据都是明文的 这点和HTTP类似 因此 才有了下面要讨论的SSL

SSL连接

制作证书

在使用SSL连接之前 我们首先需要制作相关的证书

这里 我们使用openssl来制作和管理自己的证书 命令如下

sudo openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
sudo cat mongodb-cert.key mongodb-cert.crt > mongodb.pem

sudo openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out client-cert.crt -keyout client-cert.key
sudo cat client-cert.key client-cert.crt > client.pem

更新配置

制作完证书之后 我们需要更新Mongo配置以使用这些证书 修改/etc/mongod.conf文件中的net内容如下

# network interfaces
net:
  port: 27017
  #bindIp: 127.0.0.1
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
    CAFile: /etc/ssl/client.pem

接着 不要忘记重启Mongo服务

sudo service mongod restart

下载证书

成功配置Mongo服务之后 我们还需要下载证书以在客户端使用

scp username@192.168.56.101:/etc/ssl/*.pem ~/Downloads

连接数据库

准备好Mongo服务和证书之后 客户端就可以和Mongo服务建立SSL连接了

mongo --host 192.168.56.101:27017 --ssl --sslPEMKeyFile ~/Downloads/client.pem --sslCAFile ~/Downloads/mongodb.pem

然后 对数据库进行操作

use auth

db.createCollection("users")

接着 向数据库插入一条数据 同时 打开WireShark进行抓包

db.users.insert({"email": "test@test.com", "password": "password"})

此时 在插入数据的时候 WireShark抓包的网络包 如下图所示

mongo-ssl-02.png

从图中我们可以看到 此时发送的数据都是加密后的数据 由此SSL配置成功

小结

SSL作为网络开发的标准配置 在开发任何网络系统时都是有必要考虑和添加的

本文配合Nginx配置实战中的HTTPS 可以使用最小的代价(只需要申请相应证书) 实现最高的安全性

这么划算的买卖 还在犹豫什么呢?

参考

更多文章, 请支持我的个人博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容