MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Le serveur MongoDB est toujours accessible sans identifiants

L'authentification vous empêche d'effectuer des actions sur la base de données (comme le montre votre capture d'écran - vous ne pouvez même pas lister les bases de données), elle n'empêche pas les connexions - après tout, vous devez pouvoir vous connecter pour pouvoir vous authentifier.

Il existe une demande de fonctionnalité pour ajouter des délais d'attente, mais pour l'instant, c'est essentiellement la façon dont le serveur est censé se comporter.

Il convient de noter que jusqu'à ce que vous essayiez de faire quelque chose, ce n'est vraiment pas différent de la simple connexion au port avec telnet - le texte affiché au début "connecting to:" etc. provient du client, pas du serveur. Dès qu'il essaie de faire quoi que ce soit non authentifié, même de lister les avertissements du serveur, une erreur est générée car il n'a pas les autorisations suffisantes.

Si vous voulez verrouiller les choses du point de vue de la connexion, la seule option du point de vue de MongoDB est de restreindre les adresses IP sur lesquelles il écoute (la valeur par défaut est tout) en utilisant le bindIp option. Utilisation de 127.0.0.1 le verrouillerait pour une utilisation locale par exemple (mais vous ne seriez alors pas en mesure de vous connecter à partir d'un hôte distant), ce qui rend la réplication problématique, alors soyez prudent lorsque vous choisissez votre adresse liée.

En dehors de MongoDB, vous devriez envisager de verrouiller les choses du point de vue du pare-feu. Sous Linux, ce serait IPTables, ufw, hosts.allow/deny ou similaire. Le pare-feu Windows n'est pas mon domaine d'expertise, mais j'imagine que vous pouvez également faire la même chose.