新聞中心
MongoDB中怎么實現(xiàn)安全管理,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
方式一 iptables設(shè)置
Linux防火墻設(shè)置只有應(yīng)用程序所在的服務(wù)器ip才能訪問MongoDB所在的服務(wù)器。
Linux禁止某個IP地址訪問其實非常的簡單,最常用的辦法就是使用iptalbes來操作。這個方法跟MongoDB本身沒有關(guān)系,而是借用Linux的iptalbes功能,限制允許訪問MongoDB端口的ip地址,具體做法(ip和端口需要讀者自己對應(yīng))如下:
# 拒絕所有訪問27017端口的請求
sudo iptables -I INPUT -p tcp --dport 27017 -j DROP
# 允許192.168.1.1服務(wù)器訪問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
查看防火墻狀態(tài)
service iptables status
這樣就只允許192.168.1.1服務(wù)器訪問MongoDB服務(wù)了。
注意命令的順序不能反了。如果不只限制一個端口而是限制所有端口的訪問把--dport 27017去掉即可。
方式二 hosts.allow和hosts.deny
Linux中的配置文件/etc/hosts.allow控制可以訪問本機的IP地址,/etc/hosts.deny控制禁止訪問本機的IP。執(zhí)行的順序是先deny再allow,所以如果兩個文件的配置有沖突,以/etc/hosts.allow為準。
/etc/hosts.allow和/etc/hosts.deny兩個文件是控制遠程訪問設(shè)置的,通過它們可以允許或者拒絕某個ip或者ip段的客戶訪問linux的某項服務(wù)。服務(wù)用進程名來識別,比如MongoDB的服務(wù)進程名是mongod,我們限制所有ip訪問,除非ip是192.168.1.1。
編輯hosts.deny:
vi /etc/hosts.deny
拒絕一切ip訪問MongoDB服務(wù)輸入內(nèi)容:
# no mongod
mongod:all:deny
Esc輸入:wq保存離開。
mongod:all:deny表示拒絕所有ip訪問mongod服務(wù)。:deny可以省略寫成mongod:all。
編輯hosts.allow:
vi /etc/hosts.allow
允許192.168.1.1訪問MongoDB服務(wù)輸入內(nèi)容:
mongod:192.168.1.1
Esc輸入:wq保存離開。
修改完后重啟攔截器讓剛才的更改生效:
service xinetd restart
經(jīng)過設(shè)置之后需要進行校驗,測試限制是否生效,如果是比較重要的數(shù)據(jù),不滿足于限制ip訪問,那就把用戶認證加上,這個需要讀者自己權(quán)衡。
對于安全度要求高的數(shù)據(jù)庫,還可以啟用SSL。
如果你沒有使用SSL,那么你在MongoDB客戶端和MongoDB服務(wù)器之間的傳輸?shù)臄?shù)據(jù)就是明文的,容易受到竊聽、篡改和“中間人”攻擊。如果你是通過公網(wǎng)這樣的非安全網(wǎng)絡(luò)連接到MongoDB服務(wù)器,那么啟用SSL就顯得非常重要。
詳細的SSL配置可以查看官網(wǎng):
/tupian/20230521/ 。
方式三 不要將MongoDB與其他服務(wù)部署到同一機器上
請在啟動MongoDB時關(guān)閉NUMA功能,按照提示在啟動命令前加上 numactl --interleave選項,啟動時使用命令如下:
numactl --interleave=all mongod --dbpath=/data/db/ --fork --logpath=/data/logs/db.log
如果系統(tǒng)中沒有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
關(guān)于MongoDB中怎么實現(xiàn)安全管理問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。
新聞標題:MongoDB中怎么實現(xiàn)安全管理-創(chuàng)新互聯(lián)
URL標題:http://ef60e0e.cn/article/dhdohi.html