您好,登錄后才能下訂單哦!
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配置可以查看官網:
https://docs.mongodb.com/manual/tutorial/configure-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
關于MongoDB中怎么實現安全管理問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。