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. 
Anuncios