Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Mettere in sicurezza una workstation Linux | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Mettere in sicurezza una workstation Linux

Dalle password di Grub alla protezione dal fork bomb: come mettere in sicurezza una workstation Linux
Dalle password di Grub alla protezione dal fork bomb: come mettere in sicurezza una workstation Linux
Link copiato negli appunti

Una workstation, indipendentemente dall’ambito per la quale viene utilizzata, necessita nella quasi totalità dei casi di essere messa in sicurezza. Questo concetto si riferisce alla costante (se non crescente) frequenza alla quale avvengono attacchi da parte di malintenzionati, che possono causare danni non indifferenti.

In questo articolo vedremo alcuni accorgimenti che possono risultare utili al fine di incrementare il livello di sicurezza di un PC dotato di un sistema operativo Linux. Vedremo come impostare una password che impedisca l’accesso al sistema (sfruttando una funzionalità di GRUB 2), nonchè alcuni suggerimenti che possono risultare utili per prevenire alcuni tipici attacchi.

Impostare una password su GRUB 2

Come abbiamo visto in molti dei nostri precedenti articoli, dopo l’installazione delle distribuzioni più comuni, quasi tutti i fornitori hanno scelto di adoperare il boot loader GRUB 2, successore di GRUB Legacy, stabile, robusto e facilmente gestibile. Tra le svariate funzionalità che vi sono incluse, questo boot loader consente anche di impostare una password prima della scelta del sistema operativo da avviare. Di conseguenza, la scelta di accedere al sistema dopo avere inserito una password può garantire un livello aggiuntivo di protezione a diversi sistemi operativi, nei casi di PC che ne hanno più di uno.

Per prima cosa, apriamo il terminale, e spostiamoci nella cartella contenente i file di configurazione di GRUB 2 (per maggiori dettagli, si rimanda ad un nostro precedente articolo):

cd /etc/grub.d

Nel sistema utilizzato per i test di questo articolo, il comando ls

 00_header
 10_linux
 20_linux_xen
 20_ppc_terminfo
 30_os-prober
 40_custom
 41_custom
 90_persistent
 README

Ognuno dei file che iniziano con una coppia di numeri, si riferiscono ad alcuni sistemi operative installati o ad alcune sezioni di GRUB. Essi contengono degli script necessari per la generazione del codice di GRUB 2 ogni volta che viene eseguito il comando update-grub2

Per prima cosa, quindi, dobbiamo specificare che vogliamo utilizzare un nome utente ed una password per l’accesso. Per farlo, apriamo (con i permessi di amministratore) il file 00_header

sudo gedit 00_header

A questo punto, aggiungiamo in coda al file il seguente codice:

cat << EOF
 set superusers="USERNAME"
password USERNAME PASSWORD
EOF

Qui, come si intuisce, USERNAME e PASSWORD sono le credenziali che verranno usate per l’accesso ai sistemi operative.

Fatto ciò, apriamo ad uno ad uno i file contenenti le entry relative ai sistemi Linux installati, e cerchiamo in ciascuno di essi tutte le righe simili a questa:

menuentry VARIE {

Per VARIE menuentry

menuentry VARIE –users USERNAME {

Fatte queste modifiche, non resta che aggiornare GRUB 2 con il comando seguente:

update-grub2

Richiesta di password su GRUB 2

Il problema principale di questo processo è che chiunque abbia accesso al file 00_header potrebbe leggere la password, in quanto essa viene memorizzata in chiaro

Vale la pena di notare, inoltre, che, sebbene non scenderemo ulteriormente nel dettaglio in questa sede, sarebbe possibile utilizzare pù utenti, associando ciascuno di essi (o più di uno) ad un diverso sistema operativo.

Neutralizzare gli attacchi basati su /tmp

Molti script semplici utilizzano come directory di “comodo” /tmp, nella quale essi sono posizionati (ad esempio dopo un download) e poi eseguiti. Una buona prassi, dunque, è quella di montare tale directory su una apposita partizione, e renderla non eseguibile. Ciò neutralizza tutti gli attacchi basati su tale directory. Per attuare questa strategia, è sufficiente modificare, con i privilegi di amminstratori, il file /etc/fstab, ad esempio con gedit:

Una volta aperto, basta aggiungere in coda al file la seguente riga:

/dev/sda2              /tmp     ext3       noatime,noexec 0 0

Qui si suppone che la partizione sia /dev/sda2 ext3 noexec

Proteggersi dalle fork bomb

Alcuni programmatori che conoscono lo shell scripting, probabilmente sanno che è semplicissimo creare delle fork bomb, con una stringa quasi incomprensibile, che è la seguente:

Una fork bomb è uno script che crea un processo che, a sua volta, ne crea altri, duplicandosi. In breve tempo, questo causa un forte sovraccarico di memoria

Esiste un file, sui sitemi Linux, che è in grado di limitare il massimo numero di processi per utente. Inserire una limitazione può essere utile ad evitare un attacco di questo tipo, anche perchè lo script precedente, quando non può più duplicare processi (operazione conosciuta come fork /etc/security/limits.conf

sudo gedit /etc/security/limits.conf

Adesso aggiungiamo, in coda al file, le seguenti due linee:

 @GRUPPO         soft        nproc  100
 @GRUPPO         hard      nproc  150

Questo accorgimento avvisa tutti gli utenti del gruppo GRUPPO quando si raggiungono i 100 processi in esecuzione con un avviso, mentre limita a 150 il numero massimo di processi per gli utenti del GRUPPO. Le limitazioni possono, in realtà, essere modificate mediante stringhe diverse. I commenti del file limits.conf

Altri accorgimenti generali

È comunque fondamentale seguire alcune regole di condotta che giocano un ruolo fondamentale nella protezione da attacchi di ogni genere. Possiamo riassumerle qui di seguito:

Mantenere sempre il sistema aggiornato, e soprattutto installare sempre gli aggiornamenti di sicurezza. Molte distribuzioni, inoltre, forniscono alcune mailing list riguardanti la sicurezza del sistema operativo, e sarebbe buona norma iscriversi ad esse.

Monitorare costantemente gli output dei seguenti comandi:

Il primo comando mostra il log di sistema, il secondo i processi in esecuzione ed il terzo tutte le connessioni attive. È bene, dunque, controllare (per quanto possibile) che le uscite di questi comandi siano quelle attese.

Evitare il più possibile l’utilizzo di su sudo , ed in generale fare in modo che solo i processi strettamente necessari vengano eseguiti con i privilegi di amministratore.

Evitare l’utilizzo di password

sudo chsh -s /bin/false USERNAME

Ciò, ovviamente, impedisce anche il login mediante interfaccia grafica, ma in alcune situazioni può essere accettabile questo tipo di scelta.

Ti consigliamo anche