mongod.conf
配置文件中设置security.authorization: enabled
,要求所有用户必须通过用户名和密码认证才能访问数据库。mongo shell
连接到MongoDB,创建管理员账户并分配userAdminAnyDatabase
、dbAdminAnyDatabase
等角色(如admin
用户),避免使用默认的无密码账户。read
、readWrite
、dbOwner
),限制其对数据库的操作范围(例如,报表用户仅授予read
权限,避免误删数据)。mongod.conf
中的bindIp
参数,仅允许受信任的IP地址或网络访问(如bindIp: 127.0.0.1,192.168.1.100
),避免暴露在公网。iptables
或firewalld
配置规则,仅允许特定IP(如应用服务器IP)访问MongoDB默认端口(27017),拒绝其他IP的连接请求。mongod.conf
中配置net.ssl.mode: requireSSL
、net.ssl.PEMKeyFile: /path/to/cert.pem
、net.ssl.CAFile: /path/to/ca.pem
,加密客户端与服务器之间的通信,防止中间人攻击。mongod.conf
中配置auditLog.destination: file
、auditLog.path: /var/log/mongodb/audit.log
,记录所有用户的操作(如查询、插入、删除、权限变更),便于后续追溯异常行为。mongostat
(监控操作速率)、mongotop
(监控集合级性能)或第三方工具(如Prometheus+Granafa、Nagios)监控数据库性能;设置告警规则(如CPU利用率超过80%、连接数超过阈值),及时响应潜在威胁。mongodump
工具定期备份数据库(如每日凌晨2点),将备份文件存储在异地(如云存储OSS、另一台服务器),并进行完整性校验(如MD5校验),防止数据丢失或篡改。mongodb
),并通过chown -R mongodb:mongodb /var/lib/mongodb
设置数据目录权限,避免以root
用户运行MongoDB,降低权限提升风险。mongod.conf
中设置net.http.RESTInterfaceEnabled: false
、net.http.JSONPEnabled: false
,关闭HTTP状态接口和JSONP访问,防止未经认证的远程访问。setsebool -P mongod_port_t 1
),避免因SELinux限制导致服务异常。