MongoDB中怎么实现安全管理

46次阅读
没有评论

共计 2046 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

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 中怎么实现安全管理问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2046字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)