Mongo安全 之 SSL

目錄

引言

上一篇Mongo安全 之 鑒權(quán)的文章中 我們討論Mongo的鑒權(quán)和權(quán)限控制

這一篇我們將詳細(xì)討論如何打開(kāi)和配置Mongo SSL 即Mongo安全 之 SSL

下一篇Mongo安全 之 拾遺我們還會(huì)討論Mongo安全的其他方面

安裝

在正式開(kāi)始討論SSL之前 我們先搭建Mongo服務(wù) 以驗(yàn)證SSL問(wèn)題

安裝Mongo

上一篇Mongo安全 之 鑒權(quán)中我們介紹了使用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

其他系統(tǒng)的安裝方法可以參考Install MongoDB Community Edition

運(yùn)行Mongo

sudo service mongod start

如果想要重啟Mongo服務(wù) 可以使用restart參數(shù)

普通連接

通過(guò)上述安裝和運(yùn)行命令之后 我們就可以訪問(wèn)Mongo了

mongo --host 192.168.56.101

默認(rèn)配置下 除主機(jī)外是無(wú)法訪問(wèn)Mongo服務(wù)的 需要?jiǎng)h除或注釋掉/etc/mongodb.conf中的"bindIp: 127.0.0.1"后重啟Mongo服務(wù) 關(guān)于bindIp的更多介紹 可以參考Mongo安全 之 拾遺

# 切換至auth數(shù)據(jù)庫(kù) 如果沒(méi)有該數(shù)據(jù)庫(kù)則新建
use auth

# 創(chuàng)建collection "users"
db.createCollection("users")

上述連接的Mongo地址192.168.56.101為本文測(cè)試地址 請(qǐng)根據(jù)實(shí)際情況替換成相應(yīng)的Mongo地址

然后 我們打開(kāi)WireShark工具抓取指定網(wǎng)卡的網(wǎng)絡(luò)包

關(guān)于Wireshark的使用教程 請(qǐng)讀者自行搜索參考

接著 我們進(jìn)行插入數(shù)據(jù)庫(kù)的操作

# 向collection "users"插入數(shù)據(jù)
db.users.insert({"email": "test@test.com", "password": "password"})

此時(shí) WireShark抓取的數(shù)據(jù)包 如下圖所示

mongo-ssl-01.png

從圖中我們可以看到 此時(shí)發(fā)送的數(shù)據(jù)都是明文的 這點(diǎn)和HTTP類(lèi)似 因此 才有了下面要討論的SSL

SSL連接

制作證書(shū)

在使用SSL連接之前 我們首先需要制作相關(guān)的證書(shū)

這里 我們使用openssl來(lái)制作和管理自己的證書(shū) 命令如下

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

更新配置

制作完證書(shū)之后 我們需要更新Mongo配置以使用這些證書(shū) 修改/etc/mongod.conf文件中的net內(nèi)容如下

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

接著 不要忘記重啟Mongo服務(wù)

sudo service mongod restart

下載證書(shū)

成功配置Mongo服務(wù)之后 我們還需要下載證書(shū)以在客戶(hù)端使用

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

連接數(shù)據(jù)庫(kù)

準(zhǔn)備好Mongo服務(wù)和證書(shū)之后 客戶(hù)端就可以和Mongo服務(wù)建立SSL連接了

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

然后 對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作

use auth

db.createCollection("users")

接著 向數(shù)據(jù)庫(kù)插入一條數(shù)據(jù) 同時(shí) 打開(kāi)WireShark進(jìn)行抓包

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

此時(shí) 在插入數(shù)據(jù)的時(shí)候 WireShark抓包的網(wǎng)絡(luò)包 如下圖所示

mongo-ssl-02.png

從圖中我們可以看到 此時(shí)發(fā)送的數(shù)據(jù)都是加密后的數(shù)據(jù) 由此SSL配置成功

小結(jié)

SSL作為網(wǎng)絡(luò)開(kāi)發(fā)的標(biāo)準(zhǔn)配置 在開(kāi)發(fā)任何網(wǎng)絡(luò)系統(tǒng)時(shí)都是有必要考慮和添加的

本文配合Nginx配置實(shí)戰(zhàn)中的HTTPS 可以使用最小的代價(jià)(只需要申請(qǐng)相應(yīng)證書(shū)) 實(shí)現(xiàn)最高的安全性

這么劃算的買(mǎi)賣(mài) 還在猶豫什么呢?

參考

更多文章, 請(qǐng)支持我的個(gè)人博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闽巩,隨后出現(xiàn)的幾起案子锯仪,更是在濱河造成了極大的恐慌,老刑警劉巖炊汤,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜗搔,死亡現(xiàn)場(chǎng)離奇詭異渔工,居然都是意外死亡豫柬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)扑浸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烧给,“玉大人,你說(shuō)我怎么就攤上這事喝噪〈〉眨” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵酝惧,是天一觀的道長(zhǎng)榴鼎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)晚唇,這世上最難降的妖魔是什么巫财? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮哩陕,結(jié)果婚禮上平项,老公的妹妹穿的比我還像新娘。我一直安慰自己悍及,他們只是感情好闽瓢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著心赶,像睡著了一般扣讼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缨叫,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天椭符,我揣著相機(jī)與錄音,去河邊找鬼弯汰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛湖雹,可吹牛的內(nèi)容都是我干的咏闪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼摔吏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鸽嫂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起征讲,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤据某,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后诗箍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體癣籽,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筷狼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓶籽。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖埂材,靈堂內(nèi)的尸體忽然破棺而出塑顺,到底是詐尸還是另有隱情,我是刑警寧澤俏险,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布严拒,位于F島的核電站,受9級(jí)特大地震影響竖独,放射性物質(zhì)發(fā)生泄漏裤唠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一预鬓、第九天 我趴在偏房一處隱蔽的房頂上張望巧骚。 院中可真熱鬧,春花似錦格二、人聲如沸劈彪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沧奴。三九已至,卻和暖如春长窄,著一層夾襖步出監(jiān)牢的瞬間滔吠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工挠日, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疮绷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓嚣潜,卻偏偏與公主長(zhǎng)得像冬骚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懂算,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,848評(píng)論 6 342
  • 原文: 高性能網(wǎng)絡(luò)瀏覽器-第四章傳輸層安全性(Transport Layer Security,TLS) 翻譯: ...
    夢(mèng)很想家閱讀 4,658評(píng)論 2 6
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理只冻,服務(wù)發(fā)現(xiàn),斷路器计技,智...
    卡卡羅2017閱讀 134,699評(píng)論 18 139
  • 目錄 準(zhǔn)備 分析2.1. 三次握手2.2. 創(chuàng)建 HTTP 代理(非必要)2.3. TLS/SSL 握手2.4. ...
    RunAlgorithm閱讀 38,302評(píng)論 12 117
  • 3.1. 介紹 現(xiàn)在喜德,您已經(jīng)安裝了Wireshark并有可能熱衷于開(kāi)始捕捉您的第一個(gè)數(shù)據(jù)包。在接下來(lái)的章節(jié)中垮媒,我們...
    wwyyzz閱讀 1,390評(píng)論 0 1