MongoDB安全管理的三種方式介紹

chenfeng發表於2017-10-07
方式一 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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2145731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章