1- Securizar el host mediante ssh y asegurarse de que no es posible conectarse desde el exterior sin pasar por un gateway.
2- Usar IPTables para bloquear cualquier acceso no deseado.
3- Crear un usuario administrador
Debemos crear un usuario administrador para gestionar el servicio. Este usuario es almacenado en la base de datos «admin».
Si no hay ningún usuario administrador , cualquiera podría acceder a la base de datos de manera local sin autenticación . Por lo tanto,desde el servidor que corre el servicio mongodb, abre una shell y configura un usuario administrador.
$ ./mongo > use admin > db.addUser("adminuser", "somepassword")
Ahora tenemos un usuario administrador creado en la base da datos «admin». Al no estar autenticados previamente, debemos autenticarnos para seguir con derechos de administrador.
> db.auth("adminuser", "somepassword")
A continuación vamos a crear un usuario con derechos restringidos en la base de datos «prueba1».
> use prueba1 > db.addUser("john", "passwordJohn")
Por último añadimos un usuario de solo lectura.
> use prueba1 > db.addUser("guest", "passwordGuest", true)
Listando usuarios
La información de usuario es almacenada en cada database’s system.users collection.Por ejemplo en la base de datos prueba1, prueba1.system.users contendrá la información de usuario.
Podemos ver los usuarios existentes para la base de datos actual con la siguiente query:
> db.system.users.find()
Cambiando passwords
El comando addUser permite también ser usado para actualizar la password de usuario: si el usuario existe, la password simplemente se actualiza.
Borrando usuarios
Para borrar un usuario:
db.removeUser( username )
or
db.system.users.remove( { user: username } ) 4.- cambiar el puerto del servicio a otro diferente al que viene por defecto, 27017.
A continuación vamos a crear un usuario con derechos restringidos en la base de datos “prueba1″.
> use prueba1
> db.addUser(«john», «passwordJohn»)
con esto, a que te refieres con derechos restringidos ? qué puedo hacer ? y que no ?
Muchas gracias.
En este caso el usuario john tendra permisos readonly en la base de datos prueba1.
En mongodb existen dos tipos de usuario:
-admin: puede acceder a todas las bases de datos y realizar tareas de administración
-regular users: solo pueden acceder a una base de datos especifica con permisos readonly o read/write
Asimismo puedes ver los detalles de los usuarios y sus permisos con la query:
db.system.users.find().pretty()
¿Donde están los puntos 1- Securizar el host mediante ssh y asegurarse de que no es posible conectarse desde el exterior sin pasar por un gateway.
2- Usar IPTables para bloquear cualquier acceso no deseado.? Gracias!