Configurazione iniziale del server con Ubuntu 16.04

Quando crei per la prima volta un nuovo server Ubuntu 16.04, ci sono alcuni passaggi di configurazione da eseguire in anticipo come parte della configurazione di base. Ciò aumenterà la sicurezza e l'usabilità del server e fornirà una solida base per le azioni successive.

Image Description

Passaggio 1: accesso root

Per accedere al server, è necessario conoscere l'indirizzo IP pubblico del server. Avrai anche bisogno della password o, se hai installato una chiave SSH per l'autenticazione, la chiave privata per l'account dell'utente "root".

Se non sei già connesso al tuo server, vai avanti e accedi come utente root usando il seguente comando (sostituisci la parola evidenziata con l'indirizzo IP pubblico del tuo server):

ssh root @ your_server_ip

Completa la procedura di accesso accettando l'avviso sull'autenticità dell'host, se viene visualizzato, quindi fornendo l'autenticazione di root (password o chiave privata). Se è la prima volta che accedi al server con una password, ti verrà richiesto di cambiare la password di root.

Informazioni su Root

L'utente root è l'utente amministrativo in un ambiente Linux con privilegi molto ampi. A causa dei maggiori privilegi dell'account di root, si è in realtà scoraggiati dall'utilizzarlo regolarmente. Questo perché parte della potenza inerente all'account di root è la capacità di apportare modifiche molto distruttive, anche per caso.

Il passo successivo consiste nell'impostare un account utente alternativo con una portata di influenza ridotta per il lavoro quotidiano. Ti insegneremo come ottenere maggiori privilegi quando ne hai bisogno.

Passaggio due: crea un nuovo utente

Una volta effettuato il login come root, siamo pronti ad aggiungere il nuovo account utente che useremo per accedere da ora in poi.

Questo esempio crea un nuovo utente chiamato "sammy", ma dovresti sostituirlo con un nome utente che ti piace:

adduser sammy

Ti verranno poste alcune domande, a partire dalla password dell'account.

Inserisci una password sicura e, facoltativamente, inserisci le informazioni aggiuntive se lo desideri. Questo non è richiesto e puoi semplicemente premere INVIO in qualsiasi campo che desideri saltare.

Passaggio tre: privilegi di root

Ora abbiamo un nuovo account utente con i normali privilegi dell'account. Tuttavia, a volte potremmo aver bisogno di svolgere attività amministrative.

Per evitare di dover uscire dal nostro normale utente e accedere di nuovo come account root, possiamo impostare i cosiddetti "superuser" o privilegi di root per il nostro account normale. Ciò consentirà al nostro normale utente di eseguire comandi con privilegi amministrativi inserendo la parola sudo prima di ogni comando.

Per aggiungere questi privilegi al nostro nuovo utente, dobbiamo aggiungere il nuovo utente al gruppo "sudo". Per impostazione predefinita, su Ubuntu 16.04, gli utenti che appartengono al gruppo "sudo" possono utilizzare il comando sudo.

Come root, esegui questo comando per aggiungere il tuo nuovo utente al gruppo sudo (sostituisci la parola evidenziata con il tuo nuovo utente):

usermod -aG sudo sammy

Ora il tuo utente può eseguire comandi con i privilegi di superutente!

Se vuoi aumentare la sicurezza del tuo server, segui il resto dei passaggi in questo tutorial.

Genera una Key Pair

Se non si dispone già di una coppia di chiavi SSH, che consiste in una chiave pubblica e privata, è necessario generarne una. Se hai già una chiave che desideri utilizzare, passa al passaggio Copia la chiave pubblica.

Per generare una nuova coppia di chiavi, immettere il seguente comando sul terminale della macchina locale (ad es. Il computer):

ssh-keygen

Supponendo che il tuo utente locale sia chiamato "localuser", vedrai un output simile al seguente:

ssh-keygen output Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Premi Invio per accettare questo nome e percorso del file (o inserisci un nuovo nome).

Successivamente, ti verrà richiesta una passphrase per proteggere la chiave con. Puoi inserire una passphrase o lasciare vuota la passphrase.

Nota: se si lascia vuota la passphrase, sarà possibile utilizzare la chiave privata per l'autenticazione senza immettere una passphrase. Se inserisci una passphrase, avrai bisogno sia della chiave privata sia della passphrase per accedere. La protezione delle chiavi con passphrase è più sicura, ma entrambi i metodi hanno i loro usi e sono più sicuri dell'autenticazione di base della password.

Questo genera una chiave privata, id_rsa e una chiave pubblica, id_rsa.pub, nella directory .ssh della home directory del localuser. Ricorda che la chiave privata non deve essere condivisa con chi non dovrebbe avere accesso ai tuoi server!

Copia la chiave pubblica

Dopo aver generato una coppia di chiavi SSH, dovrai copiare la tua chiave pubblica sul nuovo server. Copriremo due semplici modi per farlo.

Nota: il metodo ssh-copy-id non funzionerà su DigitalOcean se è stata selezionata una chiave SSH durante la creazione di Droplet. Questo perché DigitalOcean disabilita l'autenticazione della password se è presente una chiave SSH e l'ssh-copy-id si basa sull'autenticazione della password per copiare la chiave.

Se si utilizza DigitalOcean e si seleziona una chiave SSH durante la creazione di Droplet, utilizzare invece l'opzione 2

Opzione 1: usa ssh-copy-id

Se sul computer locale è installato lo script ssh-copy-id, è possibile utilizzarlo per installare la chiave pubblica per qualsiasi utente per il quale si dispone delle credenziali di accesso.

Esegui lo script ssh-copy-id specificando l'utente e l'indirizzo IP del server su cui vuoi installare la chiave, in questo modo:

ssh-copy-id sammy @ your_server_ip

Dopo aver fornito la password al prompt, la tua chiave pubblica verrà aggiunta al file .ssh / authorized_keys dell'utente remoto. La chiave privata corrispondente può ora essere utilizzata per accedere al server.

Opzione 2: installa manualmente la chiave

Supponendo che tu abbia generato una coppia di chiavi SSH usando il passo precedente, usa il seguente comando sul terminale della tua macchina locale per stampare la tua chiave pubblica (id_rsa.pub):

cat ~ / .ssh / id_rsa.pub

Questo dovrebbe stampare la tua chiave SSH pubblica, che dovrebbe apparire come la seguente:

id_rsa.pub contents ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y / i73SppJAhme1dH7W2c47d4gOqB4izP0 + fRLfvbz / tnXFz4iOP / H6eCV05hqUhF + KYRxt9Y8tVMrpDZR2l75o6 + xSbUOMu6xN + uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX / EP3utr2 + zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva + j9CgguyVbUkdzK9KKEuah + pFZvaugtebsU + bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB + KjKiXrAvXUPCI9mWkYS / 1rggpFmu3HbXBnWSUdf localuser@machine.local

Seleziona la chiave pubblica e copiala negli appunti.

Per abilitare l'uso della chiave SSH per l'autenticazione come nuovo utente remoto, è necessario aggiungere la chiave pubblica a un file speciale nella home directory dell'utente.

Sul server, come utente root, immettere il seguente comando per passare temporaneamente al nuovo utente (sostituire il proprio nome utente):

su - sammy

Ora sarai nella home directory del tuo nuovo utente.

Crea una nuova directory chiamata .ssh e limita le sue autorizzazioni con i seguenti comandi:

mkdir ~ / .ssh chmod 700 ~ / .ssh

Ora apri un file in .ssh chiamato authorized_keys con un editor di testo. Useremo nano per modificare il file:

nano ~ / .ssh / authorized_keys

Ora inserisci la tua chiave pubblica (che dovrebbe essere nella tua clipboard) incollandola nell'editor.

Premi CTRL-x per uscire dal file, quindi y per salvare le modifiche apportate, quindi INVIO per confermare il nome del file.

Ora limita le autorizzazioni del file authorized_keys con questo comando:

chmod 600 ~ / .ssh / authorized_keys

Digita questo comando una volta per tornare all'utente root:

exit

Ora la tua chiave pubblica è installata e puoi utilizzare le chiavi SSH per accedere come utente.

Successivamente, ti mostreremo come aumentare la sicurezza del tuo server disabilitando l'autenticazione della password.

Passaggio 5: disabilitare l'autenticazione della password (scelta consigliata)

Ora che il nuovo utente può utilizzare le chiavi SSH per accedere, è possibile aumentare la sicurezza del server disabilitando l'autenticazione basata solo su password. Così facendo limiterà l'accesso SSH al tuo server solo all'autenticazione della chiave pubblica. Cioè, l'unico modo per accedere al tuo server (a parte la console) è possedere la chiave privata che si accoppia con la chiave pubblica che è stata installata.

Nota: disabilita l'autenticazione della password solo se hai installato una chiave pubblica per l'utente come raccomandato nella precedente sezione, fase quattro. Altrimenti, ti chiuderai fuori dal tuo server!

Per disabilitare l'autenticazione della password sul tuo server, segui questi passaggi.

Come root o come nuovo utente sudo, apri la configurazione del daemon SSH:

sudo nano / etc / ssh / sshd_config

Trova la riga che specifica PasswordAuthentication, decommentala eliminando il numero precedente, quindi modifica il suo valore su "no". Dovrebbe apparire come questo dopo aver apportato la modifica:

PasswordAuthentication no

Ecco altre due impostazioni importanti per l'autenticazione solo tramite chiave e impostate per impostazione predefinita. Se non hai ancora modificato questo file, non è necessario modificare queste impostazioni:

PubkeyAuthentication yes ChallengeResponseAuthentication no Quando hai finito di fare le tue modifiche, salva e chiudi il file usando il metodo che abbiamo usato prima (CTRL-X, poi Y, poi ENTER).

Digitare questo per ricaricare il daemon SSH:

sudo systemctl reload sshd

L'autenticazione della password è ora disabilitata. Il tuo server è ora accessibile solo con l'autenticazione della chiave SSH.

Passaggio 6: test di accesso

Ora, prima di disconnettersi dal server, è necessario testare la nuova configurazione. Non disconnettersi finché non si conferma di poter accedere correttamente tramite SSH.

In un nuovo terminale sul computer locale, accedi al tuo server usando il nuovo account che abbiamo creato. Per fare ciò, utilizzare questo comando (sostituire il nome utente e l'indirizzo IP del server):

ssh sammy @ your_server_ip

Se hai aggiunto l'autenticazione della chiave pubblica al tuo utente, come descritto nei passaggi quattro e cinque, la tua chiave privata verrà utilizzata come autenticazione. Altrimenti, ti verrà richiesta la password dell'utente.

Nota sull'autenticazione della chiave: se hai creato la tua coppia di chiavi con una passphrase, ti verrà richiesto di inserire la passphrase per la tua chiave. Altrimenti, se la tua coppia di chiavi è passphrase-less, devi accedere al tuo server senza password.

Una volta che l'autenticazione è stata fornita al server, si verrà registrati come nuovo utente.

Ricorda, se hai bisogno di eseguire un comando con i privilegi di root, digita "sudo" prima di farlo in questo modo:

sudo command_to_run

Passaggio 7: impostare un firewall di base

I server Ubuntu 16.04 possono utilizzare il firewall UFW per assicurarsi che solo le connessioni a determinati servizi siano consentite. Possiamo configurare facilmente un firewall di base usando questa applicazione.

Diverse applicazioni possono registrare i loro profili con UFW al momento dell'installazione. Questi profili consentono a UFW di gestire queste applicazioni per nome. OpenSSH, il servizio che ci consente di connettersi al nostro server ora, ha un profilo registrato con UFW.

Puoi vedere questo digitando:

sudo ufw app list Available applications: OpenSSH Dobbiamo assicurarci che il firewall consenta le connessioni SSH in modo da poter accedere nuovamente alla prossima volta. Possiamo consentire queste connessioni digitando:

sudo ufw allow OpenSSH

Successivamente, possiamo abilitare il firewall digitando:

sudo ufw enable

Digitare y e premere INVIO per procedere. Puoi vedere che le connessioni SSH sono ancora permesse digitando:

sudo ufw status

`Status: active

To Action From


OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)`

Se si installano e configurano servizi aggiuntivi, sarà necessario regolare le impostazioni del firewall per consentire il traffico accettabile.

Dove andare da qui?

A questo punto, hai una solida base per il tuo server. È possibile installare qualsiasi software necessario sul proprio server ora.


Server Side

  • Dependency injections in PHP

    Dependency injections (DI) è un design pattern della Programmazione orientata agli oggetti il cui scopo è quello di semplificare lo sviluppo e migliorare la testabilità di software di grandi dimensioni.

    Leggi
  • Il garante privacy sta sviluppando un crawler per scandagliare il web alla ricerca di siti non in regola con il GDPR

    Il garante privacy sta sviluppando un crawler per scandagliare il web alla ricerca di siti non in regola con il GDPR

    Leggi
  • Configurazione iniziale del server con Ubuntu 16.04

    Quando crei per la prima volta un nuovo server Ubuntu 16.04, ci sono alcuni passaggi di configurazione da eseguire in anticipo come parte della configurazione di base. Ciò aumenterà la sicurezza e l'usabilità del server e fornirà una solida base per le azioni successive.

    Leggi
  • Come installare WordPress con LAMP su Ubuntu 16.04

    WordPress è il CMS più popolare su Internet. Ti consente di impostare facilmente blog e siti web flessibili su un backend MySQL con elaborazione PHP. WordPress ha visto un'adozione incredibile ed è un'ottima scelta per far funzionare rapidamente un sito web. Dopo l'installazione, è possibile eseguire quasi tutta l'amministrazione tramite il front-end Web.

    Leggi
  • Come proteggere WordPress dagli attacchi XML-RPC

    WordPress è una piattaforma CMS (content management system) popolare e potente. La sua popolarità può portare ad un' attenzione indesiderata sotto forma di traffico malevolo appositamente mirato a un sito WordPress.

    Leggi
  • Servizi di Object Storage vs. servizi di Block Storage

    Lo storage di dati flessibile e scalabile è un requisito di base per la maggior parte delle applicazioni e dei servizi sviluppati con tecniche e strumenti moderni.

    Leggi
  • Come fare il backup di un sito wordpress sul cloud di Digital Ocean

    Il servizio Spaces di DigitalOcean può fornire una soluzione di archiviazione di oggetti per i dati dei siti di WordPress

    Leggi
  • Come installare lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 16.04

    In questa guida, verrà installato uno stack LAMP su una macchina Ubuntu 16.04. Ubuntu soddisferà il nostro primo requisito: un sistema operativo Linux.

    Leggi
  • Installare il certificato Let's Encrypt per Apache su Ubuntu 16.04

    Questo tutorial vi spiegherà come configurare un certificato TLS / SSL da Let's Encrypt su un server Ubuntu 16.04 che esegue Apache come server web.

    Leggi

Logo

Sviluppo progetti web dall'analisi alla produzione

Interventi di implementazione su software esistenti.

Contatti

4, av du Ray, Nice
France, FR
Email: massimo.ivaldi@codegarage.it