Introducción
MongoDB es una base de datos NoSQL orientada a documentos (no relacional). Fue desarrollado para manejar grandes cantidades de datos heterogéneos y escalar horizontalmente, lo que significa que puede manejar grandes cantidades de datos en varios servidores.
En MongoDB, los datos se guardan en documentos JSON (notación de objetos de JavaScript), lo que significa que las aplicaciones pueden leer y escribir fácilmente los datos en varios lenguajes de programación. Además, MongoDB admite la indexación, búsqueda y consulta de datos, lo que facilita que los desarrolladores encuentren y manipulen los datos de manera eficiente.
MongoDB es popular en una variedad de aplicaciones, como aplicaciones web, servicios de geolocalización, aplicaciones de análisis de datos y mucho más. Gracias a su escalabilidad, MongoDB puede manejar grandes cantidades de datos de manera eficiente y se puede implementar fácilmente en la nube o en una infraestructura de servidor distribuida.
En este artículo cubriremos los siguientes temas:
- Instalación de MongoDB en Ubuntu 22.04
- Proteja MongoDB con una contraseña
- Habilitación de la autenticación para MongoDB
- Restringir el acceso a MongoDB
- Apertura de puerto en firewall con UFW
requisitos previos
Antes de continuar, asegúrese de tener una instalación nueva de Ubuntu 22.04 y un usuario no root con privilegios de sudo. Además, asegúrese de que su sistema esté actualizado ejecutando el siguiente comando:
sudo apt update and sudo apt upgrade
sudo apt install gnupg2
Una vez que su sistema esté actualizado, podemos proceder con la instalación de MongoDB.
Instalar MongoDB
Instalar MongoDB en Ubuntu es un proceso relativamente simple. Puede instalarlo usando el administrador de paquetes de Ubuntu o puede descargarlo directamente desde el sitio web de MongoDB.
Los siguientes pasos configurarán el PPA oficial de MongoDB en su sistema Ubuntu y lo instalarán:
Importar clave GPG de MongoDB:
wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc
cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null
Estos comandos importarán la clave GPG para el repositorio de MongoDB, que se utiliza para verificar la autenticidad de los paquetes en el repositorio.
Agregue el repositorio MongoDB al administrador de paquetes de su sistema:
sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list'
Este comando agregará el repositorio MongoDB a la lista de repositorios en el administrador de paquetes de su sistema.
Actualice la lista de paquetes disponibles:
sudo apt update
Este comando actualizará la lista de paquetes disponibles para incluir los paquetes en el repositorio de MongoDB.
Instalar MongoDB:
sudo apt install mongodb-org
Este comando instalará la última versión estable de MongoDB desde el repositorio de MongoDB.
Inicie el servicio MongoDB:
sudo systemctl start mongod
Este comando iniciará el servicio MongoDB.
Los pasos anteriores instalarán con éxito MongoDB en un sistema Ubuntu.
A continuación, es importante habilitar la autenticación para la base de datos MongoDB. Esto requerirá que los usuarios ingresen un nombre de usuario y una contraseña para acceder a la base de datos. Sin la autenticación habilitada, cualquier persona con acceso al servidor podría ver y cambiar los datos en la base de datos.
Proteja MongoDB con una contraseña
De forma predeterminada, MongoDB no requiere una contraseña para acceder a la base de datos. Sin embargo, se recomienda establecer una contraseña para proteger la base de datos y evitar el acceso no autorizado.
Para establecer una contraseña para MongoDB, siga estos pasos:
Conéctese al shell de MongoDB:
mongosh
Este comando abrirá el shell de MongoDB, que es una interfaz de línea de comandos para interactuar con la base de datos.
Cambie a la base de datos de administración:
use admin
Este comando cambiará a la base de datos admin
, que se usa para administrar usuarios y roles en la base de datos.
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
})
Reemplace admin
y password
con el nombre de usuario y contraseña deseados para el nuevo usuario. Este comando creará un nuevo usuario con el rol root
en la base de datos admin
. El rol raíz tiene acceso completo a todos los recursos y funciones de la base de datos.
Salga del shell de MongoDB:
exit
Habilitar autenticación
De forma predeterminada, MongoDB no requiere autenticación para acceder a la base de datos. Sin embargo, se recomienda que habilite la autenticación para proteger su base de datos y evitar el acceso no autorizado.
Para habilitar la autenticación para MongoDB, siga estos pasos:
Edite el archivo de configuración de MongoDB:
sudo nano /etc/mongod.conf
Este comando abrirá el archivo de configuración de MongoDB en el editor de texto Nano.
Busque la sección de seguridad en el archivo de configuración y agregue las siguientes líneas:
security:
authorization: enabled
Esto habilitará la función de autorización para MongoDB, que requiere que los usuarios se autentiquen con un nombre de usuario y una contraseña para acceder a la base de datos.
Guarde sus cambios y salga del editor de texto.
Reinicie el servicio MongoDB:
sudo systemctl restart mongod
Este comando aplicará los cambios de configuración de MongoDB y reiniciará el servicio.
Restricción de acceso a MongoDB
Por defecto, MongoDB permite conexiones desde cualquier dirección IP. Sin embargo, se recomienda que restrinja el acceso a la base de datos a rangos o direcciones IP específicas para mejorar la seguridad.
Para restringir el acceso a MongoDB, siga estos pasos:
Edite el archivo de configuración de MongoDB:
sudo nano /etc/mongod.conf
Este comando abrirá el archivo de configuración de MongoDB en el editor de texto Nano.
Busque la sección net en el archivo de configuración y agregue las siguientes líneas:
net:
bindIp: 127.0.0.1,192.168.1.0/24
Reemplace 127.0.0.1,192.168.1.0/24 con las direcciones IP o rangos deseados para permitir. Esto limitará el acceso a la base de datos a direcciones específicas o rangos de IP.
Guarde sus cambios y salga del editor de texto.
Reinicie el servicio MongoDB:
sudo systemctl restart mongod
Este comando aplicará los cambios de configuración de MongoDB y reiniciará el servicio.
Abrir puerto de cortafuegos (UFW)
Para abrir el puerto MongoDB (27017) en el firewall en un sistema que ejecuta ufw, haga lo siguiente:
Compruebe el estado del cortafuegos:
sudo ufw status
Este comando mostrará el estado actual del firewall. Si su firewall no funciona, deberá iniciarlo antes de poder abrir el puerto MongoDB.
Si el firewall no está activo, inícielo ejecutando el siguiente comando:
sudo ufw enable
Este comando habilitará el firewall y permitirá las conexiones entrantes al sistema.
Abra el puerto MongoDB en el firewall:
sudo ufw allow 27017
Este comando abrirá el puerto MongoDB (27017) en el firewall y permitirá las conexiones entrantes al puerto.
Verifique la lista de puertos abiertos para verificar que el puerto MongoDB esté abierto:
sudo ufw status
Después de estos pasos, el puerto MongoDB debería estar abierto en su firewall y debería poder conectarse a la base de datos desde otros sistemas.
Conclusión
En este artículo, explicamos cómo instalar y asegurar MongoDB en Ubuntu 22.04. Hemos cubierto cómo instalar MongoDB, establecer una contraseña, habilitar la autenticación para la base de datos y limitar el acceso a rangos o direcciones IP específicas. Al seguir estos pasos, puede asegurarse de que su instalación de MongoDB sea segura y accesible solo para usuarios autorizados.