with replica keyfile descargar mongodb

replica - Se puede acceder al servidor MongoDB sin credenciales



mongodb documentation (1)

La autenticación le impide realizar acciones en la base de datos (como se muestra en la captura de pantalla, ni siquiera puede enumerar las bases de datos), no impide las conexiones. Después de todo, debe poder conectarse para poder autenticarse.

Hay una solicitud de función para agregar tiempos de espera , pero por ahora esto es esencialmente cómo se debe comportar el servidor.

Vale la pena tener en cuenta que hasta que intente hacer algo, esto no es realmente diferente a simplemente conectarse al puerto con telnet : el texto que se muestra al comienzo "conectarse a:" etc. es del cliente, no del servidor. Tan pronto como intenta hacer algo no autenticado, incluso enumerar las advertencias del servidor, se produce un error porque no tiene suficientes permisos.

Si desea bloquear cosas desde una perspectiva de conexión, la única opción desde una perspectiva de MongoDB es restringir las direcciones IP que escucha (el valor predeterminado es todo) mediante la opción bindIp . El uso de 127.0.0.1 lo bloquearía al uso local, por ejemplo (pero luego no podrá conectarse desde un host remoto), lo que hace que la replicación sea un problema, así que tenga cuidado al elegir su dirección vinculada.

Fuera de MongoDB, debería mirar el bloqueo de las cosas desde una perspectiva de firewall. En Linux, esto sería IPTables , ufw , hosts.allow/deny o similar. El firewall de Windows no es mi área de experiencia, pero me imagino que también puedes hacer algo similar allí.

Tengo un servidor mongodb nuevo (2.6.0) en mi máquina y comencé la instancia mongod con el siguiente archivo de configuración:

dbpath = c:/mongo/data/db port = 27017 logpath = c:/mongo/data/logs/mongo.log auth = true

Más tarde, me conecté a esta instancia mongod a través de mongo shell y creé un usuario administrador:

use admin db.createUser( { user: "tugberk", pwd: "12345678", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

Luego, me desconecté del shell y me conecté de nuevo con el siguiente comando:

mongo --host localhost --port 27017 -u tugberk -p 12345678 --authenticationDatabase admin

Entonces, creé un usuario con acceso de root:

use admin db.createUser( { user: "tugberkRoot", pwd: "12345678", roles: [ "root" ] } )

El último paso no es necesario aquí, pero el acceso anónimo ahora debería haberse deshabilitado por completo. Sin embargo, aún puedo conectarme a él de forma anónima a través de mongo shell (incluso si no tengo acceso para hacer nada):

¿Qué debo hacer para evitar cualquier conexión anónima?