MongoDB安全管理的三種方式介紹
方式一 iptables設定
Linux防火牆設定只有應用程式所在的伺服器ip才能訪問MongoDB所在的伺服器。
Linux禁止某個IP地址訪問其實非常的簡單,最常用的辦法就是使用iptalbes來操作。這個方法跟MongoDB本身沒有關係,而是借用Linux的iptalbes功能,限制允許訪問MongoDB埠的ip地址,具體做法(ip和埠需要讀者自己對應)如下:
# 拒絕所有訪問27017埠的請求
sudo iptables -I INPUT -p tcp --dport 27017 -j DROP
# 允許192.168.1.1伺服器訪問mongo埠
sudo iptables -I INPUT -s 192.168.1.1 -p tcp --dport 27017 -j ACCEPT
sudo iptables-save
或者
vi /etc/sysconfig/iptables
把
iptables -I INPUT -p tcp --dport 27017 -j DROP
iptables -I INPUT -s 192.168.1.1 -p tcp --dport 27017 -j ACCEPT
這兩句加在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
的前面。
然後重啟防火牆
service iptables restart
檢視防火牆狀態
service iptables status
這樣就只允許192.168.1.1伺服器訪問MongoDB服務了。
注意命令的順序不能反了。如果不只限制一個埠而是限制所有埠的訪問把--dport 27017去掉即可。
方式二 hosts.allow和hosts.deny
Linux中的配置檔案/etc/hosts.allow控制可以訪問本機的IP地址,/etc/hosts.deny控制禁止訪問本機的IP。執行的順序是先deny再allow,所以如果兩個檔案的配置有衝突,以/etc/hosts.allow為準。
/etc/hosts.allow和/etc/hosts.deny兩個檔案是控制遠端訪問設定的,透過它們可以允許或者拒絕某個ip或者ip段的客戶訪問linux的某項服務。服務用程式名來識別,比如MongoDB的服務程式名是mongod,我們限制所有ip訪問,除非ip是192.168.1.1。
編輯hosts.deny:
vi /etc/hosts.deny
拒絕一切ip訪問MongoDB服務輸入內容:
# no mongod
mongod:all:deny
Esc輸入:wq儲存離開。
mongod:all:deny表示拒絕所有ip訪問mongod服務。:deny可以省略寫成mongod:all。
編輯hosts.allow:
vi /etc/hosts.allow
允許192.168.1.1訪問MongoDB服務輸入內容:
mongod:192.168.1.1
Esc輸入:wq儲存離開。
修改完後重啟攔截器讓剛才的更改生效:
service xinetd restart
經過設定之後需要進行校驗,測試限制是否生效,如果是比較重要的資料,不滿足於限制ip訪問,那就把使用者認證加上,這個需要讀者自己權衡。
對於安全度要求高的資料庫,還可以啟用SSL。
如果你沒有使用SSL,那麼你在MongoDB客戶端和MongoDB伺服器之間的傳輸的資料就是明文的,容易受到竊聽、篡改和“中間人”攻擊。如果你是透過公網這樣的非安全網路連線到MongoDB伺服器,那麼啟用SSL就顯得非常重要。
詳細的SSL配置可以檢視官網:
。
方式三 不要將MongoDB與其他服務部署到同一機器上
請在啟動MongoDB時關閉NUMA功能,按照提示在啟動命令前加上 numactl --interleave選項,啟動時使用命令如下:
numactl --interleave=all mongod --dbpath=/data/db/ --fork --logpath=/data/logs/db.log
如果系統中沒有numactl命令,使用yum安裝
yum install -y numactl
再使用命令
echo 0 > /proc/sys/vm/zone_reclaim_mode
vi /proc/sys/vm/zone_reclaim_mode
sysctl -w vm.zone_reclaim_mode=0
Linux防火牆設定只有應用程式所在的伺服器ip才能訪問MongoDB所在的伺服器。
Linux禁止某個IP地址訪問其實非常的簡單,最常用的辦法就是使用iptalbes來操作。這個方法跟MongoDB本身沒有關係,而是借用Linux的iptalbes功能,限制允許訪問MongoDB埠的ip地址,具體做法(ip和埠需要讀者自己對應)如下:
# 拒絕所有訪問27017埠的請求
sudo iptables -I INPUT -p tcp --dport 27017 -j DROP
# 允許192.168.1.1伺服器訪問mongo埠
sudo iptables -I INPUT -s 192.168.1.1 -p tcp --dport 27017 -j ACCEPT
sudo iptables-save
或者
vi /etc/sysconfig/iptables
把
iptables -I INPUT -p tcp --dport 27017 -j DROP
iptables -I INPUT -s 192.168.1.1 -p tcp --dport 27017 -j ACCEPT
這兩句加在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
的前面。
然後重啟防火牆
service iptables restart
檢視防火牆狀態
service iptables status
這樣就只允許192.168.1.1伺服器訪問MongoDB服務了。
注意命令的順序不能反了。如果不只限制一個埠而是限制所有埠的訪問把--dport 27017去掉即可。
方式二 hosts.allow和hosts.deny
Linux中的配置檔案/etc/hosts.allow控制可以訪問本機的IP地址,/etc/hosts.deny控制禁止訪問本機的IP。執行的順序是先deny再allow,所以如果兩個檔案的配置有衝突,以/etc/hosts.allow為準。
/etc/hosts.allow和/etc/hosts.deny兩個檔案是控制遠端訪問設定的,透過它們可以允許或者拒絕某個ip或者ip段的客戶訪問linux的某項服務。服務用程式名來識別,比如MongoDB的服務程式名是mongod,我們限制所有ip訪問,除非ip是192.168.1.1。
編輯hosts.deny:
vi /etc/hosts.deny
拒絕一切ip訪問MongoDB服務輸入內容:
# no mongod
mongod:all:deny
Esc輸入:wq儲存離開。
mongod:all:deny表示拒絕所有ip訪問mongod服務。:deny可以省略寫成mongod:all。
編輯hosts.allow:
vi /etc/hosts.allow
允許192.168.1.1訪問MongoDB服務輸入內容:
mongod:192.168.1.1
Esc輸入:wq儲存離開。
修改完後重啟攔截器讓剛才的更改生效:
service xinetd restart
經過設定之後需要進行校驗,測試限制是否生效,如果是比較重要的資料,不滿足於限制ip訪問,那就把使用者認證加上,這個需要讀者自己權衡。
對於安全度要求高的資料庫,還可以啟用SSL。
如果你沒有使用SSL,那麼你在MongoDB客戶端和MongoDB伺服器之間的傳輸的資料就是明文的,容易受到竊聽、篡改和“中間人”攻擊。如果你是透過公網這樣的非安全網路連線到MongoDB伺服器,那麼啟用SSL就顯得非常重要。
詳細的SSL配置可以檢視官網:
。
方式三 不要將MongoDB與其他服務部署到同一機器上
請在啟動MongoDB時關閉NUMA功能,按照提示在啟動命令前加上 numactl --interleave選項,啟動時使用命令如下:
numactl --interleave=all mongod --dbpath=/data/db/ --fork --logpath=/data/logs/db.log
如果系統中沒有numactl命令,使用yum安裝
yum install -y numactl
再使用命令
echo 0 > /proc/sys/vm/zone_reclaim_mode
vi /proc/sys/vm/zone_reclaim_mode
sysctl -w vm.zone_reclaim_mode=0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2145731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB三種聚合命令用法介紹MongoDB
- 資產納管的三種方式介紹
- MongoDB備份方式詳細介紹MongoDB
- MongoDB副本集管理方法介紹MongoDB
- MongoDB管理工具Rockmongo介紹MongoDB
- mysql學習之-三種安裝方式與版本介紹MySql
- MongoDB介紹MongoDB
- 網路安全中最常用的9種滲透測試方式介紹!
- 程式間的五種通訊方式介紹
- HTML中使用CSS的幾種方式介紹HTMLCSS
- 網路安全攻擊方式有幾種?常見型別介紹!型別
- 分散式鎖簡單入門以及三種實現方式介紹分散式
- 學習Python要多久?三種方式學習週期介紹!Python
- MongoDB shell 介紹MongoDB
- MySQL檢視版本號的五種方式介紹MySql
- css和html的四種結合方式介紹CSSHTML
- yum方式安裝MongoDB所需要的資料包列表介紹MongoDB
- 三種解密 HTTPS 流量的方法介紹解密HTTP
- 程式間的五種通訊方式介紹-詳解
- js宣告陣列的幾種方式簡單介紹JS陣列
- redis兩種持久化方式的優缺點介紹Redis持久化
- 連線MySQL資料庫的兩種方式介紹MySql資料庫
- Redis持久化的兩種方式的優缺點介紹Redis持久化
- 簡單介紹MySQL開啟事務的兩種方式MySql
- js中關於定義類的幾種方式介紹JS
- 設定按鈕失效的幾種方式簡單介紹
- 網頁中使用css的幾種方式簡單介紹網頁CSS
- 十九種Elasticsearch字串搜尋方式終極介紹Elasticsearch字串
- LRU演算法四種實現方式介紹演算法
- 幾種常見網路抓包方式介紹
- 簡單介紹redis加鎖常用幾種方式Redis
- 更好的 java 重試框架 sisyphus 配置的 2 種方式介紹Java框架
- 介紹一個MongoDB的替代方案MongoDB
- mongodb常用語句介紹MongoDB
- MongoDB資料模型介紹MongoDB模型
- MongoDB中優雅刪除大量資料的三種方式純尹MongoDB
- 介紹三種檢視MySQL字符集的方法MySql
- mysql鎖之三種行級鎖介紹MySql