GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer et sécuriser MongoDB 4 dans CentOS 8

MongoDB est un système de base de données NoSQL multiplateforme écrit en C++. MongoDB est différent des bases de données SQL traditionnelles basées sur des tables comme MySQL et PostgreSQL et est spécialement conçu pour le stockage de données à volume élevé. MongoDB utilise des documents de type JSON avec des schémas dynamiques et ne nécessite pas de schéma prédéfini avant d'ajouter des données à une base de données. MongoDB est gratuit, open-source et est livré avec un riche ensemble de fonctionnalités, notamment le stockage, la réplication de données, les requêtes ad hoc, l'équilibrage de charge et bien d'autres.

Dans ce tutoriel, nous allons vous expliquer comment installer et sécuriser MongoDB sur CentOS 8.

Prérequis

  • Un nouveau VPS CentOS 8 sur la plate-forme cloud d'Atlantic.net.
  • Un mot de passe root configuré sur votre serveur.

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

dnf update -y

Étape 2 - Ajouter le référentiel MongoDB

Vous pouvez le créer avec la commande suivante :

nano /etc/yum.repos.d/mongodb-org.repo

Ajoutez les lignes suivantes :

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vous pouvez procéder à l'installation de MongoDB sur votre système.

Étape 3 - Installer MongoDB

Maintenant, vous pouvez installer MongoDB en exécutant simplement la commande suivante :

dnf install mongodb-org -y

Une fois l'installation terminée, démarrez le service MongoDB et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl start mongod
systemctl enable mongod

Vous pouvez maintenant vérifier l'état du service MongoDB à l'aide de la commande suivante :

systemctl status mongod

Vous devriez voir le résultat suivant :

● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-04-10 10:58:18 EDT; 7s ago
     Docs: https://docs.mongodb.org/manual
  Process: 2904 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 2902 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 2899 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 2897 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 2906 (mongod)
   Memory: 77.0M
   CGroup: /system.slice/mongod.service
           └─2906 /usr/bin/mongod -f /etc/mongod.conf

Apr 10 10:58:17 centos8 systemd[1]: Starting MongoDB Database Server...
Apr 10 10:58:17 centos8 mongod[2904]: about to fork child process, waiting until server is ready for connections.
Apr 10 10:58:17 centos8 mongod[2904]: forked process: 2906
Apr 10 10:58:18 centos8 mongod[2904]: child process started successfully, parent exiting
Apr 10 10:58:18 centos8 systemd[1]: Started MongoDB Database Server.

Maintenant, MongoDB s'exécute et écoute sur le port 27017. Vous pouvez le vérifier avec la commande suivante :

netstat -pnltu | grep 27017

Vous devriez obtenir le résultat suivant :

tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      2906/mongod

Vous pouvez également accéder au shell MongoDB avec la commande suivante :

mongo

Vous devriez obtenir le résultat suivant :

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b0f7656f-f939-4f50-87d2-01cbeca0849a") }
MongoDB server version: 4.2.5
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
            http://docs.mongodb.org/
Questions? Try the support group
            http://groups.google.com/group/mongodb-user
Server has startup warnings:
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-04-10T10:58:18.522-0400 I  CONTROL  [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

Vous pouvez quitter le shell MongoDB avec la commande suivante :

>exit

Étape 4 - Activer l'authentification MongoDB

nano /etc/mongod.conf

Ajoutez la ligne suivante à la fin du fichier :

security:
  authorization: enabled

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service MongoDB pour appliquer les modifications :

systemctl restart mongod

Étape 5 - Créer un utilisateur administrateur MongoDB

Ensuite, vous devrez créer un utilisateur administratif avec tous les privilèges pour effectuer des tâches administratives.

Tout d'abord, accédez au shell MongoDB avec la commande suivante :

mongo

Vous devriez obtenir le résultat suivant :

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("09e0e028-cd26-4f9d-9270-52b938925f99") }
MongoDB server version: 4.2.5

Ensuite, changez la base de données en admin avec la commande suivante :

> use admin

Ensuite, créez un utilisateur administrateur MongoDB appelé myadmin avec la commande suivante :

> db.createUser( { user: "myadmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

Une fois l'utilisateur créé, vous devriez obtenir le résultat suivant :

Successfully added user: {
            "user" : "myadmin",
            "roles" : [
                        {
                                    "role" : "userAdminAnyDatabase",
                                    "db" : "admin"
                        }
            ]
}

Ensuite, quittez le shell MongoDB avec la commande suivante :

>exit

Étape 6 - Vérifier l'authentification MongoDB

À ce stade, MongoDB est configuré avec l'authentification. Vous devrez maintenant fournir un nom d'utilisateur et un mot de passe avant d'interagir avec MongoDB.

Ensuite, connectez MongoDB sans authentification :

mongo

Vous devriez obtenir le résultat suivant :

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("fecf1846-13fd-4959-91da-5cf323781e13") }
MongoDB server version: 4.2.5

Maintenant, exécutez la commande suivante pour répertorier les utilisateurs de MongoDB :

> show users

Vous devriez obtenir l'erreur suivante :

2020-04-10T11:08:04.598-0400 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/db.js:1638:15
[email protected]/mongo/shell/utils.js:883:9
[email protected]/mongo/shell/utils.js:790:15
@(shellhelp2):1:1

Cela démontre que vous ne pouvez pas répertorier les utilisateurs sans vous authentifier.

Maintenant, quittez MongoDB avec la commande suivante :

>exit

Étape 7 - Accéder à MongoDB avec l'utilisateur administratif

Maintenant, connectons-nous à MongoDB avec l'utilisateur administratif :

mongo -u myadmin -p --authenticationDatabase admin

Il vous sera demandé de fournir votre mot de passe administrateur comme indiqué ci-dessous :

MongoDB shell version v4.2.5
Enter password:

Fournissez votre mot de passe administrateur et appuyez sur Entrée . Vous devriez obtenir le résultat suivant :

connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a39f723c-f1b5-4c93-9e67-ff82379dfb62") }
MongoDB server version: 4.2.5

Ensuite, changez la base de données en admin et listez les utilisateurs avec la commande suivante :

> use admin
> show users

Vous devriez obtenir le résultat suivant :

{
            "_id" : "admin.myadmin",
            "userId" : UUID("bcd920c1-63fd-4b82-a8a6-eb6515d51a34"),
            "user" : "myadmin",
            "db" : "admin",
            "roles" : [
                        {
                                    "role" : "userAdminAnyDatabase",
                                    "db" : "admin"
                        }
            ],
            "mechanisms" : [
                        "SCRAM-SHA-1",
                        "SCRAM-SHA-256"
            ]
}

Maintenant, quittez le shell MongoDB avec la sortie suivante :

> exit

Conclusion

Dans le guide ci-dessus, nous avons appris à installer MongoDB sur CentOS 8. Nous avons également montré comment activer l'authentification MongoDB et créer un utilisateur administratif. Votre MongoDB sur votre VPS Atlantic.Net est maintenant sécurisé avec un nom d'utilisateur et un mot de passe - si vous n'avez pas de VPS d'Atlantic.Net, commencez dès aujourd'hui avec l'hébergement VPS pour installer MongoDB !


Linux
  1. Comment installer et sécuriser MongoDB sur Debian 11

  2. Comment installer MongoDB sur CentOS 8 / RHEL 8

  3. Comment installer MongoDB 4.4 / 4.2 sur CentOS 7 / RHEL 7

  4. Comment installer MongoDB sur Ubuntu 20.04 et CentOS 8

  5. Comment installer FlintCMS sur CentOS 7

Comment installer MongoDB sur CentOS 6

Comment installer MongoDB sur CentOS 7

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8

Comment installer et sécuriser phpMyAdmin sur CentOS 8

Comment installer MongoDB version 4.0 sur Centos 7 ?

Comment installer Mongodb dans CentOS ?