1598724600
Une version antérieure de ce tutoriel a été écrite par Brennan Bearnes.
MongoDB , également connu sous le nom de Mongo , est une base de données de documents open-source utilisée dans de nombreuses applications web modernes. Elle est classée comme une base de données NoSQL car elle ne repose pas sur une structure de base de données relationnelle traditionnelle basée sur des tableaux. Elle utilise plutôt des documents de type JSON avec des schémas dynamiques.
MongoDB n’a pas d’authentification activée par défaut, ce qui signifie que tout utilisateur ayant accès au serveur où la base de données est installée peut ajouter et supprimer des données sans restriction. Afin de sécuriser cette vulnérabilité, ce tutoriel vous guidera dans la création d’un administrative user et l’activation de l’authentification. Vous ferez ensuite des tests pour confirmer que seul cet administrative user a accès à la base de données.
Pour terminer ce tutoriel, vous aurez besoin des éléments suivants :
Depuis la sortie de la version 3.0, le démon MongoDB est configuré pour n’accepter que les connexions provenant de la socket Unix locale, et il n’est pas automatiquement ouvert à l’Internet dans toute son étendue. Toutefois, l’authentification est toujours désactivée par défaut. Cela signifie que tous les utilisateurs qui ont accès au serveur où MongoDB est installé ont également un accès complet aux bases de données.
Dans un premier temps, pour sécuriser cette vulnérabilité, vous créerez un administrative user. Plus tard, vous activerez l’authentification et vous vous connecterez en tant qu’administrative user pour accéder à la base de données.
Pour ajouter un administrative user, vous devez d’abord vous connecter au shell Mongo. L’authentification étant désactivée, vous pouvez le faire avec la commande mongo
, sans aucune autre option :
mongo
Il y aura une sortie au-dessus de l’invite du shell Mongo. Comme vous n’avez pas encore activé l’authentification, vous recevrez un avertissement indiquant que le contrôle d’accès n’est pas activé pour la base de données et que l’accès en lecture et en écriture aux données et la configuration de la base de données ne sont pas restreints :
Output
MongoDB shell version v4.4.0
. . .
2020-06-09T13:26:51.391+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-06-09T13:26:51.391+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
. . .
>
Ces avertissements disparaîtront une fois que vous aurez activé l’authentification, mais pour l’instant, ils signifient que toute personne pouvant accéder à votre serveur Ubuntu pourrait également prendre le contrôle de votre base de données.
Pour illustrer le tout, faites fonctionner la commande show dbs
de Mongo :
show dbs
Cette commande renvoie une liste de toutes les bases de données sur le serveur. Cependant, lorsque l’authentification est activée, la liste change en fonction du rôle de l’utilisateur Mongo ou de son niveau d’accès à certaines bases de données. Cependant, comme l’authentification est désactivée, elle renvoie toutes les bases de données actuellement présentes sur le système sans restriction :
Output
admin 0.000GB
config 0.000GB
local 0.000GB
Dans cet exemple de sortie, seules les bases de données par défaut apparaissent. Cependant, si vous avez des bases de données contenant des données sensibles sur votre système, n’importe quel utilisateur pourrait les trouver avec cette commande.
Dans le cadre de l’atténuation de cette vulnérabilité, cette étape est axée sur l’ajout d’un administrative user. Pour ce faire, vous devez d’abord vous connecter à la base de données admin
. C’est là que sont stockées les informations sur les utilisateurs, comme leurs noms d’utilisateur, mots de passe et rôles :
use admin
Output
switched to db admin
MongoDB est installé avec un certain nombre de méthodes de shell basées sur JavaScript que vous pouvez utiliser pour gérer votre base de données. L’une d’entre elles, la méthode db.createUser
, est utilisée pour créer de nouveaux utilisateurs au sein de la base de données sur laquelle la méthode est exécutée.
Lancez la méthode db.createUser
:
db.createUser(
Cette méthode exige que vous spécifiiez un nom d’utilisateur et un mot de passe pour l’utilisateur, ainsi que les rôles que vous souhaitez lui attribuer. Rappelons que MongoDB stocke ses données dans des documents de type JSON. Ainsi, lorsque vous créez un nouvel utilisateur, tout ce que vous faites est de créer un document contenant les données appropriées de l’utilisateur sous forme de champs individuels.
Comme pour les objets dans JSON, les documents dans MongoDB commencent et se terminent par des accolades ( {
et }
). Pour commencer à ajouter un utilisateur, entrez une accolade d’ouverture :
Note : Mongo n’enregistrera pas la méthode db.createUser
comme complète tant que vous n’aurez pas entré une parenthèse de fermeture. En attendant, l’invite passera d’un signe plus grand que ( >
) à une ellipse ( ...
).
{
Ensuite, remplissez un champ user:
en indiquant entre guillemets le nom d’utilisateur souhaité, suivi d’une virgule. L’exemple suivant précise le nom d’utilisateur AdminSammy, mais vous pouvez entrer le nom d’utilisateur que vous souhaitez :
user: "AdminSammy",
Ensuite, entrez un champ pwd
avec la méthode passwordPrompt()
comme valeur. Lorsque vous exécutez la méthode db.createUser
, la méthode passwordPrompt()
vous invite à saisir votre mot de passe. Cette méthode est plus sûre que l’autre, ce qui consiste à taper votre mot de passe en clair comme vous l’avez fait pour votre nom d’utilisateur.
Note : La méthode passwordPrompt()
est uniquement compatible avec les versions de MongoDB 4.2 et plus récentes. Si vous utilisez une ancienne version de Mongo, vous devrez écrire votre mot de passe en clair, de la même manière que vous avez écrit votre nom d’utilisateur :
pwd: "password",
Veillez également à faire suivre ce champ d’une virgule :
pwd: passwordPrompt(),
Saisissez ensuite les rôles que vous souhaitez attribuer à votre administrative user. Comme vous créez un administrative user, vous devez au minimum lui accorder le rôle de userAdminAnyDatabase
par rapport à la base de données admin
. Cela permettra à l’administrative user de créer et de modifier de nouveaux utilisateurs et rôles. Comme l’administrative user a ce rôle dans la base de données admin
, cela lui donnera également un accès de superuser à l’ensemble du cluster.
En outre, l’exemple suivant accorde également à l’administrative user le rôle de ReadWriteAnyDatabase
. Cela donne à l’administrative user la possibilité de lire et de modifier les données de n’importe quelle base de données du cluster, à l’exception des bases de données config
et local
, qui sont pour la plupart à usage interne :
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
Puis entrez une accolade de fermeture pour marquer la fin du document :
}
Ensuite, entrez une parenthèse de fermeture pour fermer et exécutez la méthode db.createUser
:
)
En résumé, voici à quoi devrait ressembler votre méthode db.createUser
:
> db.createUser(
... {
... user: "AdminSammy",
... pwd: passwordPrompt(),
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
Si la syntaxe de chaque ligne est correcte, la méthode s’exécutera correctement et vous serez invité(e) à entrer un mot de passe :
Output
Enter password:
Entrez un mot de passe fort de votre choix. Ensuite, vous recevrez une confirmation que l’utilisateur a été ajouté :
Output
Successfully added user: {
"user" : "AdminSammy",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
"readWriteAnyDatabase"
]
}
Ensuite, vous pouvez quitter le client MongoDB :
exit
À ce stade, votre utilisateur sera autorisé à saisir des informations d’identification. Cependant, il ne sera pas tenu de le faire tant que vou
#ubuntu
1595774031
PALO ALTO, Calif., June 9, 2020 – ScaleGrid, a leading Database-as-a-Service (DBaaS) provider, has just announced support for their MySQL, PostgreSQL and Redis™ solutions on DigitalOcean. This launch is in addition to their current DigitalOcean offering for MongoDB® database, the only DBaaS to support this database on DigitalOcean.
MySQL and PostgreSQL are the top two open source relational databases in the world, and Redis is the top key-value database. These databases are a natural fit for the developer market that has gravitated towards DigitalOcean since its launch just nine years ago in 2011. The open source model is not only popular with the developer market, but also enterprise companies looking to modernize their infrastructure and reduce spend. DigitalOcean instance costs are also over 28% less expensive than AWS, and over 26% less than Azure, providing significant savings for companies who are struggling in this global climate.
ScaleGrid’s MySQL, PostgreSQL and Redis™ solutions on DigitalOcean are competitively priced starting at just $15/GB, the same as DigitalOcean’s Managed Database solution, but offer on average 30% more storage for the same price. Additionally, ScaleGrid offers several competitive advantages such as full superuser access, custom master-slave configurations, and advanced slow query analysis and monitoring capabilities through their sophisticated platform. To compare more features, check out their ScaleGrid vs. DigitalOcean MySQL, ScaleGrid vs. DigitalOcean PostgreSQL and ScaleGrid vs. DigitalOcean Redis™ pages.
#cloud #database #developer #digital ocean #mysql #postgresql #redis #scalegrid #advanced performance #database infrastructure #dbaas on digitalocean #digitalocean customers #digitalocean instance costs #digitalocean managed databases #high performance ssd #mysql digitalocean #postgresql digitalocean #redis digitalocean #scalegrid digitalocean #scalegrid vs. digitalocean
1625719345
Ubuntu 21.04, codenamed Hirsute Hippo, is released on April 22, 2021. This tutorial is going to you 2 ways to upgrade Ubuntu 20.04/Ubuntu 20.10 to 21.04. The first method uses the graphical update manager and the second method uses command line. Usually, you use the graphical update manager to upgrade Ubuntu desktop and use the command line to upgrade Ubuntu server, but the command-line method works for desktops too.
Ubuntu 20.04 is a long-term support (LTS) release, which will be supported for 5 years. Ubuntu 21.04 is a non-LTS release, which means it will be supported for 9 months only, until January 2022. If you prefer stability over bleeding edge, then stick with Ubuntu 20.04. But if you are the other way around, you can follow this tutorial to upgrade from Ubuntu 20.04 to 21.04.
#ubuntu #ubuntu desktop #ubuntu server #upgrade #ubuntu 20.04
1596719640
Jenkins is an open-source automation server that helps to automate the repetitive tasks involved in the software development process, which includes building, testing, and deployments.
Jenkins was forked from the Oracle Hudson project and written in Java.
Here, we will see how to install Jenkins on Ubuntu 20.04 / Ubuntu 18.04.
Since Jenkins is written in Java, it requires Java 8 or Java 11 to run. Here, I will install the OpenJDK 11 for Jenkins installation.
sudo apt update
sudo apt install -y default-jre apt-transport-https wget
If you want to use the Oracle Java in place of OpenJDK, then use any one of the links to install it.
READ: How To Install Oracle Java on Ubuntu 20.04
READ: How To Install Oracle Java on Ubuntu 18.04
Verify the Java version after the installation.
java -version
Output:
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Jenkins provides an official repository for its packages. To use the Jenkins repository, first, we will need to add the Jenkins public key to the system.
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
Then, add the Jenkins repository to your system.
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
Install Jenkins package using the apt command.
sudo apt update
sudo apt install -y jenkins
The Jenkins service should now be up and running. You can check the status of the Jenkins service using the below command.
sudo systemctl status jenkins
#ubuntu #jenkins #ubuntu 18.04 #ubuntu 20.04
1625711252
Add PHP Repository
Install PHP
Install PHP 8.0 on Ubuntu 20.04 / Ubuntu 18.04
Install PHP 7.x on Ubuntu 20.04 / Ubuntu 18.04
Verify PHP Version
PHP Support for Web Server
Both Apache and Nginx do not support PHP language by default when the browser requests the PHP page. So, we need to install the PHP module package to support PHP.
#ubuntu #php 8.0 #ubuntu 20.04 #ubuntu 18.04
1599543060
All Desktops and Laptops come with a graphics card for displaying images over a monitor. Graphics cards either come with a system board or attached to the system board via a PCI-E slot. Nvidia and AMD manufactured graphics cards are the most commonly used graphics cards in laptops or desktops.
Here, we will see how to install Nvidia drivers on Ubuntu 20.04/Ubuntu 18.04.
#ubuntu #nvidia #ubuntu 18.04 #ubuntu 20.04