Introduzione
MongoDB è un database NoSQL (non relazionale) orientato ai documenti. È stato sviluppato per gestire grandi quantità di dati eterogenei e per scalare orizzontalmente, il che significa che è in grado di gestire grandi quantità di dati su più server.
In MongoDB, i dati vengono salvati in documenti JSON (JavaScript Object Notation), il che significa che i dati possono essere facilmente letti e scritti da applicazioni in vari linguaggi di programmazione. Inoltre, MongoDB supporta l'indicizzazione, la ricerca e la query di dati, rendendo facile per gli sviluppatori trovare e manipolare i dati in modo efficiente.
MongoDB è popolare in una vasta gamma di applicazioni, come applicazioni web, servizi di geolocalizzazione, applicazioni di analisi dei dati e molto altro ancora. Grazie alla sua scalabilità, MongoDB è in grado di gestire grandi quantità di dati in modo efficiente e può essere facilmente implementato su cloud o su un'infrastruttura di server distribuita.
In questo articolo tratteremo i seguenti argomenti:
- Installazione di MongoDB su Ubuntu 22.04
- Proteggere MongoDB con una password
- Abilitazione dell'autenticazione per MongoDB
- Limitare l'accesso a MongoDB
- Apertura della porta nel firewall con UFW
Prerequisiti
Prima di procedere, assicurati di avere una nuova installazione di Ubuntu 22.04 e un utente non root con privilegi sudo. Inoltre, assicurati che il tuo sistema sia aggiornato eseguendo il seguente comando:
sudo apt update and sudo apt upgrade
sudo apt install gnupg2
Una volta che il tuo sistema è aggiornato, possiamo procedere con l'installazione di MongoDB.
Installare MongoDB
Installare MongoDB su Ubuntu è un processo relativamente semplice. Puoi installarlo utilizzando il gestore pacchetti Ubuntu oppure puoi scaricarlo direttamente dal sito Web MongoDB.
I passaggi seguenti configureranno il PPA MongoDB ufficiale sul tuo sistema Ubuntu e lo installeranno:
Importa la chiave GPG di MongoDB:
wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc
cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null
Questi comandi importeranno la chiave GPG per il repository MongoDB, che viene utilizzata per verificare l'autenticità dei pacchetti nel repository.
Aggiungi il repository MongoDB al gestore pacchetti del tuo sistema:
sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list'
Questo comando aggiungerà il repository MongoDB all'elenco dei repository nel gestore pacchetti del tuo sistema.
Aggiorna l'elenco dei pacchetti disponibili:
sudo apt update
Questo comando aggiornerà l'elenco dei pacchetti disponibili per includere i pacchetti nel repository MongoDB.
Installa MongoDB:
sudo apt install mongodb-org
Questo comando installerà l'ultima versione stabile di MongoDB dal repository MongoDB.
Avvia il servizio MongoDB:
sudo systemctl start mongod
Questo comando avvierà il servizio MongoDB.
I passaggi precedenti installeranno correttamente MongoDB su un sistema Ubuntu.
Successivamente, è importante abilitare l'autenticazione per il database MongoDB. Ciò richiederà agli utenti di inserire un nome utente e una password per accedere al database. Senza l'autenticazione abilitata, chiunque abbia accesso al server sarebbe in grado di visualizzare e modificare i dati nel database.
Proteggere MongoDB con una password
Per impostazione predefinita, MongoDB non richiede una password per accedere al database. Tuttavia, si consiglia di impostare una password per proteggere il database e impedire l'accesso non autorizzato.
Per impostare una password per MongoDB, attenersi alla seguente procedura:
Connettiti alla shell MongoDB:
mongosh
Questo comando aprirà la shell MongoDB, che è un'interfaccia della riga di comando per l'interazione con il database.
Passa al database di amministrazione:
use admin
Questo comando passerà al database admin
, utilizzato per gestire gli utenti e i ruoli nel database.
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
})
Sostituire admin
e password
con il nome utente e la password desiderati per il nuovo utente. Questo comando creerà un nuovo utente con il ruolo root
nel database admin
. Il ruolo root ha accesso completo a tutte le risorse e funzioni del database.
Esci dalla shell MongoDB:
exit
Abilitare l'autenticazione
Per impostazione predefinita, MongoDB non richiede l'autenticazione per accedere al database. Tuttavia, si consiglia di abilitare l'autenticazione per proteggere il database e impedire l'accesso non autorizzato.
Per abilitare l'autenticazione per MongoDB, attenersi alla seguente procedura:
Modifica il file di configurazione di MongoDB:
sudo nano /etc/mongod.conf
Questo comando aprirà il file di configurazione MongoDB nell'editor di testo Nano.
Trova la sezione sicurezza nel file di configurazione e aggiungi le seguenti righe:
security:
authorization: enabled
Ciò abiliterà la funzione di autorizzazione per MongoDB, che richiede agli utenti di autenticarsi con un nome utente e una password per accedere al database.
Salva le modifiche ed esci dall'editor di testo.
Riavvia il servizio MongoDB:
sudo systemctl restart mongod
Questo comando applicherà le modifiche alla configurazione di MongoDB e riavvierà il servizio.
Limitazione dell'accesso a MongoDB
Per impostazione predefinita, MongoDB consente connessioni da qualsiasi indirizzo IP. Tuttavia, si consiglia di limitare l'accesso al database a indirizzi o intervalli IP specifici per migliorare la sicurezza.
Per limitare l'accesso a MongoDB, attenersi alla seguente procedura:
Modifica il file di configurazione di MongoDB:
sudo nano /etc/mongod.conf
Questo comando aprirà il file di configurazione MongoDB nell'editor di testo Nano.
Trova la sezione net nel file di configurazione e aggiungi le seguenti righe:
net:
bindIp: 127.0.0.1,192.168.1.0/24
Sostituisci 127.0.0.1,192.168.1.0/24 con gli indirizzi o gli intervalli IP desiderati da consentire. Ciò limiterà l'accesso al database agli indirizzi o agli intervalli IP specificati.
Salva le modifiche ed esci dall'editor di testo.
Riavvia il servizio MongoDB:
sudo systemctl restart mongod
Questo comando applicherà le modifiche alla configurazione di MongoDB e riavvierà il servizio.
Aprire la porta del firewall (UFW)
Per aprire la porta MongoDB (27017) nel firewall su un sistema che esegue ufw, procedi nel seguente modo:
Controlla lo stato del firewall:
sudo ufw status
Questo comando mostrerà lo stato corrente del firewall. Se il firewall non è attivo, dovrai avviarlo prima di poter aprire la porta MongoDB.
Se il firewall non è attivo, avvialo eseguendo il seguente comando:
sudo ufw enable
Questo comando abiliterà il firewall e consentirà le connessioni in entrata al sistema.
Apri la porta MongoDB nel firewall:
sudo ufw allow 27017
Questo comando aprirà la porta MongoDB (27017) nel firewall e consentirà le connessioni in entrata alla porta.
Controlla l'elenco delle porte aperte per verificare che la porta MongoDB sia aperta:
sudo ufw status
Dopo questi passaggi, la porta MongoDB dovrebbe essere aperta nel firewall e dovresti essere in grado di connetterti al database da altri sistemi.
Conclusione
In questo articolo, abbiamo spiegato come installare e proteggere MongoDB su Ubuntu 22.04. Abbiamo spiegato come installare MongoDB, impostare una password, abilitare l'autenticazione per il database e limitare l'accesso a specifici indirizzi o intervalli IP. Seguendo questi passaggi, puoi assicurarti che l'installazione di MongoDB sia sicura e accessibile solo agli utenti autorizzati.