Il primo livello di sicurezza di cui bisogna tenere conto è quello fisico dei sistemi. Chi ha fisicamente accesso ai computer? Dovrebbe averlo? Si riesce a proteggere la macchina da eventuali intrusioni? Lo si dovrebbe fare?
Di quanta sicurezza fisica si ha bisogno sul sistema dipende molto dalla situazione e/o dal budget.
Se si è un utente casalingo, probabilmente non ne serve molta (anche se si potrebbe voler proteggere la macchina dalla curiosità di bambini o parenti noiosi). Se si tratta di un laboratorio, ne servirà molta di più, ma gli utenti dovranno comunque essere in grado di lavorare sulle macchine. Molte delle seguenti sezioni saranno d'aiuto. Se si è in un ufficio, si potrebbe o meno avere bisogno di tenere al sicuro le macchine fuori dall'orario di lavoro o quando non si è presenti. In certe società, lasciare incustodita la propria postazione è un motivo di licenziamento.
Ovvi metodi di sicurezza fisica come lucchetti, macchine chiuse a chiave e video sorveglianza sono buone idee, ma vanno oltre lo scopo di questo documento. :)
Molti case dei moderni PC includono la possibilità di essere chiusi. In genere hanno una toppa sulla parte frontale che può essere alternata fra le posizioni "chiuso" e "aperto" con una chiave. Queste serrature possono aiutare ad evitare che qualcuno rubi il PC, o che apra il case e manipoli o rubi i componenti. In alcuni casi possono anche impedire che qualcuno riavvii il computer con un proprio floppy o con componenti modificati.
Queste serrature fanno cose diverse a seconda del supporto nella scheda madre e di come è costruito il case. In molti PC fanno in modo di obbligare a rompere il case per aprirlo. In altri, non permetteranno di inserire nuove tastiere o mouse. Si controllino le istruzioni della scheda madre o del case per maggiori informazioni. A volte questa può essere una caratteristica molto utile, anche se le serrature sono in genere di bassissima qualità e possono essere facilmente eluse con lo scasso.
Alcune macchine (soprattutto SPARC e Mac) hanno un gancio sul retro in cui far passare una catena che un ipotetico intruso dovrebbe tagliare oppure rompere il case per entrarci. Semplicemente metterci un lucchetto a chiave o a combinazione, può essere un buon deterrente contro i furti.
Il BIOS è il più basso livello software per configurare o manipolare il proprio hardware basato su architettura x86. LILO e altri metodi di boot di Linux accedono al BIOS per capire come avviare la macchina. Altro hardware su cui gira Linux, ha un software simile (OpenFirmware sui Mac e i nuovi Sun, la PROM di avvio di Sun, ecc...). Si può usare il BIOS per evitare che un intruso riavvii la macchina e manipoli il sistema Linux.
Molti BIOS di PC permettono di usare una password di avvio. Questo non dà molta sicurezza (il BIOS può essere resettato o rimosso se qualcuno può aprire il case), ma potrebbe essere un buon deterrente (cioè si perderà del tempo e si lasceranno delle tracce). Allo stesso modo, su S/Linux (Linux per macchine con processore SPARC(tm)), la EEPROM può essere configurata per richiedere una password di avvio. Questo può rallentare l'intruso.
Un altro rischio nel fidarsi delle password di avvio per rendere più sicuro il vostro sistema è il problema delle password predefinite. Molti produttori di BIOS non si aspettano che la gente apra il proprio computer e stacchi le batterie se si dimentica della propria password e hanno perciò equipaggiato i BIOS con delle password predefinite che funzionano indipendentemente dalla password scelta. Alcune delle più comuni sono:
j262 AWARD_SW AWARD_PW lkwpeter Biostar AMI Award bios BIOS setup cmos AMI!SW1 AMI?SW1 password hewittrand shift + s y x z
Ho testato un Award BIOS con AWARD_PW e ha funzionato. Queste password sono disponibili sui siti web dei produttori e su http://astalavista.box.sk e quindi una password di avvio non può essere considerata una protezione adeguata contro un attaccante preparato.
Molti BIOS permettono anche di specificare altri e migliori settaggi di sicurezza. Si controlli il manuale del BIOS o lo si controlli la prossima volta che viene avviato il computer. Per esempio, alcuni BIOS possono disabilitare l'avvio da floppy e alcuni richiedono una password per accedere ad alcune funzioni.
Nota: se si ha una macchina server e viene inserita una password di avvio, il server non ripartirà da solo. Si tenga a mente che si dovrà andare a mettere la password in caso di mancanza di corrente. ;(
Anche i vari boot loader per Linux possono avere una password. LILO, per esempio, ha le opzioni password e restricted ; password richiede una password all'avvio, mentre restricted richiede una password solo se si specificano opzioni (come single) al prompt di LILO.
>Dalla pagina man di lilo.conf:
password=password L'opzione 'password=...' (vedi sotto) ha effetto su ogni immagine. restricted L'opzione 'restricted' (vedi sotto) ha effetto su ogni immagine. password=password proteggi l'immagine con una password. restricted Serve una password per avviare l'immagine solo se vengono specificati parametri alla linea di comando (per es. single). |
Si tenga presente quando vengono settate tutte queste password che poi bisognerà ricordarsele. :) Si ricordi anche che tutte queste password si limiteranno a rallentare un intruso ben determinato. Non impediranno di avviare da un floppy e quindi montare la partizione di root. Se si sta usando questo tipo di sicurezza si dovrà anche disabilitare il boot da floppy nel BIOS del computer, e quindi proteggerlo con una password.
Si tenga anche presente che /etc/lilo.conf dovrà avere i permessi "600" (leggibile e scrivibile solo da root) o altri saranno in grado di leggere le password!
>Dalla pagina info di Grub: GRUB fornisce la funzione "password", così che solo l'amministratore possa far partire le operazioni interattive (per es. modificare voci del menù e usare l'interfaccia a linea di comando). Per usare questa funzione, si deve inserire il comando "password" nel file di configurazione (*vedere password::), così:
password --md5 PASSWORD
Se specificato, GRUB può disabilitare tutti i controlli interattivi, finché si preme il tasto <p> e si inserisce la password corretta. L'opzione '--md5'indica a GRUB che 'PASSWORD' è nel formato MD5. Se omesso, GRUB assume che la password sia in chiaro.
Si può crittografare la password con il comando 'md5crypt' (*vedere md5crypt::). Per esempio, si faccia partire la shell di grub (*vedere Richiamare la shell di grub::), e si inserisca la password:
grub>md5crypt Password: ********** Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
Ora, si può copiare e incollare la password crittografata nel proprio file di configurazione.
Grub ha anche un comando 'lock' che permette di bloccare una partizione se non viene inserita la password corretta. È sufficiente aggiungere 'lock' e la partizione non sarà accessibile finché non si fornisce una password.
Se qualcuno avesse informazioni sulla sicurezza di altri boot loader, ci piacerebbe averle. (grub, silo, milo, linload, etc).
Nota: se si ha una macchina server e viene inserita una password di avvio, il server non ripartirà da solo. Si tenga a mente che bisognerà andare a mettere la password in caso di mancanza di corrente. ;(
Se ci si allontana dal computer ogni tanto, torna utile poter "bloccare" la postazione così che nessuno possa manomettere o vedere il proprio lavoro. Due programmi che lo fanno sono: xlock e vlock.
xlock blocca il video di una sessione di X. Dovrebbe essere incluso in ogni distribuzione che supporti X. Si controlli la sua pagina man per trovare altre opzioni, ma in genere si può eseguire xlock da xterm per bloccare il monitor e obbligare ad inserire una password per sbloccarlo.
vlock è un semplice programmino che vi permette di bloccare alcune o tutte le console virtuali della Linux box. Si può bloccare solo quella in uso o tutte. Se se ne blocca una sola, altri potranno venire ad usare quelle sbloccate; semplicemente non potranno usare la console bloccata finché non verrà sbloccata. vlock è distribuito con RedHat Linux, ma non è detto che sia l'unica.
Chiaramente bloccare la console impedirà ad altri di manipolare il proprio lavoro, ma non di riavviare la macchina o distruggere il lavoro in altri modi. Inoltre non evita che qualcuno acceda alla macchina dalla rete e causi problemi.
Ancora più importante, non impedisce che qualcuno esca da X e, passando a un normale prompt di login di una console virtuale o alla VC da cui X11 era stato avviato, lo sospenda, ottenendo così i vostri privilegi. Per questi motivi, si dovranno usare questi programmi solo sotto il controllo di xdm.
Se si hanno una webcam o un microfono collegati al sistema, si dovrà considerare se c'è pericolo che un attaccante possa accedere a questi dispositivi. Quando non vengono utilizzati, si potrebbe scollegarli o rimuoverli. Altrimenti si dovrà leggere con attenzione e controllare ogni software che permette di accedere a questi dispositivi.
La prima cosa da tenere sempre d'occhio è quando la macchina è stata riavviata. Visto che Linux è un Sistema Operativo stabile e robusto, dovrebbe essere riavviato solo per aggiornamenti del SO, cambiamenti all' hardware, o cose del genere. Se la macchina si è riavviata senza un comando voluto, potrebbe essere il segno della manomissione di un intruso. Molti dei metodi di manomissione richiedono un riavvio o uno spegnimento del computer.
Si cerchino segni di manomissione sul case o intorno al computer. Anche se molti intrusi cancellano le tracce della loro presenza dai log, è buona norma controllarli tutti e cercare delle discrepanze.
È una buona idea anche tenere i log in un posto sicuro, come un log server dedicato all'interno di una rete ben protetta. Una volta che una macchina è stata compromessa, i log perdono utilità perché probabilmente sono anch'essi stati manomessi.
Il demone syslog può essere configurato per mandare automaticamente dati di log a un server syslog centralizzato, ma in genere vengono inviati non cifrati, permettendo a un intruso di vederli mentre vengono trasferiti. Questo può rivelare informazioni sulla rete che non dovrebbero essere pubbliche. Ci sono anche demoni syslog che cifrano i dati inviati.
Si tenga conto anche del fatto che falsificare messaggi del syslog è facile -- con un exploit che è stato pubblicato. Syslog accetta anche log di rete che dichiarino di venire da host locali senza indicare la loro vera origine.
Alcune cose da controllare nei log:
Log brevi o incompleti.
Log che contengano date improbabili.
Log con permessi o proprietari sbagliati.
Registrazioni di riavvii o di servizi riavviati.
Log mancanti.
Uso fuori logo di su o login da posti strani.
Parleremo dei dati dei log di sistema più avanti ne la Sezione 9.5 dell'HOWTO.