👇A continuación te mostraremos como configurar tu servidor con MongoDB en forma segura, cómo crear bases de datos, usuarios con permisos específicos y conectarte en forma remota.
- Habilitar el puerto 20017 en el firewall
Para mayor seguridad, el puerto 20017 utilizado por MongoDB se encuentra cerrado por defecto y debes crear una regla de Firewall que lo abra.
Si desconoces cuales son las IPs desde las cuales, tu o tu aplicación, se conectarán al servidor de MongoDB, utiliza 0.0.0.0/0. Así permitirás que cualquier IP pueda conectarse a MongoDB. Sin embargo, te recomendamos crear reglas con las IPs específicas para brindarle mayor seguridad a tus bases de datos.
- Verificar la versión de MongoDB
Accede a través de la consola SSH a tu servidor y verifica la versión de MongoDB con el siguiente comando:
mongod --version
Conocer la versión te servirá más adelante si decides utilizar un cliente con interfaz gráfica para administrar tus bases de datos y usuarios, ya que no todas tienen soporte para las últimas versiones de MongoDB.
- Crear un usuario administrador
mongo --port 20017
use admin
db.createUser(
{
user: "myServerAdmin",
pwd: "mipassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
);
Cambia los datos “user” y “pwd” del código de arriba, con el usuario y contraseña que decidas utilizar.
- Restringir el acceso No Autenticado
mcedit /etc/mongod.conf

service mongod restart
mongo --port 20017 -u myServerAdmin -p mipassword --authenticationDatabase admin
- Crear una Base de Datos y un usuario para la misma
use test
db.createUser(
{
user: "myDbAdmin",
pwd: "mipassword",
roles: [ { role: "readWrite", db: "test" } ]
}
);
Una vez listo, para acceder a la base de datos recién creada utilizamos el siguiente comando:
mongo --port 20017 -u myDbAdmin -p mipassword --authenticationDatabase test
- Insertar los primeros datos (colección)
Ahora veremos, a través de un ejemplo, como insertar una colección de datos en la base que acabamos de crear.
use test
db.personal.save({nombre:'Ariel Perez',edad:23})
db.personal.save({nombre:'Diego Angel',edad:32})
db.personal.find()
Al hacerlo, veremos en pantalla los siguientes resultados:
{ "_id" : ObjectId("55d87309d6b60ea1b22fb2ad"), "nombre" : "Ariel Perez", "edad" : 23 }
{ "_id" : ObjectId("55d87311d6b60ea1b22fb2ae"), "nombre" : "Diego Angel", "edad" : 32 }
- Aprovechar una interfaz gráfica
mongodb://usuario:password@host:puerto/nombre_db
mongodb://myDbAdmin:mipassword@200.58.96.113:20017/test