Archivio Categorie: Linux

Linux Leggero – Le Migliori Distribuzioni

Linux è certamente il sistema di riferimento per chi cerca una alternativa a Windows enon dispone di un computer Apple. Ecco quindi che nasce l’esigenza di ricercare la migliore versione di Linux, o meglio, quella più leggera in circolazione. Questo per garantire una buona compatibilità anche sui computer meno prestanti.

Cosa sono le distribuzioni leggere di Linux? Si tratta di versioni ridotte per spazio e richiesta hardware in grado di girare anche su computer di qualche hanno fa, ossia macchine che hanno ancora 512MB di RAM e non solo. Capirete che non tutti hanno la possibilità di acquistare un nuovo computer ma non per questo sono esclusi dal poter avere una versione di questo sistema operativo perfettamente in regola con le ultime novità.

In questa guida andremo a darvi un elenco delle migliori distribuzioni Linux leggere da utilizzare, in questo modo avrete una scelta alternativa per il sistema operativo da usare. Senza ulteriori indugi eccovi la lista completa.

Live CD Knoppix – Si tratta di una versione particolare poiché avviabile da CD-ROM, che quindi non necessità di essere installata su disco fisso per essere riconosciuta. Un vantaggio per chi non dispone di molto spazio su HHD interno. Come tutte le soluzioni alternative, anche in questo caso si hanno delle forti limitazioni riguardanti la parte multimediale e quella degli strumenti disponibili, tra quelli più recenti. Nel complesso però risulta una versione funzionale e semplice da configurare.

Xubuntu – Una distribuzione linux leggere basata su Ubuntu. La caratteristica di Xubuntu è che come desktop manager viene utilizzato Xfce, molto più leggero rispetto a Gnome e Kde che troviamo in molte altre distribuzioni.
Si tratta di una soluzione molto interessante per chi vuole provare Linux su un computer non troppo recente.

Linux Mint – Installare Linux senza dovere cancellare Windows è una operazione che ormai diventa automatica grazie a programmi e cd auto installanti. Non fa eccezione anche Linux Mint CD, che permette di provare il sistema operativo semplicemente inserendo il cd il quale andrà a creare una partizione nell’hard disk per ospitare il nuovo OS. Un vantaggio enorme per chi non ha mai sentito parlare di partizione HDD e vuole ugualmente installare Linux su pc senza cancellare Windows.

Ricordate che esistono centinaia di distribuzioni di Linux in giro per il web, comunque affidandovi a quelle che abbiamo elencato in questo articolo non resterete certamente delusi del risultato ottenuto.

Linux – Eliminare i File Temporanei in Ubuntu

Molte applicazioni utilizzano file temporanei che possono essere scritti nelle directory /tmp o /var/tmp o anche in altre directory a seconda dell’applicazione.

Di default Ubuntu elimina i file che si trovano nella directory /tmp all’avvio tramite lo script /etc/rcS.d/S35mountall.sh che chiama lo script /etc/init.d/boot-clean.sh mentre non vengono eliminati i file che si trovano nella directory /var/tmp.

Se si vuole che vengano eliminati anche i file che si trovano in questa directory o in altre directory che contengono file temporanei, è possibile creare uno script e fare in modo che venga eseguito all’avvio.

Oltre a file temporanei esistono sul sistema anche i file di cache.
La cache di default di Firefox è cinquanta mb per utente.
Generalmente non si ha la necessità di questi file per cui è possibile eliminarli utilizzando le opzioni del browser.

Oltre alla cache del browser esiste anche la cache di APT.
Per rimuovere questi file è possibile utilizzare il comando sudo apt-get autoclean.
Inoltre è possibile configurare l’eliminazione periodica dei file modificando il file /etc/apt/apt.conf.d/10periodic.
Per impostare l’eliminazione automatica una volta alla settimana è possibile aggiungere il seguente comando nel file
APT::Periodic::AutocleanInterval “7”;

L’eliminazione dei file temporanei è particolarmente importante se lo spazio libero sul disco è ridotto.

Come clonare un’installazione di Linux

In passato abbiamo visto come clonare un hard disk in Windows, oggi analizziamo come clonare un disco in Linux in modo semplice e veloce.

Possiamo clonare un’installazione di linux copiando la partizione di un hard disk in un file e usando questo file per distribuire l’insallazione su più computer.

Il primo passo consiste nella creazione di un’immagine che può essere fatta utilizzando dd, data dump, che è uno strumento incluso nelle distribuzioni linux.
-Avviare Linux in single user mode utilizzando  l’opzione single all’avvio.
Questo deve essere fatto perchè non è sicuro clonare una partizione mentre è in uso visto che i processi in esecuzione sul sistema possono modificare i dati.
-Creare un mount point per una nuova partizione su cui è possibile scrivere l’immagine della partizione che contiene il filesystem root. Visto che si vuole distribuire l’immagine su altri computer è possibile utilizzare un disco usb esterno per creare la nuova partizione.
-Creare l’immagine usando il comando
dd if=<DiscoOrigine> of=<FileDestinazione>
test@server:~# dd if=/dev/hda1 of=/mnt/disk2/image.bin
l’opzione if specifica il disco che deve essere clonato mentre l’opzione of specifica il file su cui viene salvata l’immagine.

Una volta completata la creazione dell’immagine è possibile utilizzarla per distribuire l’installazione su altri computer
-Avviare il computer utilizzando un cd di Linux e entrando in recovery mode
-Effettuare il mount del disco esterno dove è stata salvata l’immagine.
-Partizionaer il disco della nuova macchina creando una partizione per il filesystem root e un partizione swap.
-Scrivere l’immagine sul disco
dd if=<FileOrigine> of=<DiscoDestinazione>
test@server:~# dd if=/mnt/disk2/image.bin of=/dev/hda1
-Effettuare il mount della partizione e entare nella partizione con chroot
test@server:~# mkdir /newlinux
test@server:~# mount /dev/hda1 /newlinux
test@server:~# chroot /newlinux /bin/bash
-Eseguire grub-install per scrivere il master boot record
test@server:~# grub-install /dev/hda
-Uscire da chroot e riavviare il server.

Linux – Eseguire il Rotate dei Log in Ubuntu

Il comando principale per eseguire il rotate dei log in Ubuntu è savelog che rinomina il file di log specificato.
Quindi usando il comando savelog prova.log, il file prova.log viene spostato in prova.log.0 e a loro volta vengono spostati i file di log più vecchi.

Questo comando di default permette di mantenere sette livelli di backup, l’ultimo file disponibile sarebbe quindi prova.log.7 nell’esempio visto in precedenza.

L’impostazione relativa al numero di backup che possono essere salvati può essere modificata con il comando savelog -c <Numero> <File log>.

Il sistema di rotate dei log principale è logrotate che è eseguito secondo le schedulazioni previste da anacron nella directory /ect/cron.daily/logrotate.
La configurazione di logrotate è contenuta nei file che si trovano nella directory /etc/logrotate.d.
In questa directory si trova un file per ogni file di log che deve essere gestito.

La struttura dei file è simile alla seguente
/var/log/acpid {
weekly
rotate 4
compress
missingok
postrotate
/etc/init.d/acpid restart >/dev/null
endscript
}

In questo caso vengono impostate quattro rotazioni dei log di /var/log/acpid su base settimanale.
Le linee contenute tra postrotate e endscript definiscono cosa deve essere eseguito dopo il rotate dei log.
In questo caso il servizio viene riavviato.

Linux – Verificare le Prestazioni del Processore con Top

Top permette di ottenere numerose informazioni sulle prestazioni del processore, si tratta quindi di uno strumento molto utile disponibile su Linux.

La sintassi per avviare top è la seguente
top [-d intervallo] [-n iter] [-i] [-b]
-d intervallo – Specifica il tempo che deve passare tra gli aggiornamenti delle statistiche.
-n iter – Il numero di volte in cui le statistiche devono essere aggiornate prima che il programma termini.
-i – Specifica se devono essere mostrati i processi nello stato idle.
-b – Specifica l’esecuzione in modalità batch in cui vengono mostrati tutti i processi e non solo una schermata unica.

Durante l’esecuzione del programma è possibile diverse opzioni
A – Cambia la visualizzazione delle statistiche.
I – Specifica se l’utilizzo del processore deve essere diviso per il numero di processori del sistema.
f – Visualizza una schermata di configurazione che permette di selezionare le statistiche da mostrare.
o – Visualizza una schermata di configurazione che permette di modificare l’ordine in cui sono mostrate le statistiche.

[root@localhost ~]# top
top – 19:53:26 up 43 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:    255336k total,   131148k used,   124188k free,     9804k buffers
Swap:   522104k total,        0k used,   522104k free,    76680k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1835 root      16   0  2244  824  732 S  0.3  0.3   0:01.18 hald-addon-stor
2213 root      15   0  2168 1044  824 R  0.3  0.4   0:00.03 top
1 root      15   0  2032  676  576 S  0.0  0.3   0:02.24 init
2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
5 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 events/0
6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
7 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
10 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 kblockd/0
11 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
70 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
73 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
75 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 kseriod
133 root      22   0     0    0    0 S  0.0  0.0   0:00.00 pdflush
134 root      15   0     0    0    0 S  0.0  0.0   0:00.00 pdflush
135 root      17  -5     0    0    0 S  0.0  0.0   0:00.00 kswapd0

Le seguenti colonne mostrano informazioni relative alle prestazioni del processore
us – Tempo in cui il processore ha eseguito processi in user mode.
sy – Tempo in cui il processore ha eseguito processi in kernel mode.
ni – Tempo in cui il processore ha eseguito processi in user mode su cui la priorità è stata impostata usando nice.
id – Tempo nello stato idle.
wa – Tempo in attesa di I/O.
hi – Tempo nello stato irq che è utilizzato per gestire interrupt di priorità alta.
si – Tempo nello stato softirq che è utilizzato per gestire interrupt di priorità più bassa.
%CPU – Percentuale di processore utilizzata da un determinato processo.
PRI – Specifica la priorità di un processo.
NI – Il valore di nice di un processo. Un valore più elevato indica una priorità più bassa.
WCHAN – Specifica la funzione del kernel relativa ai processi in attesa di I/O.
TIME – Il totale di tempo che il processo ha utilizzato da quando è stato avviato.
COMMAND – Il comando che il processo sta eseguendo.
S – Lo stato del processo. Il valore può essere uno dei seguenti
S – Sleeping
R – In esecuzione
Z – Processo in attesa di terminare
D – Uninterruptable sleep.
T – Traced.

Top permette di capire quali sono i processi che stanno utilizzando maggiormente il processore e offre quindi la possibilità di individuare e risolvere eventualiproblemi.

Grub – Rendere Sicuro il Bootloader

Grub permette a chiunque abbia accesso al server in fase di avvio di avviare nella modalità single user mode e di cambiare i parametri di avvio, di conseguenza è necessario proteggere il bootloader tramite una password.

Per generare la password che sarà criptata con MD5 bisogna eseguire i seguenti comandi

server# grub

grub > md5crypt
Password: **********
Encrypted:
grub > quit

A questo punto la password che è stata generata deve essere inserita nel file di configurazione di Grub /etc/grub.conf
In questo file deve essere aggiunta una linea con l’opzione password -md5 seguita dalla password criptata che è stata generata in precedenza.

In questo modo al prossimo riavvio sarà necessario inserire la password se si vogliono modificare le opzioni di Grub

Grub permette inoltre di proteggere un particolare elemento nel menu di avvio.
Per fare questo è necessario inserire l’opzione lock dopo la direttiva title.
In questo modo sarà possibile avviare il sistema operativo relativo a quel elemento del menu solo dopo che si è inserita la password.

Una volta che si è configurato Grub in modo che si debba inserire una password per modificarne le opzioni all’avvio è necessario impostare i permessi cul file di configurazione /etc/grub.conf

server# chown root:root /etc/grub.conf
server# chown 0600 /etc/grub.conf

Proteggere Grub è quindi molto importante per la sicurezza di un computer.

Session Hijacking – In Cosa Consiste

Il Session hijacking consiste nel prendere possesso di una sessione attiva tra due host, questo significa che chi effettua con successo questo attacco si trova già autenticato con il server.

Questo tipo di attacco funziona solo se effettuato verso protocolli di tipo session oriented come telnet e ftp, inoltre per aumentare le probabilità di successo chi effettua l’attacco deve trovarsi nella stessa rete dei due host che hanno la sessione attiva.

Per capire esattamente il funzionamento dell’hijacking è necessario comprendere il protocollo TCP e in particolare due caratteristiche che sono il three way handshake e i sequence numbers.

Il three way handshake è il modo con cui due host stabiliscono una connessione tcp.
Un host A che vuole iniziare una connessione con un host B invia a questo un segmento TCP con il flag SYN attivo e un certo sequence number impostato a x.
L’host B, se accetta la connessione, risponde con un segmento in cui sono settati i flag SYN e ACK. Inoltre in questo segmento è impostato il sequence number di questo host con valore y e viene incrementato il sequence number dell’host A di uno.
Infine l’host A, dopo avere ricevuto la risposta dall’host B, invia un segmento con il flag ACK attivo e un sequence number pari a x + 1.
A questo punto la connessione è stabilita.

I sequence numbers che abbiamo già visto nella fase in cui viene stabilita la connessione tra gli host sono un elemento chiave del Session Hijacking.
I sequence number sono usati dall’host che riceve i pacchetti per stabilirne l’ordine, inoltre tramite questi la macchina ricevente è in grado di indicare all’host che invia quali pacchetti sono stati ricevuti e quali no in modo che siano nuovamente inviati.
Il punto chiave è che è possibile prevedere il modo in cui questi sequence numbers vengono generati.

Dopo aver completato l’introduzione al Session Hijacking possiamo analizzare come aviene l’attacco.

Innanzitutto chi lo effettua deve individuare un obiettivo che deve essere un server che supporta connessioni di tipo session oriented come un server telnet o ftp.

A questo punto è necessario individuare come il sistema operativo dell’host obiettivo dell’attacco. Infatti a seconda del sistema operativo si ha un diverso modo di generazione dei sequence numbers, i sistemi windows generano sequence number che sono molto più facilmente prevedibili rispetto a quelli generati da un sistema linux.

Una volta fatto questo bisogna individuare una sessione attiva visto che questo la presenza di questa è un requisito indispensabile pe un session hijacking. Bisogna anche considerare che è preferire svolgere questo tipo di operazione in un momento di elevato traffico visto che ci sono meno possibilità che l’attacco venga notato in questo modo.

A questo punto chi effettua l’attacco è in grado di conosce l’indirizzo ip del server e del client che hanno la sessione attiva e anche i numeri di porta su cui sta avvenendo la comunicazione.
Quindi è necessario individurare il corretto sequence number per effettuare il session hijaking, infatti se il server aspetta di ricevere un pacchetto con il sequence number 77777 e l’attaccante in via un pacchetto con un sequence number 22222 questo non verrà accettato in modo corretto.

Una volta individuati i corretti sequence numbers chi effettua l’attaco ha la necessita di fare in modo che l’host che ha la sessione attiva con il server sia disconnesso in modo che non possa più inviare pacchetti.
Questo generalmente avviene eseguento un attacco di dipo DoS nei confronti dell’host.

Fatto questo, chi effettua l’attacco può iniziare a inviare pacchetti al server nascondendo l’origine e il sequence number di questi.

Analizziamo alcuni degli strumenti usati per effettuare il session hijacking.

Hunt è un tool disponibile per linux che permette di effettuare il session hijacking.
Una funzionalità molto interessante di questo tool è la possibilità di riattivare la sessione originaria tra il server e il client una volta completato l’attacco, in questo modo ci sono maggiori possibilità che l’operazione non venga notata.

Installazione

Una volta che si è scaricato il tool dal sito http://packetstorm.linuxsecurity.com/sniffers/hunt/ è necessario decomprimerlo con il seguente comando

host# tar -xvzf hunt-1.5.tgz

A questo punto è possibile spostarsi nella directory hunt-1.5 e compilare il programma.

host# cd hunt-1.5
host# make

Per eseguire il tool è sufficiente il seguente comando

host# ./hunt

Utilizzo di Hunt

Avviando Hunt si accede al seguente menu

[root@localhost hunt-1.5]# ./hunt
/*
 *      hunt 1.5
 *      multipurpose connection intruder / sniffer for Linux
 *      (c) 1998-2000 by kra
 */
starting hunt
— Main Menu — rcvpkt 0, free/alloc 64/64 ——
l/w/r) list/watch/reset connections
u)     host up tests
a)     arp/simple hijack (avoids ack storm if arp used)
s)     simple hijack
d)     daemons rst/arp/sniff/mac
o)     options
x)     exit
->

Le varie opzioni del menu ci permettono le seguenti azioni

l    Mostra tutte le connessioni attive
w    Permette di visualizzare il traffico tra due host specifici
r    Resetta una conessione specifica
h    Mostra quali sono gli host attivi.
a    Permette di effettuare lo spoofing di un MAC address
s    Permette di eseguire un simple hijack che consiste nell’inserire un     solo comando nella sessione attiva tra l’host e il server.
d    Imposta le opzioni relative a rst, arp, sniff e mac
o    Imposta le opzioni relative al tool come i tempi di timeout

Analizziamo ora come utilizzare il tool per effettuare un arp simple hijack.
Questa opzione sfrutta l’arp spoofing che consiste nel far credere al server che il MAC address che corrisponde all’indirizzo ip del client che ha la sessione attiva sia quello dell’host utilizzato da chi effettua l’atttacco.
In questo modo il server invia i dati all’host di chi sta effettuando l’hijacking.

-> a
0) 192.168.1.1 [35481]         –> 192.168.1.4 [23]

Ci vengono mostrate tutte le sessioni attive.
In questo caso abbiamo una sola session attiva quindi la selezioniamo con l’opzione 0

choose conn> 0
arp spoof src in dst y/n [y]>
src MAC [EA:1A:DE:AD:BE:04]>
arp spoof dst in src y/n [y]>
dst MAC [EA:1A:DE:AD:BE:05]>
input mode [r]aw, [l]ine+echo+\r, line+[e]cho [r]>
dump connectin y/n [y]> n
press key to take over of connection
CTRL-] to break

A questo punto chi effettua l’attacco può prendere possesso della sessione e eseguire comandi con i permessi dell’utente che si era precedentemente autenticato.

rm -rf ~/*

[r]reset connection/[s]ynchronize/[n]one [r]> s

user have to type 12 characters and print 29 characters to synchronize connection

CTRL-C to break

Done

Juggernaut è uno sniffer che implementa particolari funzionalità utilizzabili per effettuare il session hijacking.

Installazione

Una volta che si è scaricato il file è possibile procedere decomprimendolo

host# tar -xvf 1.2.tar

Quindi si compila eseguendo il seguente comando

host# make all

A questo punto è possibile avviare il tool

host# ./juggernaut

In questo modo si accede al seguente menu

?) Help
0) Program information
1) Connection database
2) Spy on a connection
3) Reset a connection
4) Automated connection reset daemon
5) Simplex connection hijack
6) Interactive connection hijack
7) Packet assembly module
8) Souper sekret option number eight
9) Step down

Analizziamo quindi le varie opzioni che sono fornite da questo menu

Connection database
Questa opzione mostra tutte le sessioni attive, è da notare però che in presenza di una rete ethernet switched il tool potrebbe non essere in gradi di vedere sessioni anche se sono attive.

Spy on a connection
Accedendo a questa opzione è possibile effettuare lo sniffing di una sessione.

Reset a connection
Permette di selezionare una sessione attiva e di resettarla-

Automated connection reset daemon
Attivando questa opzione è possibile resettare ogni tentativo di connessione proveniente da un determinato indirizzo ip.
Il tool ci permette di specificare se devono essere impedite le connessione dall’host specificato verso tutti gli altri host o verso uno specifico server

Enter source IP [q] >192.168.1.4
Enter target IP (optional) [q] >
Reseting all connection requests from: 192.168.1.4
[cr]

Simplex connection hijack
Questa opzione permette di effettuare un simple hijack, di inserire quindi un comando all’interno del flusso di dati tra client e server.

Choose a connection [q] >1
Enter the command string you wish executed [q] > touch file
Spying on connection, hit ‘ctrl-c’ when you want to hijack.
NOTE: This may cause an ACK storm until client is RST.
Spying on connection: 192.168.1.4 [5247]  –>  192.168.1.1 [23]

Interactive connection hijack
Permette di effettuare un session hijacking completo.
Bisogna tenere presente che utilizzando questo metodo si crea quello che viene chiamato ACK Storm che ha come conseguenza il rischio di interruzione delle altre connessioni presenti sulla rete.

Packet assembly module
Attivando questa opzione è possibile creare i propri pacchetti specificando cosa devono contenere i vari campi.

Il Session Hijacking è un tipo di attacco molto pericoloso e quindi è necessario limitare la possibilità che venga eseguito all’interno della propria rete.

Una soluzione è l’utilizzo di connessioni criptate che rendono molto più difficile questo tipo di attacco, quindi è bene rimpiazzare Telnet con ssh che permette l’invio di dati criptati e ftp con sftp.

Un modo per limitare la possibilità di effettuare è la presenza di una rete Ethernet di tipo switched, in cui gli host sono connessi a degli switch invece che a degli hub. Ma comunque tecniche come quella dell’ARP spoofing non garantiscono che questo tipo di rete non sia a rischio di Session Hijacking.

Il Comando Sudo in Linux

In Ubuntu viene utilizzato il comando sudo per eseguire i comandi come root.
L’installazione di default include il comando sudo e permette l’accesso a questo comando all’utente di default.

Inoltre è presente il comando sudoedit che permette di aprire e modificare un file con i privilegi dell’utente root.
Il file di configurazione /etc/sudoers specifica gli utenti che possono eseguire comandi come root e i comandi che possono eseguire.
Di default il file permette l’utilizzo di sudo a tutti i membri del gruppo admin ma è possibile modificarlo in modo da consentire l’accesso a altri utenti.

Per permettere l’utilizzo di sudo all’utente user1 basta aggiungere una riga nel file con la seguente sintassi
user1    ALL=(ALL) ALL
Questa riga permette all’utente user1 di utilizzare sudo per eseguire qualunque comando.

La riga Defaults del file /etc/sudoers specifica le opzioni con cui viene eseguito il comando.
Il simbolo ! specifica che il parametro è disabilitato.
Le seguenti sono tra le opzioni più interessanti
lecture – Quando questo parametro viene attivato sudo mostra un avviso quando viene eseguito un comando con i privilegi di root.
timestamp-timeout – Specifica il numero di minuti prima che venga richiesto di inserire nuovamente la password. Impostando il valore zero la password è richiesta per ogni comando.
tty_tickets – Abilitando questa opzione ogni finestra del terminale ha un suo ambiente sudo per cui la prima volta che si esegue sudo in ogni finestra è necessario inserire la password.
fqdn – Specifica l’utilizzo dei fully qualified domain names nel file sudoers.
passwd_tries – Specifica quanti tentativi di inserimento password possono essere fatti quando si utilizza il comando sudo.

Sudo rappresenta quindi uno strumento molto importante in Linux e quindi è necessario capire come configuraro e come utilizzarlo.

Utilizzare Gnu Privacy Guard

GPG, Gnu Privacy Guard, è incluso nell’installazione di default di Ubuntu e rappresenta lo standard per l’utilizzo della crittografia con i file e le mail in Linux.

La prima operazione da eseguire per utilizzare la crittografia in Ubuntu è creare le chiavi necessarie.
GPG una chiavi asimmetriche per la crittografia quindi una chiave è utilizzata per eseguire l’encrypt e una chiave diversa permette di eseguire il decrypt.
Le due chiavi sono chiamate privata e pubblica.
La chiave privata deve essere tenuta in un posto sicuro mentre quella pubblica viene distribuita.

Per creare le chiavi è necessario utilizzare il comando gpg -gen-key.
Una volta eseguito questo comando il sistema richiede l’inserimento di una serie di dati per creare le chiavi. La chiave privata viene salvata nella home directory dell’utente nella directoty .gnupg/pubring.gpg mentre la chiave pubblica viene salvata in .gnupg/secring.gpg.

Una volta che sono state create le chiaviè possibile visualizzarle utilizzando il comando
gpg -list-keys.

Per utilizzare la crittografia è necessario distribuite la chiave pubblica.
Per esportare la chiave pubblica è possibile utilizzare il comando gpg -export -a
Il comando esporta tutte le chiavi quindi possiamo utilizzare una stringa al termine del comando per filtrare la chiave da esportare

gpg –export -a user1 > user1.pub
esporta la chiave dell’utente user1 nel file indicato

gpg –import user1.pub
importa la chiave dal file

Effettuare l’encrypting dei file
Per crittografare i file possono essere utilizzate due modalità.
Utilizzando il comando gpg -e <nome file> il sistema richiede di specificare le chiavi pubbliche da utilizzare per l’encrypting dei file.
Il comando crea un file con estensione gpg.
Gli utenti che hanno le chiavi private corrispondenti alle chiavi pubbliche specificate potranno decriptare i file
La seconda modalità consiste nell’utilizzare AscII armoring tramite il comando gpg -e -a <nome file>.
In questo caso viene creato un file .asc.
Per decodificare i file è sufficiente utilizzare gpg con il parametro -d.

Firmare i messaggi
GPG può essere utilizzato anche per firmare i messaggi utilizzando la propria chiave privata in modo che chiunque abbia la chiave pubblica possa verificare la validità del messaggio.
Per firmare un file viene utilizzato il comando gpg -s.

Sicurezza su Linux – Configurazioni Iniziali

In questo articolo vediamo configurazioni da fare per aumentare la sicurezza su Linux

Password Deboli
Un primo punto fondamentale per garantire la sicurezza di un sistema è forzare l’utilizzo di password che presentino una certa complessita.
Avere una password complicata per l’utente root non è sufficiente se poi è consentito agli utenti di utilizzare password estremamente semplici.
Un modo per garantire che le password abbiano una certa complessità è utilizzare i moduli PAM inserendo nel file /etc/pam.d/password le seguenti linee

passwd password requisite /usr/lib/security/pam_cracklib.so retry=3
passwd password required /usr/lib/security/pam_pwdb.so use_authtok

In secondo luogo è necessario modificare le password di default di applicativi o servizi.

Utenti e Gruppi non utilizzati
Spesso è utile anche rimuovere dal sistema gli utenti che vengono creati dal sistema ma che non sono utilizzati.
Gli utenti che è possibile rimuovere dipendono dall’utilizzo che si fa del sistema
Questo è un elenco di utente che di solito è possibile rimuovere

adm        Usato per tool di diagnostica
desktop        Utente relativo a KDE
ftp        L’utente di default per il servizio ftp
games        Utente games
gdm        Utente relativo al servizio GDM
gopher        Utente del servizo Gopher
identd        Utente relativo al servizio ident
news        Utente news
nfsnobody    Utente utilizzato dal nfs
nscd        Utenete del sevizio nscd
operator    Utente operator
proxy        Utente proxy
rpc        Utente utilizzato da rpc
rpcuser        Utente utilizzato da rpc
sync        utente sync
telnetd        utente del servizio telnet
uucp        utente uucp
xfs        utente di x font server

Il comando da utilizzare per l’eliminazione degli utenti è il seguente

server# userdel adm

Questo è un elenco di gruppi che di solito è possibile rimuovere

lp
news
uucp
proxy
operator
list
irc
src
staff
games
gdm
telnetd
gopher
ftp
nscf
rpc
rpcuser
nfsnobody
xfs
desktop

Il comando da utilizzare per l’eliminazione dei gruppi è il seguente

server# groupdel news

Limitare l’uso del comando su
Un’altra configurazione utile consiste nel limitare l’utilizzo del comando su a alcuni utenti.
Per fare questo è sufficiente modificare il file /etc/pam.d/su e togliere il commento dalla seguente linea

auth       required     /lib/security/$ISA/pam_wheel.so use_uid

In questo modo solo gli utenti membri del gruppo wheel potranno utilizzare su.
Tramite l’opzione group= è possibile speficare un gruppo diverso sa wheel che può utilizzare il comando.

auth       required     /lib/security/$ISA/pam_wheel.so use_uid group=supporto

In questo modo solo gli utenti membri del gruppo supporto potranno utilizzare su.

Configurare Inittab
Il file /etc/inittab contiene diverse configurazioni importanti e quindi deve essere verificato con attenzione.

Risulta consigliabile commentare in questo file la linea che gestisce il riavvio del sistema quando si preme control+alt+canc

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Una soluzione alternativa all’eliminazione di questa linea è quella di inserire l’opzione -a

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now

In questo modo il comando l’esecuzione del comando shutdown è possibile solo per gli utenti specificati nel file /etc/shutdown.allowed e quindi, se un utente che non è specificato in questo file preme control+alt+canc, il risultato sarà un errore

per rendere effettive le modifiche è necessario eseguire il comando

server# init q

A questo punto è necessario impostare i corretti permessi sul file

server# chown root:root /etc/inittab

La sequenza di boot
L’ordine in cui vengono avviati e fermati i servizi è importante ai fini della sicurezza.
Infatti è bene che servizi come iptables e syslog che gestiscono il firewall e la registrazione dei log vengano avviati prima che sia attivata la rete.

Accesso alla console
Una prina cosa dafare è  limitare il numero di console a cui è possibile accedere con l’utente root andando a modificare il file /etc/securetty.
Semplicemente bisogna commentare le linee che fanno riferimento alle console alle quali non vogliamo sia possibile loggarsi come root.
Una volta fatto questo bisogna assicurarsi che l’accesso a questo file sia limitato all’utente root

server# chown root:root /etc/securetty
server# chmode 0600 /etc/securetty

Inoltre in alcune distribuzione come Fedora all’utente non root che si logga via console sono dati permessi di eseguire programmi che normalmente un utente non root non può esegure.
Questi programmi sono definiti nella directory /etc/security/console.apps e possono essere rimossi con il seguente comando

server# rm -f /etc/security/console.apps/*

Login screen
Per nascondere le informazioni di sistema a chi si collega  al sitema è necessario andare a modificare il contenuto dei file /etc/issue e /etc/issue.net.
In questi file è bene che sia inserito un messaggio di avvertimento relativo all’uso non autorizzato del server e che vengano rimosse tutte le informazioni relative al sistema operativo.
Una volta effettuate le modifiche è necessario verificare che il file sia modificabile solo da root

server# chown root:root /etc/issue /etc/issue.net
server# chmod 0600 /etc/issue /etc/issue.net

Sudo
Sudo permette a utenti non root di eseguire dei comandi come se fossero root.
Per limitare gli utenti e i file è possibile modificare il file /etc/sudoers utilizzando il comando visudo

supporto ALL=/sbin/shutdown

Questa linea indica che l’utente supporto può eseguire shutdown come se fosse l’utente root su tutti gli host come è specificato da ALL

Sudo permette anche di specificare un utente diverso da root che viene usato quando si lancia un comando

supporto ALL=(mysql) /usr/local/bin/mysqld

Questa linea indica che l’utente supporto può eseguire mysqld come se fosse l’utente mysql

Sudo permette anche di specificare un gruppo invece che un singolo utente

%supporto ALL=/sbin/shutdown

Questa linea indica che tutti i membri del gruppo supporto possono eseguire shutdown come se fossero root

per eseguire un comando utilizzando sudo basta semplicemente scrivere sudo prima del nome del comando in questo modo il sistema chiederà la password dell’utente e se questo utente rientra tra quelli autorizzati il comando verrà eseguito come root.

1 2 3 4