Dopo aver installato correttamente il tuo server Debian/Ubuntu, alcuni passaggi di configurazione sono essenziali per migliorare la sicurezza e la funzionalità del server. In questa guida, ti guideremo attraverso i passaggi di base nella configurazione iniziale del server del server Debian 9 / Ubuntu 18.04. Questi passaggi di base rafforzeranno il tuo server e consentiranno l'esecuzione delle operazioni successive senza interruzioni.
Accedi come utente root
Il passaggio iniziale per configurare il server è accedere come utente root. Ma prima devi avere l'indirizzo IP del tuo server e la Password o una chiave privata per l'autenticazione. Per accedere, apri il tuo terminale Linux ed esegui il comando seguente. Assicurati di sostituire l'indirizzo IP del server con il tuo indirizzo IP.
ssh user@ip-address
In questa guida utilizziamo il server Ubuntu 18.04 con un indirizzo IP pubblico 38.76.11.180
.
Per accedere usando ssh tramite il terminale, il comando è
ssh [email protected]
Se accedi per la prima volta, ti verrà richiesto di verificare l'autenticità del server.
Digita "Sì" e premi Invio. Ti verrà quindi richiesta la password del server. Fornisci la password corretta e premi Invio.
Questo ti farà accedere al prompt della shell del server come mostrato di seguito
Grande! Ora che abbiamo effettuato correttamente l'accesso al nostro server, passiamo al secondo passaggio
Crea un nuovo utente
Per le migliori pratiche di sicurezza, l'uso dell'account root per le attività amministrative è altamente sconsigliato. Perché è così? L'esecuzione del tuo server come root ti rende incline a commettere errori non intenzionali e costosi che potrebbero essere dannosi per il tuo server. Puoi facilmente fare qualcosa di dannoso per il tuo sistema che potrebbe causare danni irreversibili al tuo sistema.
Per questo motivo, creeremo un nuovo utente non root e in seguito gli concederemo i privilegi di amministratore. In questo modo, ogni volta che si tenta di eseguire un'attività a livello di root, verrà richiesta la password. Questo ti darà un po' di tempo per fermarti e pensare alle conseguenze dell'esecuzione del comando e fermarti se noti un errore costoso nell'esecuzione del comando.
Per creare un nuovo utente esegui
adduser user_name
Aggiungeremo un nuovo utente 'james'
adduser james
Ti verrà richiesta la password dell'utente e alcune domande aggiuntive. fornire le informazioni necessarie
Perfetto! per verificare la creazione dell'utente visualizzare il /etc/passwd
e confermare l'esistenza dell'utente.
cat /etc/passwd
Risultato campione
L'ultima riga sopra mostra le informazioni sull'utente appena creato.
Concedi privilegi amministrativi al nuovo utente
Finora il nuovo utente ha i privilegi dell'account regolari. Abbiamo bisogno di impostare i privilegi di root per il nostro utente appena creato in modo che possano eseguire attività amministrative aggiungendo sudo
prima di qualsiasi operazione.
Per fare ciò, dobbiamo aggiungere l'utente a sudo gruppo per evitare di disconnettersi e accedere come root ogni volta che si eseguono attività amministrative.
La sintassi per raggiungere questo obiettivo è
usermod -aG sudo user_name
In questo caso, il comando per concedere i privilegi sudo all'utente 'james' sarà
usermod -aG sudo james
Ora puoi disconnetterti e accedere con il nuovo utente utilizzando il comando come indicato in precedenza
ssh [email protected]
Dopo aver effettuato correttamente l'accesso verificando l'autenticità del server e fornendo la password corretta, ora puoi eseguire qualsiasi attività di superutente facendo precedere il comando con sudo
Ad esempio, per aggiornare il sistema utilizzando l'account, eseguire il comando seguente
sudo apt update
Ti verrà richiesta una password e dopo averla fornita, l'operazione avrà inizio.
Configura un firewall di base
I server Debian e Ubuntu utilizzano il firewall UFW per consentire o negare il traffico in entrata o in uscita dal server.
Per visualizzare la connessione esistente nel firewall eseguire
sudo ufw app list
Come previsto, verrà visualizzato OpenSSH perché al momento stiamo usando ssh per connetterci al server
Risultato
Per consentire una connessione tramite il firewall, eseguire il comando seguente.
ufw allow service_name
Ad esempio, per consentire le connessioni SSH per un nuovo server eseguito:
sudo ufw allow OpenSSH
Risultato
Per aprire una porta specifica sul firewall, usa la sintassi
sudo ufw allow port/protocol
Ad esempio
sudo ufw allow 80/tcp
Risultato
Per controllare lo stato del firewall esegui
sudo ufw status
Risultato
Per abilitare il firewall, esegui il comando seguente.
sudo ufw enable
Quando richiesto, digita yes
e premere 'INVIO' per abilitare il firewall ed effettuare le modifiche
Per visualizzare nuovamente lo stato del firewall e le connessioni/porte aperte esistenti, eseguire il comando
Abilita l'autenticazione senza password per il nuovo utente
Al momento, ci stiamo connettendo al nostro server utilizzando il protocollo SSH con autenticazione tramite password. Per le migliori pratiche di sicurezza, si consiglia vivamente di configurare le chiavi SSH senza l'autenticazione tramite password. Le chiavi SSH sono disponibili in coppia:una chiave pubblica e una chiave privata.
La chiave privata risiede sul computer client mentre la chiave pubblica risiede sul server a cui ci stiamo connettendo. Una volta impostata l'autenticazione con chiave SSH, l'autenticazione tramite password deve essere disabilitata. Ciò garantisce che solo l'utente con la chiave privata possa connettersi al server su cui risiede la chiave pubblica.
Passaggio 1. Genera la chiave pubblica
Per generare la coppia di chiavi, esegui il comando seguente sulla macchina client
ssh-keygen
Otterrai l'output come mostrato
Premi INVIO per salvare la coppia di chiavi è .ssh/
sottodirectory nella tua home directory. In alternativa, puoi specificare il tuo percorso.
Successivamente, ti verrà richiesta una passphrase sicura che è altamente consigliata per aggiungere uno strato protettivo aggiuntivo. Se desideri fare a meno di una passphrase, premi INVIO.
Infine, otterrai il seguente output
A questo punto, hai sia la chiave privata che quella pubblica. Sono stati salvati nel .ssh
directory nella tua directory home. In questo caso, il percorso è /root.ssh
cat /root/.ssh
Risultato
id_rsa
è la chiave privata
id_rsa_pub
è la chiave pubblica
Passaggio 2. Copia la chiave pubblica
Per copiare la chiave pubblica sul server, utilizzeremo ssh-copy-id
comando.
La sintassi sarà
ssh-copy-id user@remote-server
In questo caso, eseguiremo
ssh-copy-id [email protected]
Otterrai un output simile a quello qui sotto
Il id_rsa.pub
chiave che è la chiave pubblica è stata copiata sul server.
Ora, se provi ad accedere usando la sintassi ssh user@server-ip
, non ti verrà richiesta una password!
Disabilita l'autenticazione tramite password
Qualcuno può ancora accedere al nostro server se ha ottenuto la password. Per eliminare questo rischio, dobbiamo disabilitare l'autenticazione della password SSH.
Per raggiungere questo obiettivo, apriremo il file di configurazione di SSH
sudo vim /etc/ssh/sshd_config
Cerca la sezione indicata come PasswordAuthentication
.
Commenta la riga e imposta il valore su no
Salva ed esci.
Per implementare le modifiche riavviare il demone SSH
sudo systemctl restart ssh
Ora puoi avviare un nuovo terminale e provare ad accedere utilizzando la password e vedere se l'autenticazione tramite password è stata disabilitata.
Ultima parola
A questo punto, dovresti avere accesso al server utilizzando l'autenticazione basata su chiave SSH configurata sul tuo server remoto e non utilizzando la password SSH.
Il tuo server è ora completamente configurato e ha una solida base di sicurezza. Assicurati di mantenere la tua chiave pubblica al sicuro. Lontano da occhi indiscreti 😀