MongoDB如何验证相关参数
本文小编为大家详细介绍“MongoDB如何验证相关参数”,内容详细,步骤清晰,细节处理妥当,希望这篇“MongoDB如何验证相关参数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
公司主营业务:网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出石河子免费做网站回馈大家。
一、验证参数
1.authenticationMechanisms
从4.0版本开始,移除了废除的
MONGODB-CR
密码验证机制
作用:指定密码验证机制,只有该参数列表里有的密码验证机制才能够被使用。
**默认值:**MONGODB-X509,SCRAM-SHA-256和SCRAM-SHA-1
MONGODB-X509:用于TLS/SSL证书身份验证
SCRAM-SHA-256:使用SHA-256 哈希函数加密,并且需要将
featureCompatibilityVersion
设置为4才可以使用SCRAM-SHA-1:使用SHA-1 哈希函数加密,默认加密方式。
可用对象:mongod和mongos
注意:只能在数据库启动指定该参数
mongod --setParameter authenticationMechanisms=PLAIN,SCRAM-SHA-256 --auth
2.clusterAuthMode
作用:集群验证模式,支持sendX509
和x509
。在集群滚动升级时,设置为x509
用于集群成员之间的验证,可以大大减少停机时间。
默认:undefined,未指定
可用对象:mongod和mongos
语法:
db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )
更详细信息,请查看官方文档:https://docs.mongodb.com/manual/tutorial/configure-ssl/
3.enableLocalhostAuthBypass
作用:启用本机无密码登录数据库,也就是可以通过本机无密码登录数据库。禁用则设置为0
或false
。一般用在新装的数据库上创建第一个管理员用户。一旦创建了管理员,建议关闭该参数。
默认:启用(true
或1
)
可用对象:mongod和mongos
语法:
mongod --setParameter enableLocalhostAuthBypass=true
注意:无法在命令行修改改参数,只能在配置文件中指定。或者启动时通过
mongod --setParameter
方式修改。
更详细信息,请查看官方文档:https://docs.mongodb.com/manual/core/security-users/#localhost-exception
4.KeysRotationIntervalSec
从3.6版本开始引入的该参数
作用:指定在转到下一个签名键之前HMAC签名键有效的秒数。此参数主要用于方便身份验证测试。
默认:7776000 秒(90天)
语法:
mongod --setParameter KeysRotationIntervalSec=10000
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
5.ldapUserCacheInvalidationInterval
作用:使用LDAP验证方式来部署MongoDB.
mongod实例在外部用户缓存刷新之间等待的时间间隔(以秒为单位)。在MongoDB刷新外部用户缓存之后,当经过LDAP授权的用户下一次发出操作时,MongoDB重新从LDAP服务器获取授权数据。
增加该值会增加MongoDB和LDAP服务器不同步的时间,但会减少LDAP服务器上的负载。相反,减少指定的值会减少MongoDB和LDAP服务器不同步的时间,同时增加LDAP服务器上的负载。
可用对象:mongod
默认:30 秒
更详细信息,请查看官方文档:https://docs.mongodb.com/manual/core/security-ldap-external/#security-ldap-external
6.ldapUseConnectionPool
从4.0.9版本开始引入该参数
作用:指定当连接LDAP服务器时验证时是否使用连接池。
默认:
4.2版本开始:
Windows平台默认值:
true
MongoDB企业版二进制链接到
libldap_r
的Linux平台默认:true
MongoDB企业版二进制链接到
libldap
的Linux平台默认:false
4.0.9到4.2版本默认:
false
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
7.ldapConnectionPoolUseLatencyForHostPriority
4.2.1和4.0.13版本引入该参数
作用:用于确定LDAP连接池是否应该使用LDAP服务器的延迟来确定连接顺序(从延迟最低到延迟最高)。
默认:true
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
8.ldapConnectionPoolMinimumConnectionsPerHost
4.2.1和4.0.13版本引入该参数
作用:每个LDAP服务器保持打开连接得最小数量。
默认:1
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
9.ldapConnectionPoolMaximumConnectionsPerHost
4.2.1和4.0.13版本引入该参数
作用:每个LDAP服务器保持打开连接得最大数量。
默认:2,在4.4版本之前默认值为:unset
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
10.ldapConnectionPoolHostRefreshIntervalMillis
4.2.1和4.0.13版本引入该参数
作用:LDAP连接池的运行状况检查之间间隔的毫秒数。
默认:60000
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
11.ldapConnectionPoolIdleHostTimeoutSecs
4.2.1和4.0.13版本引入该参数
作用:连接到LDAP服务器的池连接在关闭前可以保持空闲的最大秒数。
默认:300
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
12.ocspEnabled
4.4版本开始引入该参数,只对
linux
和MacOS
平台可用。
作用:指定是否启用OCSP
(Online Certificate Status Protocol)
默认:true
注意:无法在命令行修改改参数,只能在配置文件中指定。或者启动时通过
mongod --setParameter ocspEnabled=false
方式修改。
13.ocspValidationRefreshPeriodSecs
4.4版本开始引入该参数,仅对
linux
平台可用。
作用:在刷新OCSP状态之前等待的秒数。应该指定1或1以上数值
默认:-1
注意:无法在命令行修改改参数,只能在配置文件中指定。或者启动时通过
mongod --setParameter ocspValidationRefreshPeriodSecs=300
方式修改。
14.opensslCipherConfig
3.6版本开始引入该参数,从4.0开始当使用本地TLS/SSL库,将支持Linux/BSD,不再支持Windows和MacOS。
作用:使用TLS/SSL加密时,为OpenSSL指定密码字符串。
默认:空
例子:
对于版本4.2及更高版本,最好使用TLS选项而不是SSL选项。TLS选项具有与SSL选项相同的功能。
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL@STRENGTH' --tlsMode requireTLS --tlsCertificateKeyFile Certs/server.pem
对于4.0及之前版本:
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL@STRENGTH' --sslMode requireSSL --sslPEMKeyFile Certs/server.pem
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
15.opensslDiffieHellmanParameters
3.6版本开始引入该参数,仅对
linux
平台可用。
作用:指定包含OpenSSL Diffie-Hellman参数的PEM文件的路径。通过指定OpenSSL Diffie-Hellman参数,可以在TLS/SSL加密期间支持 Ephemeral Diffie-Hellman (DHE)密码套件。
Ephemeral Diffie-Hellman (DHE)密码套件(Ephemeral Elliptic Curve Diffie-Hellman (ECDHE)密码套件)提供 Forward Secrecy
, Forward Secrecy
密码套件创建临时会话密钥,该密钥由服务器的私钥保护,但从不传输。这确保了即使服务器的私钥被泄露,您也不能使用泄露的密钥解密过去的会话。
默认:空
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
16.saslauthdPath
只用于MongoDB企业版(除了Windows的MongoDB企业版)。
作用:指定saslauthd实例用于代理身份验证的Unix Domain Socket的路径。
可用对象:mongod和mongos
默认:空
17.saslHostName
只用于MongoDB企业版
作用:为了配置SASL和Kerberos身份验证,saslHostName覆盖了MongoDB的默认主机名检测。
除了配置SASL和Kerberos之外,saslHostName不会影响mongod或mongos实例的主机名。
可用对象:mongod和mongos
默认:空
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
18.saslServiceName
只用于MongoDB企业版
作用:允许用户在每个实例的基础上覆盖Kerberos主体名的默认Kerberos服务名组件。
默认:mongodb
可用对象:mongod和mongos
注意:无法在命令行修改改参数,只能在启动时通过
mongod --setParameter
方式修改。
19.scramIterationCount[有用]
作用:更改所有新的SCRAM-SHA-1
密码使用的哈希迭代次数。更多的迭代增加了客户端向MongoDB进行身份验证所需的时间,但也降低了密码被暴力的可能性。默认值对于大多数常见用例和需求来说已经足够了。
默认:10000
可用对象:mongod和mongos
注意:修改该参数不会对之前密码产生影响,值必须大于5000。可在命令行和mongod中修改。
mongod --setParameter scramIterationCount=12000
db.adminCommand( { setParameter: 1, scramIterationCount: 12000 } )
20.scramSHA256IterationCount
4.0版本引入该参数
作用:和scramIterationCount参数作用差不多,只是针对的是SCRAM-SHA-256
新密码
默认:15000
可用对象:mongod和mongos
21.sslMode
配置ssl,可配置为 preferSSL
或requireSSL
可用对象:mongod和mongos
db.adminCommand( { setParameter: 1, sslMode: “preferSSL” } )
22.tslMode
4.2版本引入该参数
配置tls,可配置为preferTLS
和requireTLS
可用对象:mongod和mongos
db.adminCommand( { setParameter: 1, tlsMode: “preferTLS” } )
23.tlsOCSPStaplingTimeoutSecs
4.4版本引入,只对Linux可用
作用:mongod/mongos实例等待接收其证书的OCSP状态响应的最大秒数。指定值应该>=1,如果未设置则使用tlsOCSPVerifyTimeoutSecs
参数的值。
默认:-1
可用对象:mongod和mongos
可在配置文件中或mongod命令行中指定,mongod --setParameter tlsOCSPStaplingTimeoutSecs=20
24.tlsOCSPVerifyTimeoutSecs
4.4版本引入,对Linux/Windows可用
作用:mongod/mongos实例等待接收其证书的OCSP状态响应的最大秒数。指定值应该>=1。
默认:5
可用对象:mongod和mongos
25.tlsWithholdClientCertificate
4.2版本引入
作用:当未设置–tlsClusterFile时,可以通过--tlsClusterFile
选项或--tlsCertificateKeyFile
选项为mongod设置TLS证书。 如果设置了TLS证书,则默认情况下,实例在与部署中的其他mongod实例或mongos实例启动集群内通信时,实例会发送证书。 将tlsWithholdClientCertificate设置为1或true可以指示实例在这些通信期间不发送其TLS证书。 在部署的所有成员上将此选项与--tlsAllowConnectionsWithoutCertificates
一起使用(以允许没有证书的入站连接)。 tlsWithholdClientCertificate与--clusterAuthMode x509
互斥。
默认:false
可用对象:mongod和mongos
26.tlsX509ClusterAuthDNOverride
4.2版本引入
作用:实例还可以用来标识部署成员的备用专有名称(Distinguished Name DN)。
对于将x.509证书用于clusterAuthMode的MongoDB部署,在群集内部通信期间,部署成员使用x.509证书(如果指定,则使用net.tls.clusterFile和net.tls.certificateKeyFile)相互标识。 对于同一部署的成员,其证书中的DN必须具有相同的组织属性(O),组织单位属性(OU)和域组件(DC)。
如果为成员设置了tlsX509ClusterAuthDNOverride,则该成员在比较显示的证书的DN成分(O,OU和DC)时也可以使用替代值。 那就是成员对照其net.tls.clusterFile / net.tls.certificateKeyFile检查所提供的证书。 如果DN不匹配,则成员将根据tlsX509ClusterAuthDNOverride值检查显示的证书。
默认:false
可用对象:mongod和mongos
如果设置,则必须在所有成员实例上设置。
27.tlsX509ExpirationWarningThresholdDays
4.4版本引入
作用:从MongoDB 4.4开始,如果提供的x.509证书在mongod / mongos系统时钟的30天内过期,则mongod / mongos会在连接时记录警告。 使用tlsX509ExpirationWarningThresholdDays
参数来控制证书到期警告阈值:最小可设置为0
增加参数值以在证书到期日期之前触发警告。
减小参数值可在接近证书到期日期时触发警告。
将参数设置为0,禁用警告。
默认:30
可用对象:mongod和mongos
mongod --setParameter / mongos --setParameter
setParameter
28.sslWithholdClientCertificate
4.2开始废弃该参数,由
tlsWithholdClientCertificate
参数代替
默认:false
可用对象:mongod和mongos
29.userCacheInvalidationIntervalSecs[有用]
作用:在mongos实例上,指定mongos实例检查以确定用户对象的内存高速缓存中是否有陈旧数据的间隔(以秒为单位),如果是,则清除该高速缓存。 如果用户对象没有更改,mongos将不会清除缓存。
此参数的最小值为1秒,最大值为86400秒(24小时)。
默认:30
可用对象:mongos
30.authFailedDelayMs[有用]
3.4版本引入,仅企业版中支持
作用:通知客户端认证尝试失败之前要等待的毫秒数。 此参数的范围可以是0到5000(含)。
设置此参数会使对数据库的暴力登录攻击更加耗时。 但是,等待MongoDB服务器响应的客户端仍会消耗服务器资源,如果服务器同时拒绝访问许多其他客户端,则这可能对业务正常登录产生不利影响。
默认:0
可用对象:mongod和mongos
31.allowRolesFromX509Certificates
从MongoDB 4.0.11开始引入 (3.6.14 和3.4.22)
作用:允许或不允许从客户端x.509证书中检索授权角色。
默认:true
可用对象:mongod和mongos
配置文件中配置,或mongod命令行中配置
读到这里,这篇“MongoDB如何验证相关参数”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。
文章标题:MongoDB如何验证相关参数
文章链接:http://ybzwz.com/article/jjchod.html