Tutorial MongoDB - Creacion de Base de Datos, Conexion Remota y Securizacion.
Tutorial MongoDB - Creacion de Base de Datos, Conexion Remota y Securizacion.
Tutorial MongoDB - Creacion de Base de Datos, Conexion Remota y Securizacion.
En este tutorial paso a paso veremos como configurar tu servidor con MongoDB en forma segura. Tambien aprenderas a
crear bases de datos y usuarios con permisos especificos. Finalmente veremos como conectarnos en forma remota.
1
Habilitar el puerto 20017 en el firewall
Para mayor seguridad, el puerto utilizado por MongoDB en tu Cloud Server es el 20017. Por defecto
este se encuentra cerrado a nivel de firewall. Para abrir el acceso ingresa en la Configuracion de tu
cloud server y luego en la pestana Firewall. Una vez alli crea una regla que permita el acceso de
conexiones externas al puerto 20017.
Si desconoces cuales son las IPs desde las cuales, tu o tu aplicacion, se conectaran al servidor de
MongoDB, utiliza 0.0.0.0/0. Asi permitiras que cualquier IP pueda conectarse a MongoDB. Sin
embargo, te recomendamos crear reglas con las IPs (o rango de IP’s) especificas para brindarle mayor
seguridad a tus bases de dato.
2
Verificar la version de MongoDB
Accede a traves de la consola SSH a tu servidor y verifica la version de MongoDB con el siguiente
comando:
mongod --version
Conocer la version te servira mas adelante si es que decides utilizar un cliente con interfaz grafica para
administrar tus bases de datos y usuarios, ya que no todas tienen soporte para las ultimas versiones de
MongoDB.
3
Crear un usuario administrador
Nuevamente a traves de la consola SSH y utilizando los siguientes comandos, creamos un usuario con
los permisos necesarios para administrar cualquier base de datos del servidor MongoDB.
Para ellos ejecutamos una instancia de MongoShell y lo hacemos en el puerto en el cual esta
configurado.
Cambia los datos “user” y “pwd” del codigo de arriba, con el usuario y contrasena que decidas utilizar.
4
Restringir el acceso No Autenticado
Por defecto, es posible acceder al servidor de MongoDB sin necesidad de autenticarse y esto genera
problemas de seguridad. Ahora que ya disponemos de un usuario con los privilegios suficientes,
cambiaremos la configuracion para restringir el acceso mediante autenticacion.
Para ellos editamos el archivo mongod.conf, quitando el comentario de la linea donde se encuentra
auth = true
mcedit /etc/mongod.conf
Una vez guardado el cambio, reiniciamos el servicio de MongoDB para que los mismos hagan efecto.
5
Crear una Base de Datos y un usuario para la misma
Llego el momento esperado, el de crear la base de datos que utilizaremos para nuestra aplicacion. A
diferencia de servidores como MySQL donde hay un comando explicito para crearlas, en MongoDB
las base de datos se crean insertando el primer contenido (una coleccion) o creando un usuario para la
misma.
En nuestro caso crearemos un base de datos llamada test agregandole un usuario llamado
myDbAdmin.
use test
db.createUser(
{
user: "myDbAdmin",
pwd: "mipassword",
roles: [ { role: "readWrite", db: "test" } ]
}
);
Ahora, para acceder a la base de datos recien creada utilizamos el siguiente comando:
6
Insertar los primeros datos (coleccion)
Ahora veremos, a traves de un ejemplo, como insertar una coleccion 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()
En el mercado existen muchos clientes de administracion para MongoDB y la gran mayoria son pagos.
Algunos de los gratuitos que podemos sugerirte son Mongo Management Studio o MongoChef
mongodb://usuario:password@host:puerto/nombre_db
mongodb://myDbAdmin:mipassword@200.58.96.113:20017/test