面试题答案
一键面试配置步骤
- 绑定IP地址:在MongoDB配置文件(通常是
mongod.conf
)中,通过net.bindIp
参数指定MongoDB实例监听的IP地址。例如:
net:
bindIp: 127.0.0.1,192.168.1.100 # 可同时指定多个IP,127.0.0.1用于本地访问,192.168.1.100用于局域网访问
作用:限制MongoDB仅监听指定的IP地址,防止在不必要的网络接口上暴露,减少潜在的攻击面。
- 防火墙设置:
- Linux系统:使用
iptables
或firewalld
配置防火墙规则。例如,若使用firewalld
,允许特定IP段访问MongoDB端口(默认为27017):
- Linux系统:使用
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="27017" accept'
firewall-cmd --runtime-to-permanent
- Windows系统:在Windows防火墙中创建入站规则,允许特定IP或IP段访问MongoDB端口。 作用:通过防火墙进一步限制网络访问,只允许信任的IP地址或IP段与MongoDB实例通信。
- 副本集内部通信限制:在副本集配置中,确保副本集成员之间的通信也受到适当限制。虽然副本集成员通常在内部网络,但仍可通过子网划分和防火墙规则限制它们之间的通信范围。例如,将副本集成员放在一个独立的子网中,并配置防火墙允许该子网内的通信。 作用:减少副本集内部不必要的网络暴露,即使内部网络存在安全漏洞,也能限制攻击者在副本集内的横向移动。
相关参数作用
- bindIp:决定MongoDB实例监听的IP地址。只绑定必要的IP,如本地回环地址(127.0.0.1)用于本地管理和应用访问,以及特定的局域网或公网IP地址(需谨慎配置公网IP)。若不设置或设置为
0.0.0.0
,MongoDB将监听所有网络接口,增加安全风险。 - 防火墙相关参数:如
firewalld
中的source address
指定允许访问的源IP地址或IP段,port protocol
指定协议(如tcp
),port
指定端口号(如27017)。这些参数精确控制哪些IP可以通过什么协议访问MongoDB的特定端口。