Introduzione
Quando si crea per la prima volta un nuovo server, ci sono alcuni passaggi di configurazione che si dovrebbero prendere presto come parte della configurazione di base. Ciò aumenterà la sicurezza e l’usabilità del server e vi darà una solida base per le azioni successive.
Fase uno — Login root
Per accedere al server, è necessario conoscere l’indirizzo IP pubblico del server e la password per l’account utente “root”. Se non hai già effettuato l’accesso al tuo server, potresti voler seguire il primo tutorial di questa serie, Come connetterti al tuo Droplet con SSH, che copre questo processo in dettaglio.
Se non si è già connessi al server, andare avanti e accedere come root
utente utilizzando il seguente comando (sostituire la parola evidenziata con il server, l’indirizzo IP pubblico):
- ssh [email protected]_IP_ADDRESS
Completare il processo di login, accettando l’avviso circa host autenticità, se appare, fornendo il vostro radice di autenticazione (password o chiave privata). Se è la prima volta che accedi al server, con una password, ti verrà anche richiesto di cambiare la password di root.
Informazioni su Root
L’utente root è l’utente amministrativo in un ambiente Linux che ha privilegi molto ampi. A causa dei privilegi accresciuti dell’account root, in realtà sei scoraggiato dall’usarlo regolarmente. Questo perché parte del potere inerente all’account root è la capacità di apportare cambiamenti molto distruttivi, anche per caso.
Il passo successivo è quello di impostare un account utente alternativo con una portata ridotta di influenza per il lavoro quotidiano. Ti insegneremo come ottenere maggiori privilegi durante i momenti in cui ne hai bisogno.
Fase due — Creare un nuovo utente
Una volta effettuato l’accesso comeroot
, siamo pronti ad aggiungere il nuovo account utente che useremo per accedere da ora in poi.
Questo esempio crea un nuovo utente chiamato “demo”, ma dovresti sostituirlo con un nome utente che ti piace:
- adduser demo
Quindi, assegnare una password al nuovo utente (di nuovo, sostituire “demo” con l’utente appena creato):
- passwd demo
Inserire una password complessa e ripeterla di nuovo per verificarla.
Fase tre — Privilegi di root
Ora, abbiamo un nuovo account utente con privilegi di account regolari. Tuttavia, a volte potremmo aver bisogno di svolgere compiti amministrativi.
Per evitare di dover uscire dal nostro utente normale e accedere nuovamente come account root, possiamo impostare ciò che è noto come “super user” o privilegi di root per il nostro account normale. Ciò consentirà al nostro normale utente di eseguire comandi con privilegi amministrativi mettendo la parola sudo
prima di ogni comando.
Per aggiungere questi privilegi al nostro nuovo utente, dobbiamo aggiungere il nuovo utente al gruppo “wheel”. Per impostazione predefinita, su CentOS 7, gli utenti che appartengono al gruppo “wheel”possono utilizzare il comando sudo
.
Asroot
, esegui questo comando per aggiungere il tuo nuovo utente al gruppo wheel (sostituisci la parola evidenziata con il tuo nuovo utente):
- gpasswd -a demo wheel
Ora l’utente può eseguire comandi con privilegi super user! Per ulteriori informazioni su come funziona, controlla il nostro tutorial su sudoers.
Fase quattro — Aggiungi autenticazione a chiave pubblica (consigliata)
Il passo successivo per proteggere il server consiste nell’impostare l’autenticazione a chiave pubblica per il nuovo utente. L’impostazione di questo aumenterà la sicurezza del server richiedendo una chiave SSH privata per accedere.
Genera una coppia di chiavi
Se non si dispone già di una coppia di chiavi SSH, che consiste in una chiave pubblica e privata, è necessario generarne una. Se si dispone già di una chiave che si desidera utilizzare, passare alla fase Copia la chiave pubblica.
Per generare una nuova coppia di chiavi, immettere il seguente comando al terminale del computer locale:
- ssh-keygen
Supponendo che il tuo utente locale viene chiamato “localuser”, verrà visualizzato un output simile al seguente:
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
premere “invio” per accettare il nome del file e il percorso (o immettere un nuovo nome).
Successivamente, ti verrà richiesta una passphrase con cui fissare la chiave. È possibile 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 inserire una passphrase. Se inserisci una passphrase, avrai bisogno sia della chiave privata che della passphrase per accedere. Proteggere le chiavi con le passphrase è più sicuro, ma entrambi i metodi hanno i loro usi e sono più sicuri dell’autenticazione della password di base.
Questo genera una chiave privata,id_rsa
, e una chiave pubblica,id_rsa.pub
, nella directory.ssh
della home directory dell’utente locale. Ricorda che la chiave privata non deve essere condivisa con chiunque non dovrebbe avere accesso ai tuoi server!
Copia la chiave pubblica
Dopo aver generato una coppia di chiavi SSH, si desidera copiare la chiave pubblica sul nuovo server. Copriremo due semplici modi per farlo.
Nota: il metodossh-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 ssh-copy-id
si basa sull’autenticazione della password per copiare la chiave.
Se stai usando DigitalOcean e hai selezionato una chiave SSH durante la creazione di Droplet, usa invece l’opzione 2.
Opzione 1: Usa ssh-copy-id
Se la tua macchina locale ha installato lo scriptssh-copy-id
, puoi usarlo per installare la tua chiave pubblica a qualsiasi utente per cui hai le credenziali di accesso.
Eseguire lo scriptssh-copy-id
specificando l’utente e l’indirizzo IP del server su cui si desidera installare la chiave, in questo modo:
- ssh-copy-id [email protected]_IP_ADDRESS
Dopo aver fornito la password al prompt, la 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: Installare Manualmente la Chiave
Supponendo che si generata una coppia di chiavi SSH utilizzando il passaggio precedente, utilizzare il seguente comando al terminale del computer locale per stampare la vostra chiave pubblica (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
Questo dovrebbe stampare la propria chiave pubblica SSH, che dovrebbe essere qualcosa di simile al seguente:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
Seleziona la chiave pubblica e copiala negli appunti.
Aggiungi chiave pubblica al nuovo utente remoto
Per abilitare l’uso della chiave SSH per autenticarsi come nuovo utente remoto, è necessario aggiungere la chiave pubblica a un file speciale nella directory home dell’utente.
Sul server, come utente root
, inserisci il seguente comando per passare al nuovo utente (sostituisci il tuo nome utente):
- su - demo
Ora sarai nella home directory del tuo nuovo utente.
Crea una nuova directory chiamata.ssh
e limita i suoi permessi con i seguenti comandi:
- mkdir .ssh
- chmod 700 .ssh
Ora apri un file in .ssh chiamato authorized_keys
con un editor di testo. Useremo vi per modificare il file:
- vi .ssh/authorized_keys
Entra in modalità inserisci, premendo i
, quindi inserisci la tua chiave pubblica (che dovrebbe essere negli appunti) incollandola nell’editor. Ora premi ESC
per lasciare la modalità di inserimento.
Immettere :x
quindi ENTER
per salvare e uscire dal file.
limitare le autorizzazioni di file authorized_keys con questo comando:
- chmod 600 .ssh/authorized_keys
Digitare questo comando una volta per tornare alla root
utente:
- exit
Ora si può SSH il login con il nuovo utente, utilizzando la chiave privata di autenticazione.
Per saperne di più su come funziona l’autenticazione chiave, leggi questo tutorial: Come configurare l’autenticazione basata su chiave SSH su un server Linux.
Fase Cinque — Configurare SSH Daemon
Ora che abbiamo il nostro nuovo account, possiamo proteggere il nostro server un po ‘ modificando la sua configurazione SSH daemon (il programma che ci permette di accedere in remoto) per impedire l’accesso remoto SSH all’account root.
Inizia aprendo il file di configurazione con il tuo editor di testo come root:
- vi /etc/ssh/sshd_config
Qui, abbiamo la possibilità di disabilitare l’accesso root tramite SSH. Questa è generalmente un’impostazione più sicura poiché ora possiamo accedere al nostro server tramite il nostro normale account utente e aumentare i privilegi quando necessario.
Per disabilitare gli accessi root remoti, dobbiamo trovare la riga che assomiglia a questa:
#PermitRootLogin yes
Suggerimento: Per cercare questa riga, digitare /PermitRoot
quindi premere ENTER
. Questo dovrebbe portare il cursore al carattere ” P ” su quella linea.
Decommentare la riga eliminando il simbolo ” # ” (premereShift-x
).
Ora sposta il cursore su “sì” premendoc
.
Ora sostituisci “sì” premendocw
, quindi digitando “no”. Premi Escape
quando hai finito di modificare. Dovrebbe assomigliare a questo:
PermitRootLogin no
Disabilitare l’accesso root remoto è altamente raccomandato su ogni server!
Immettere :x
quindi ENTER
per salvare e uscire dal file.
Reload SSH
Ora che abbiamo apportato le nostre modifiche, dobbiamo riavviare il servizio SSH in modo che utilizzi la nostra nuova configurazione.
Digitare questo per riavviare SSH:
- systemctl reload sshd
Ora, prima di uscire dal server, dovremmo testare la nostra nuova configurazione. Non vogliamo disconnetterci finché non possiamo confermare che le nuove connessioni possono essere stabilite con successo.
Apre una nuova finestra del terminale. Nella nuova finestra, dobbiamo iniziare una nuova connessione al nostro server. Questa volta, invece di utilizzare l’account root, vogliamo utilizzare il nuovo account che abbiamo creato.
Per il server che abbiamo configurato sopra, connettiti usando questo comando. Sostituisci le tue informazioni dove è appropriato:
- ssh [email protected]_IP_ADDRESS
Nota: Se si utilizza PuTTY per connettersi ai server, assicurarsi di aggiornare il numero di porta della sessione in modo che corrisponda alla configurazione corrente del server.
Verrà richiesta la password del nuovo utente configurata. Dopo di che, si sarà loggato come nuovo utente.
Ricorda, se hai bisogno di eseguire un comando con privilegi di root, digita “sudo” prima di esso in questo modo:
- sudo command_to_run
Se tutto va bene, puoi uscire dalle tue sessioni digitando:
- exit
Dove andare da qui?
A questo punto, hai una solida base per il tuo server. È possibile installare qualsiasi software necessario sul server ora.
Se non sei sicuro di cosa vuoi fare con il tuo server, controlla il prossimo tutorial di questa serie per ulteriori passaggi consigliati per i nuovi server CentOS 7. Copre cose come abilitare fail2ban
per ridurre l’efficacia degli attacchi di forza bruta, delle impostazioni del firewall di base, dell’NTP e dei file di scambio. Fornisce inoltre collegamenti a tutorial che mostrano come impostare applicazioni Web comuni.
Se vuoi solo esplorare, dai un’occhiata al resto della nostra community per trovare altri tutorial. Alcune idee popolari stanno configurando uno stack LAMP o uno stack LEMP, che ti permetterà di ospitare siti web.