邓开表同学实战MongoDB系列文章,非常不错,赞!大力推荐!
本文主要讲述MongoDB安全实战之网络安全加固的使用和配置的实战经验,非常值得一看。
前面系列文章:
MongoDB安全实战之Kerberos认证
MongoDB Compass–MongoDB DBA必备的管理工具
MongoDB安全实战之审计
MongoDB安全实战之SSL协议加密
1
1、前言
为了降低整个MongoDB系统风险,确保只有受信任的主机访问MongoDB。
2
2、网络加固
2.1
2.1 防火墙
防火墙允许管理员通过对网络通信提供细粒度控制来过滤和控制对系统的访问。而对于MongoDB的管理员,限制传入流量的特定端口上的特定系统和来自不受信任的主机限制流量是非常重要的。
2.2
2.2 为MongoDB配置防火墙
目前Linux系统,iptables提供用于管理Linux内核的Netfilter框架或网络数据包过滤功能。这些防火墙规则使管理员能够控制哪些主机可以连接到系统,并通过限制连接到系统的主机来限制风险暴露。
在iptables的配置规则分为链,它描述过程和处理特定的交通流。链有一个顺序,而且包必须通过链中的早期规则来达到后面的规则。这里只处理以下两个链:
输入:
控制所有传入的流量
输出:
控制所有传出的流量
默认情况下,iptables默认的是让所有的连接和流量除非显式禁用。以下配置更改规则,显式地允许来自特定地址和端口的流量,使用缺省策略删除未显式允许的所有流量。
在配置防火墙之前,先测试远程连接。(远程客户端IP地址:192.168.43.95)
成功!之后,关闭mongod服务,配置防火墙。
iptables -A INPUT -s 192.168.43.95 -p tcp–destination-port 27017 -m state –state NEW,ESTABLISHED -j DROP
iptables -A OUTPUT -d 192.168.43.95 -p tcp–source-port 27017 -m state –state ESTABLISHED -j DROP
配置完,防火墙之后,启动mongod服务,并重新远程用Compass连接MongoDB。
成功拒绝来自192.168.43.95远程客户端的访问。