GNU/Linux >> Tutoriels Linux >  >> Linux

Comment prendre le contrôle de votre sécurité MongoDB

Les pirates sont de plus en plus sophistiqués et savent comment exploiter les vulnérabilités. Si vous avez des données sensibles dans votre base de données MongoDB, il est crucial de prendre la sécurité au sérieux. Mais comment? Ne t'inquiètes pas! Ce didacticiel a tout ce qu'il vous faut !

Dans ce didacticiel, vous apprendrez à protéger vos bases de données MongoDB et à éloigner les pirates en mettant en place des mesures de sécurité.

Lisez la suite et commencez à prendre le contrôle de votre sécurité MongoDB !

Prérequis

  • Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d'avoir les éléments suivants :
  • MongoDB installé sur votre machine Linux.
  • Un utilisateur non root avec sudo privilèges.

Création d'un utilisateur administratif dédié

MongoDB n'a pas de système d'authentification intégré. Par défaut, toute personne ayant accès à la base de données dispose de privilèges administratifs complets — trop dangereux ! Comment sécuriser votre base de données ? Vous allez créer un utilisateur avec des privilèges administratifs et verrouiller les bases de données pour cet utilisateur administratif.

Cette configuration vous permet de fournir un point d'accès utilisateur unique avec des privilèges administratifs tout en limitant ce que chaque utilisateur peut faire dans la base de données. Par exemple, les développeurs doivent avoir un accès en lecture seule aux bases de données, tandis que les administrateurs peuvent créer et modifier des données.

1. Ouvrez votre terminal et exécutez le mongo commande ci-dessous sans aucun argument. Cette commande vous permet de vous connecter à votre shell MongoDB en tant qu'utilisateur administrateur par défaut.

Cet utilisateur administrateur est puissant car il dispose d'un accès complet en lecture/écriture à toutes les bases de données sur le serveur, et il est préférable d'éviter d'utiliser cet utilisateur pour le travail quotidien.

mongo

Vous recevrez un avertissement indiquant Le contrôle d'accès n'est pas activé …., comme indiqué ci-dessous.

Cet avertissement indique que toute personne pouvant accéder au serveur MongoDB peut effectuer les actions qu'elle souhaite avec les bases de données. Ces actions incluent, mais sans s'y limiter, la suppression, le dépôt et la mise à jour des bases de données.

Cet avertissement s'affiche car vous n'avez pas encore activé le contrôle d'accès. Ne vous inquiétez pas, pour l'instant. Vous apprendrez comment activer le contrôle d'accès dans la section suivante.

2. Ensuite, exécutez le show dbs commande pour afficher toutes les bases de données sur le serveur, y compris l'admin bases de données qu'un utilisateur normal n'est pas censé voir.

show dbs

3. Exécutez le use admin commande ci-dessous pour passer à la base de données d'administration puisque votre objectif est de créer un utilisateur administratif dédié. Cette commande modifie le contexte de votre base de données actuelle pour utiliser la base de données d'administration, comme indiqué ci-dessous.

MongoDB utilise la base de données d'administration pour stocker les règles de contrôle d'accès et fournir une authentification intégrée, des noms d'utilisateur et un mot de passe pour les utilisateurs et leurs rôles. Vous ne pouvez pas supprimer ou renommer la base de données d'administration car elle est essentielle à la fonctionnalité de la base de données.

use admin

4. Maintenant, copiez et collez le code ci-dessous dans le shell mongo et appuyez sur Entrée. Ce code crée un utilisateur appelé AdminATA , avec un mot de passe LDWbPf6Fy9Ezs3Mv , mais vous pouvez utiliser différentes informations d'identification selon vos préférences.

Ce nouvel utilisateur a accès en lecture/écriture (readWriteAnyDatabase ) accès à toutes les bases de données et accès administrateur à toutes les collections. Mais cet utilisateur n'a pas de privilèges de suppression/suppression de base de données et ne peut pas supprimer ou modifier les privilèges d'autres utilisateurs.

Après avoir exécuté la commande et obtenu une erreur, revérifiez votre code et réessayez.

# The db.createUser() method creates a new user on the current database, with the privileges specified by roles.
db.createUser(
{
# Specifying the username AdminATA, but you can enter whatever username you like
user: "AdminATA",
# The passwordPrompt() method is a universal helper function 
# that tells the MongoDB shell to prompt you for a password for the AdminATA user.
pwd: passwordPrompt(),
# Specifying  the roles you want your AdminATA user to have.
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

5. Fournissez un mot de passe sécurisé lorsque vous y êtes invité, comme indiqué ci-dessous, puis appuyez sur Entrée.

Ci-dessous, vous pouvez voir un utilisateur ajouté avec succès message. Cette sortie confirme que vous avez créé avec succès un utilisateur avec des privilèges administratifs et que vous l'avez limité aux moindres privilèges requis.

À ce stade, vous avez déjà un utilisateur administratif appelé AdminATA qui peut faire tout ce dont vous avez besoin sur la base de données sans donner accès à tout le monde.

6. Enfin, exécutez la commande exit pour quitter le shell mongo.

exit

Ajout de la sécurité en activant l'authentification

Maintenant que vous avez un utilisateur administratif, vous allez ajouter une autre couche de sécurité en activant l'authentification. Cela donne accès à la base de données uniquement aux utilisateurs disposant des informations d'identification correctes.

L'authentification fait référence au processus de validation d'une connexion, généralement en fournissant un nom d'utilisateur et un mot de passe ou en utilisant un jeton d'authentification. L'authentification garantit que vous êtes bien la personne que vous prétendez être et non un imposteur essayant d'accéder aux ressources.

1. Activez l'authentification en modifiant le fichier de configuration MongoDB avec ce qui suit, et enregistrez les modifications :

  • Ouvrez le fichier /etc/mongod.conf fichier dans votre éditeur de texte préféré. Le /etc/mongod.conf le fichier contient la configuration de votre cluster MongoDB.
  • Recherchez et décommentez le #security directive en supprimant le # devant la directive, comme illustré ci-dessous. Cette directive indique à MongoDB de rechercher le paramètre de sécurité dans le fichier de configuration.
  • Ajouter une nouvelle ligne sous la sécurité directive indiquant autorisation :activée . Notez que l'autorisation :activée ligne est en retrait (comporte deux espaces au début), comme indiqué ci-dessous.

2. Ensuite, exécutez le systemctl suivant commande pour redémarrer le serveur MongoDB pour que les modifications prennent effet.

sudo systemctl restart mongod

3. Enfin, exécutez la commande ci-dessous pour afficher l'état de votre service MongoDB.

sudo systemctl status mongod

Ci-dessous, vous pouvez voir une ligne indiquant Actif :actif (en cours d'exécution) en vert, ce qui indique que votre serveur MongoDB est en cours d'exécution et prêt à accepter les connexions.

Tester si l'authentification fonctionne

Vous venez d'activer l'authentification, mais comment savez-vous que cela fonctionne ? Vous vous connecterez à l'utilisateur administratif pour tester et vous assurer que votre authentification fonctionne en affichant les bases de données.

1. Exécutez les commandes suivantes pour accéder au mongo shell comme vous l'avez fait dans la section "Création d'un utilisateur administratif dédié" (première étape).

mongo

Comme vous pouvez le voir ci-dessous, vous ne recevez plus le message Le contrôle d'accès n'est pas activé… avertissement concernant l'activation de l'authentification. Au lieu de cela, vous recevrez un message vous indiquant la version de votre serveur MongoDB et de votre shell MongoDB.

2. Ensuite, relancez le show dbs commande pour vérifier si vous pouvez toujours accéder à la base de données.

show dbs

La commande devrait vous montrer toutes les bases de données, même la base de données d'administration. Mais comme vous le voyez ci-dessous, rien ne s'affiche. Pourquoi? La consultation de la liste des bases de données est un privilège réservé aux utilisateurs administratifs uniquement.

Vous n'avez pas authentifié votre shell mongo pour utiliser le rôle d'administrateur, vous n'êtes donc pas autorisé à afficher la liste des bases de données.

Lorsque l'authentification est activée, la connexion échoue si quelqu'un tente d'accéder à la base de données à l'aide d'une chaîne de connexion qui ne contient pas les informations d'identification correctes.

L'authentification des chaînes de connexion est un élément central de la sécurité de MongoDB, et vous devez implémenter l'authentification à toutes les couches de l'application. Toutes les connexions à MongoDB doivent utiliser une chaîne d'authentification composée d'informations d'identification. Ces informations d'identification incluent le nom d'utilisateur et le mot de passe corrects.

3. Exécutez le exit commande pour quitter le shell MongoDB.

exit

4. Maintenant, exécutez la commande ci-dessous pour vous connecter au shell MongoDB avec le nom d'utilisateur de votre nouvel utilisateur administratif (-u ) et mot de passe (-p ). Remplacer AdminATA avec le nom d'utilisateur que vous avez créé dans la section "Création d'un utilisateur administratif dédié" (étape quatre).

Le --authenticationDatabase Le paramètre indique au shell MongoDB de s'authentifier auprès du admin base de données.

mongo -u AdminATA -p --authenticationDatabase admin

5. Fournissez votre mot de passe pour votre utilisateur administratif lorsque vous y êtes invité.

6. Enfin, relancez le show dbs commande pour essayer de voir si vous pouvez voir toutes les bases de données.

show dbs

Cette fois, comme vous le voyez ci-dessous, la liste des bases de données s'affiche puisque vous êtes un utilisateur administrateur.

Conclusion

Dans ce didacticiel, vous avez appris à vous connecter pour créer un utilisateur administratif et activer l'authentification. Vous avez appris à prendre le contrôle de votre sécurité MongoDB et à restreindre l'accès aux bases de données sur votre serveur.

À ce stade, vous décidez si qui peut accéder à quoi. Alors, quelle est la prochaine étape pour vous ? Peut-être apprendre à utiliser un conteneur MongoDB en toute sécurité ?


Linux
  1. Comment ajouter un utilisateur à votre bureau Linux

  2. Comment pouvez-vous protéger votre ordinateur ?

  3. Comment créer une sauvegarde de votre base de données via le panneau de contrôle de Plesk

  4. Comment créer une nouvelle base de données ou un utilisateur de base de données dans le panneau de contrôle de Plesk

  5. Contrôleur de luminosité - Prenez le contrôle complet de la luminosité de votre moniteur

Comment vérifier les privilèges utilisateur MySQL sous Linux

Comment effectuer une sauvegarde de la base de données MySQL à partir du panneau de configuration HELM ?

Comment ajouter une base de données MySQL dans SolidCP ?

Comment changer le mot de passe de l'utilisateur de la base de données

Comment faire une sauvegarde de base de données sur Plesk

Comment installer WordPress sur le panneau de contrôle Vesta