sql >> Base de Datos >  >> NoSQL >> MongoDB

Consejos para administrar MongoDB de forma remota

Trabajar de forma remota debido a la pandemia de Covid-19 significa un aumento en la importancia de las infraestructuras aisladas; más específicamente, aquellos a los que solo se puede acceder a través de una red interna, pero de manera que las personas autorizadas del mundo exterior puedan acceder al sistema en cualquier momento y en cualquier lugar.

En este artículo, compartiremos algunos pasos básicos que debe implementar con MongoDB para garantizar un acceso seguro mientras administra la base de datos.

Asegurando MongoDB

Antes de acceder a la base de datos de MongoDB de forma remota, debe realizar un "endurecimiento" del entorno. Establezca lo siguiente en el lado de la infraestructura:

Habilitar la autenticación de MongoDB 

Esta función es obligatoria para habilitar, independientemente de si queremos acceder a la base de datos MongoDB desde la red interna o desde una red externa. Antes de habilitar la autorización, primero debe crear un usuario administrador en MongoDB. Puede ejecutar el siguiente comando para crear un usuario administrador en su servidor mongoDB:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

El comando anterior creará un nuevo usuario llamado admin con privilegios de raíz. Puede habilitar la función de autenticación de MongoDB abriendo el archivo /etc/mongod.conf y luego agregando la siguiente línea:

  security:

   authorization: 'enabled'

No olvide reiniciar su servicio mongoDB para aplicar los cambios. El comando anterior restringirá el acceso a la base de datos, solo el que tiene credenciales de acceso que son elegibles para iniciar sesión.

Configurar funciones y privilegios

Para evitar el mal uso del acceso a MongoDB, podemos implementar el acceso basado en roles creando varios roles y sus privilegios.

Asegúrese de tener una lista de usuarios que necesitan acceder a la base de datos y comprender las necesidades y responsabilidades de cada individuo. Cree roles y asigne los privilegios a estos roles creados. Después de eso, puede asignar su usuario a un rol basado en las responsabilidades.

Este enfoque nos ayuda a minimizar el abuso de autoridad e identificar el rol y el usuario inmediatamente cuando sucedió algo no deseado.

Configurar una conexión SSL/TLS

MongoDB admite conexiones SSL/TLS para proteger los datos en tránsito. Para implementar esto, debe generar su propia clave SSL, puede generarla usando openssl. Para habilitar la compatibilidad con SSL/TLS, puede editar el archivo /etc/mongod.conf y agregar el siguiente parámetro:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

Después de agregar estos parámetros, debe reiniciar el servicio MongoDB. Si tiene una arquitectura de conjunto de réplicas MongoDB, debe aplicarlas en cada nodo. SSL también es necesario cuando el cliente accederá a MongoDB, ya sea desde el lado de la aplicación o directamente desde el cliente.

Para uso de producción, debe usar certificados válidos generados y firmados por una única autoridad de certificación. Usted o su organización pueden generar y mantener certificados como una autoridad de certificación independiente o usar certificados generados por proveedores de TLS/SSL de terceros. Evite el uso de un certificado autofirmado, a menos que sea una red de confianza.

Restringir el puerto de la base de datos

Debe asegurarse de que solo el puerto MongoDB esté abierto en el servidor de firewall o dispositivo de firewall, asegúrese de que no haya otros puertos abiertos.

Seguridad de la conexión MongoDB

La conexión remota a través de Internet pública presenta el riesgo de que los datos se transmitan desde los usuarios locales al servidor de la base de datos y viceversa. Los atacantes pueden interrumpir la interconexión, lo que en este caso se conoce como ataque MITM (Min-in-The-Middle). Asegurar la conexión es muy necesario cuando gestionamos/administramos la base de datos de forma remota, algunas cosas que podemos aplicar para proteger nuestro acceso a la base de datos son las siguientes:

Acceso a la red privada

VPN (Red Privada Virtual) es una de las cosas fundamentales cuando queremos acceder a nuestra infraestructura desde el exterior de forma segura. VPN es una red privada que utiliza redes públicas para acceder a sitios remotos. La configuración de VPN requiere hardware que debe estar preparado en el lado de la red privada, además de eso, el cliente también necesita un software VPN que admita el acceso a la red privada.

Además de usar VPN, otra forma de acceder al servidor MongoDB es a través del puerto de la base de datos de reenvío de puertos a través de SSH, o mejor conocido como SSH Tunneling.

Usar SSL/TLS desde el Cliente al Servidor de Base de Datos

Además de implementar un acceso seguro mediante túneles VPN o SSH, podemos usar SSL/TLS que se configuró previamente en el lado de MongoDB. Solo necesita la clave SSL que tiene e intente conectarse a la base de datos usando la clave SSL.

Habilitar el monitoreo de la base de datos

Es fundamental habilitar el servicio de monitoreo para comprender el estado actual de las bases de datos. El servidor de monitoreo se puede instalar bajo el dominio público que tiene habilitado SSL/TLS, por lo que el acceso automático al navegador puede usar HTTPs.

Conclusión

Es muy divertido trabajar desde casa, puedes interactuar con tus hijos y al mismo tiempo monitorear tu base de datos. Debe seguir las pautas anteriores para asegurarse de que no sea atacado o que le roben sus datos cuando acceda a su base de datos de forma remota.