GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare e proteggere MongoDB 4 in CentOS 8

MongoDB è un sistema di database NoSQL multipiattaforma scritto in C++. MongoDB è diverso dai tradizionali database SQL basati su tabelle come MySQL e PostgreSQL ed è appositamente progettato per l'archiviazione di dati ad alto volume. MongoDB utilizza documenti simili a JSON con schemi dinamici e non richiede uno schema predefinito prima di aggiungere dati a un database. MongoDB è gratuito, open source e include un ricco set di funzionalità tra cui archiviazione, replica dei dati, query ad hoc, bilanciamento del carico e molto altro.

In questo tutorial, spiegheremo come installare e proteggere MongoDB su CentOS 8.

Prerequisiti

  • Un nuovo VPS CentOS 8 sulla piattaforma Atlantic.net Cloud.
  • Una password di root configurata sul tuo server.

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 1 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.

dnf update -y

Passaggio 2:aggiungi il repository MongoDB

Puoi crearlo con il seguente comando:

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

Aggiungi le seguenti righe:

[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

Salva e chiudi il file quando hai finito. Successivamente, puoi procedere con l'installazione di MongoDB nel tuo sistema.

Fase 3 – Installa MongoDB

Ora puoi installare MongoDB semplicemente eseguendo il seguente comando:

dnf install mongodb-org -y

Una volta completata l'installazione, avvia il servizio MongoDB e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:

systemctl start mongod
systemctl enable mongod

Ora puoi controllare lo stato del servizio MongoDB usando il seguente comando:

systemctl status mongod

Dovresti vedere il seguente output:

● 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.

Ora, MongoDB è in esecuzione e in ascolto sulla porta 27017. Puoi verificarlo con il seguente comando:

netstat -pnltu | grep 27017

Dovresti ottenere il seguente output:

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

Puoi anche accedere alla shell di MongoDB con il seguente comando:

mongo

Dovresti ottenere il seguente output:

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()
---

Puoi uscire dalla shell di MongoDB con il seguente comando:

>exit

Fase 4:abilita l'autenticazione MongoDB

nano /etc/mongod.conf

Aggiungi la seguente riga alla fine del file:

security:
  authorization: enabled

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio MongoDB per applicare le modifiche:

systemctl restart mongod

Passaggio 5:crea un utente amministratore MongoDB

Successivamente, dovrai creare un utente amministrativo con tutti i privilegi per eseguire attività amministrative.

Innanzitutto, accedi alla shell MongoDB con il seguente comando:

mongo

Dovresti ottenere il seguente output:

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

Quindi, cambia il database in admin con il seguente comando:

> use admin

Quindi, crea un utente amministratore MongoDB chiamato myadmin con il seguente comando:

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

Una volta creato l'utente, dovresti ottenere il seguente output:

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

Quindi, esci dalla shell di MongoDB con il seguente comando:

>exit

Passaggio 6:verifica dell'autenticazione MongoDB

A questo punto MongoDB è configurato con l'autenticazione. Ora ti verrà richiesto di fornire un nome utente e una password prima di interagire con MongoDB.

Quindi, connetti MongoDB senza autenticazione:

mongo

Dovresti ottenere il seguente output:

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

Ora, esegui il seguente comando per elencare gli utenti MongoDB:

> show users

Dovresti ricevere il seguente errore:

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

Questo dimostra che non puoi elencare gli utenti senza autenticarti.

Ora esci da MongoDB con il seguente comando:

>exit

Fase 7:accedi a MongoDB con l'utente amministrativo

Ora connettiamoci al MongoDB con l'utente amministrativo:

mongo -u myadmin -p --authenticationDatabase admin

Ti verrà chiesto di fornire la tua password di amministratore come mostrato di seguito:

MongoDB shell version v4.2.5
Enter password:

Fornisci la tua password di amministratore e premi Invio . Dovresti ottenere il seguente output:

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

Quindi, cambia il database in admin ed elenca gli utenti con il seguente comando:

> use admin
> show users

Dovresti ottenere il seguente output:

{
            "_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"
            ]
}

Ora esci dalla shell MongoDB con il seguente output:

> exit

Conclusione

Nella guida sopra, abbiamo imparato come installare MongoDB su CentOS 8. Abbiamo anche mostrato come abilitare l'autenticazione MongoDB e creare un utente amministrativo. Il tuo MongoDB sul tuo VPS Atlantic.Net è ora protetto con nome utente e password:se non hai un VPS da Atlantic.Net, inizia oggi stesso con l'hosting VPS per installare MongoDB!


Linux
  1. Come installare e proteggere MongoDB su Debian 11

  2. Come installare MongoDB su CentOS 8 / RHEL 8

  3. Come installare MongoDB 4.4/4.2 su CentOS 7/RHEL 7

  4. Come installare MongoDB su Ubuntu 20.04 e CentOS 8

  5. Come installare FlintCMS su CentOS 7

Come installare MongoDB su CentOS 6

Come installare MongoDB su CentOS 7

Come installare e configurare GlusterFS su CentOS 7/CentOS 8

Come installare e proteggere phpMyAdmin su CentOS 8

Come installare MongoDB versione 4.0 su Centos 7?

Come installare Mongodb in CentOS?