Cloud e ServerGuide & TutorialServerTutorial

Come rendere sicuro il tuo server Linux

Rendere sicuro il proprio server Linux è essenziale per portare avanti la propria attività online con successo. Senza un elevato livello di sicurezza è possibile che vengano compromesse sia la continuità di servizio che l’integrità di dati importanti per il proprio business. Diamo uno sguardo ad alcuni degli step necessari per garantire protezione a tutti i dati che girano sul proprio server Linux.

Assicurarsi che il server sia aggiornato

La prima cosa da verificare appena si accede al server tramite root è verificare che il server sia aggiornato. Qualora non dovesse esserlo, occorre fare molta attenzione prima di procedere con un aggiornamento, specialmente se ci si trova ad operare su un VPS.

È consigliabile, dunque, consultare il proprio host per verificare la fattibilità dell’operazione.

Settare le chiavi SSH

Le chiavi SSH permettono di connettersi al server in modo estremamente sicuro.

Il modo più comune di connettersi a un server via SSH è utilizzare username e password. Per aumentare il livello di sicurezza e impedire accessi non autorizzati, è possibile utilizzare l’accesso con chiave pubblica e privata.

La chiave pubblica sarà impostata nel server, la chiave privata nel proprio PC. Quando si tenterà una connessione verrà stabilita una comunicazione sicura, garantita dalla comparazione delle due chiavi. L’operazione è importante per evitare accessi di terze parti non autorizzate.

Per procedere con la creazione della coppia di chiavi, sarà necessario digitare nel proprio PC il seguente comando:

ssh-keygen - rsa -C  "you@example.com"
  • Premere <Enter> per accettare le location di default e i file.
  • Cliccare su <Enter> e reinserire una passphrase per l’utenza (può essere anche vuota).

A questo punto sarà possibile copiare nel server remoto la propria chiave pubblica:

ssh-copy-id root@host.servername.com

Verrà richiesto l’accesso con password la prima volta. Se l’operazione è andata a buon fine, sarà possibile collegarsi nel server digitando semplicemente:

ssh host.servername.com 

Controllare e impostare il firewall

Nel caso di sistemi Linux Debian based è possibile gestire la configurazione firewall in modo semplificato tramite il tool ufw, che eventualmente va installato esplicitamente.

E’ necessario verificare quindi la sua configurazione con i seguenti comandi:

root@server:~# ufw app list
Available applications:
OpenSSH

root@server:~# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22 ALLOW Anywhere
8080/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
Anywhere DENY 58.218.92.34
80 DENY 202.54.1.5
22 (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)

Limitare le porte

Una volta che il server è stato avviato, l’utente root o amministratore può definire specifici servizi o porte da aprire oltre a quelli di default.
La verifica per le porte aperte può essere portata a termine utilizzando il comando netstat -tulpn:

root@server:~# /home# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address State PID/Program name
tcp        0 0 0.0.0.0:22              0.0.0.0:* LISTEN   69941/sshd
tcp6       0 0 :::22                   :::* LISTEN   69941/ss

Impostare autenticazione a 2 fattori

Per rendere ulteriormente sicuro il proprio server Linux è possibile impostare un sistema di autenticazione a due fattori. Tale funzione dovrà essere impostata con grande attenzione, in quanto potrebbe esserci il rischio di chiudersi al di fuori del server qualora la configurazione non venisse portata a termine con successo.

Sarà dunque necessario eseguire degli step ben precisi:

  • Accedere al server tramite SSH ed eseguire il seguente comando per installare l’applicazione Google Authenticator:
apt-get install libpam-google-authenticator
  • Eseguire il comando google-authenticator per creare una nuova chiave segreta nella home directory:
google-authenticator

Do you want authentication tokens to be time-based (y/n) y

Your new secret key is: 73GRSXVJNUXZWN2T
Your verification code is 389485
Your emergency scratch codes are:
99536578
44768915
90480600
82281337
56945099
Do you want me to update your "/root/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn’t hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y

  • Modificare il file sshd_config:
vim /etc/ssh/sshd_config 
Per utilizzare PAM (PAM  pluggable authentication module):
UsePAM yes
ChallengeResponseAuthentication yes
  • Salvare e chiudere il file ( utilizzando :wq in VIM) e in seguito riavviare SSH.
systemctl restart ssh
  • Modificare il file in cui si trovano le regole PAM per SSH:
vim /etc/pam.d/sshd
  • Aggiungere l’ entry seguente alla fine del file:
auth required pam_google_authenticator.so
  • Salvare e chiudere il file.

Da questo momento SSH utilizzerà Google Authenticator.

Disabilitare il protocollo IPv6

Se non viene utilizzato il protocollo IPv6, è possibile disabilitarlo nella sezione “configurazione di rete”, inserendo le seguenti linee:

vim /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

Fare attenzione alle applicazioni da installare

Ogni volta che viene installata un’applicazione è possibile che venga aggiunto contestualmente un software, che potrebbe mettere a rischio il server qualora permettesse aperture nelle porte del server stesso.

Verificare e disabilitare processi di avvio non necessari

Nel caso di Ubuntu, ad esempio, di default verranno utilizzati questi equivalenti del run level in systemd (chiamati targets):

run level equivalents

Ancora una volta si dovrà essere certi di eseguire la corretta modifica, prima di procedere al cambiamento effettivo. I server Keliweb sono già settati in modo da avere l’ammontare minimo di servizi all’avvio.

Controllare regolarmente i log

Generalmente tutti i file log sono posizionati nella directory /var/log. In quella directory vi sono file specifici per ogni tipo di log.

È necessario visionare li i log per sincerarsi che nulla di imprevisto si stia verificando sul server. Per dare uno sguardo al file è possibile utilizzare il comando di seguito:

less file.log

Usate le frecce per scrollare in alto e in basso. È possibile anche utilizzare la testa (head, prime 10 righe), la coda (tail, le ultime 10 righe) o utilizzare il comando grep per cercare all’interno di un file.

Effettuare regolarmente backup

I backup sono lo strumento essenziale per proteggere i dati più importanti, preservando gli utenti da conseguenze catastrofiche.

La soluzione ottimale per il salvataggio dei dati potrebbe essere la seguente. Creare almeno 3 copie dei propri dati (una copia principale e due backup), conservare le copie in almeno 2 tipi di archivio (archivio locale, NAS/rete condivisa, ecc.) e archiviare almeno una di queste copie in un sistema di archiviazione esterno, ad esempio una soluzione in Cloud.

L’offerta di Keliweb

Keliweb offre la possibilità di scegliere tra diverse soluzioni di Server Dedicato (Linux o Windows). Basterà semplicemente scegliere la variante di supporto più adatta alle proprie esigenze, per sviluppare i propri progetti in piena sicurezza e senza inaspettate interruzioni di servizio.

Sarà possibile, inoltre, scegliere e modificare in qualunque momento il sistema operativo del proprio Server Dedicato e completarlo con software di gestione come cPanel e Plesk.

Lascia un commento

Back to top button