Questo documento proverà a spiegare alcune procedure e il software usato comunemente per migliorare la sicurezza del proprio sistema Linux. È importante prima di cominciare discutere alcuni dei concetti di base e descrivere i fondamenti della sicurezza informatica.
Nel mondo continuamente in movimento delle comunicazioni globali, delle connessioni ad Internet gratuite, e del veloce sviluppo del software, la sicurezza sta diventando sempre più un fattore da considerare. La sicurezza è un requisito basilare perché l'informatizzazione globale è intrinsecamente inaffidabile. Mentre i dati vanno dal punto A al punto B su Internet, per esempio, possono passare attraverso molti altri punti lungo il tragitto, lasciando ad altri la possibilità di intercettarli, e persino alterarli. Anche altri utenti sul vostro sistema possono maliziosamente trasformare i vostri dati in qualcosa che non vorreste. Degli intrusori, detti "cracker" possono ottenere l'accesso al vostro sistema, e poi usare le loro approfondite conoscenze per impersonarvi, rubarvi informazioni o anche negarvi l'accesso ai vostri stessi dati. Se vi state chiedendo qual è la differenza fra un "Hacker" e un "Cracker", leggete il documento di Eric Raymond "How to Become A Hacker" ("Come Diventare Un Hacker"), reperibile a http://www.netaxs.com/~esr/faqs/hacker-howto.html.
Primo, ricordatevi che nessun sistema informatico potrà mai essere completamente sicuro. Tutto quello che potete fare è rendere sempre più difficile per gli altri compromettere il vostro sistema. Per l'utente medio di un sistema Linux casalingo non serve molto per tenere a bada un cracker occasionale. Al contrario, per sistemi Linux di alto profilo (banche, compagnie di telecomunicazioni, etc), è necessario molto più impegno.
Un altro fattore da tenere in considerazione è che più il vostro sistema è sicuro, più la sicurezza diventa intrusiva. Dovete decidere a quale punto di equilibrio il vostro sistema sarà ancora utilizzabile ma sicuro, relativamente all'uso che ne fate. Per esempio, potreste esigere che chiunque tenti di fare un login via telefono col vostro sistema usi un modem che lo richiami a casa, stabilendo così la vera connessione. Questo dà più sicurezza, ma se qualcuno non è a casa sarà difficile che possa connettersi. Potreste anche configurare il vostro sistema Linux senza connessione a Internet, ma questo ne limiterebbe l'utilità.
Se avete un sito medio o grande, dovreste stabilire una politica di sicurezza che definisca quanto deve essere sicuro il vostro sito e quale utenza è autorizzata all'accesso. Potete trovare un famoso esempio di politica di sicurezza su http://www.faqs.org/rfcs/rfc2196.html. Il sito è stato recentemente aggiornato, e contiene un'ottima guida per stabilire una politica di sicurezza per la vostra compagnia.
Prima di tentare di rendere sicuro il vostro sistema, dovete decidere contro che tipo di attacco proteggervi, quali rischi dovreste o non dovreste correre, e quanto vulnerabile ne risulterebbe il sistema. Dovreste analizzare il sistema per sapere cosa state proteggendo, perché lo state proteggendo, quanto vale e chi ne ha la responsabilità.
Inoltre, avere un account insicuro nel vostro sistema può compromettere
l'intera rete. Se permettete anche ad un solo utente di fare un login usando
un file .rhosts
, o di usare un servizio insicuro come tftp
,
rischiate di permettere ad un intrusore di "aprire una breccia". Una volta che
l'intrusore ha un account sul vostro sistema, o sul sistema di qualcun altro,
può usarlo per avere accesso ad un altro sistema, o un altro account.
Ci sono diversi tipi di intrusori, ed è utile tenere a mente le loro caratteristiche quando configurate le difese del vostro sistema.
Cosa è in gioco se qualcuno entra nel vostro sistema? Ovviamente le preoccupazioni di un utente casalingo con un IP dinamico saranno diverse da quelle di una compagnia che si connetta ad Internet o ad un'altra grande rete.
Quanto tempo richiederebbe recuperare/ricreare dei dati andati persi? Un investimento di tempo ora può risparmiare dieci volte tanto in seguito, se doveste recuperare dati perduti. Avete controllato il vostro sistema di backup recentemente e avete verificato i vostri dati?
Create una strategia semplice e generica per il vostro sistema che gli utenti possano facilmente capire e seguire. Dovrebbe proteggere, oltre ai dati a cui tenete, anche la privacy degli utenti. Alcune cose che potrete considerare sono: chi ha accesso al sistema (Il mio amico può usare il mio account?), a chi \ permesso di installare programmi, chi possiede quali dati, recupero di "disastri" e uso appropriato del sistema.
Una strategia di sicurezza generalmente approvata comincia col motto:
Quello che non è permesso è proibito
Questo significa che almeno che non abbiate permesso a un utente l'accesso a un servizio, quell'utente non dovrebbe usare quel servizio finché non lo permettete. Assicurate che la vostra strategia funzioni davvero sull'account dell'utente normale. Dire, "Ah, non riesco a risolvere questo problema di privilegi, lo farò da root." può portare a buchi nella sicurezza evidenti, o persino ad altri che non sono ancora stati scoperti.
rfc1244 è un documento che spiega come creare una vostra strategia di sicurezza di rete.
rfc1281 è un documento che mostra una strategia di esempio con descrizioni dettagliate di ogni passo.
In fine potreste dare un'occhiata all'archivio COAST presso ftp://coast.cs.purdue.edu/pub/doc/policy come sono delle strategie applicabili alla pratica.
Questo documento discuterà diversi mezzi con cui potete mettere al sicuro la struttura per cui avete lavorato duro: la vostra macchina locale, i vostri dati, i vostri utenti, la vostra rete, persino la vostra reputazione. Cosa succederebbe alla vostra reputazione se un intrusore cancellasse dati dei vostri utenti? O sfregiasse il vostro sito? O pubblicasse il piano corporativo della vostra società per la prossima stagione? Se state pianificando l'installazione di una rete, ci sono diversi fattori da considerare prima di aggiungere una singola macchina.
Anche se avete un solo account PPP, o appena un piccolo sito, questo non significa che gli intrusori non saranno interessati a voi. Grandi sistemi di alto profilo non sono i soli bersagli -- molti intrusori vogliono solo passare la sicurezza di più siti possibile, ignorando le loro dimensioni. Inoltre, possono usare un buco nella sicurezza del vostro sistema per riuscire ad entrare in altri siti a cui siete connessi.
Questi individui hanno tutto il tempo che vogliono, e possono evitare di capire come avete protetto il vostro sistema semplicemente provando tutte le possibilità. C'è inoltre una serie di ragioni per cui un intrusore può interessarsi ai vostri sistemi, che discuteremo più avanti.
Forse l'area di sicurezza su cui gli amministratori si concentrano di più è la sicurezza dei singoli host. Questo in genere implica di assicurarsi che il proprio sistema sia sicuro, e di sperare che tutti gli altri nella rete faccia lo stesso. Scegliere buone password, rendere sicuri i sevizi di rete del vostro host locale, tenere buoni log degli account, e aggiornare i programmi che notoriamente hanno buchi di sicurezza sono fra le cose di cui un amministratore è responsabile. Anche se questo è assolutamente necessario, può diventare un compito pesante quando la vostra rete diventa più estesa di qualche macchina.
La sicurezza della rete è necessaria quanto quella dei singoli host. Con centinaia, migliaia, o più computer nella stessa rete, non potete sperare che ognuno di essi sia sicuro. Assicurarsi che solo utenti autorizzati possano accedere al sistema, alzare firewall, usare molto la crittografia, e evitare che non ci siano macchine pericolose (cioè insicure) nella vostra rete sono tutti compiti dell'amministratore della sicurezza di rete.
Questo documento discuterà le tecniche usate per rendere sicuro il vostro sito e mostrerà alcuni modi per impedire che un intrusore riesca ad accedere a quello che state tentando di proteggere.
Un tipo di sicurezza che deve essere discusso è la "sicurezza attraverso la discrezione". Questo significa, per esempio, spostare un servizio che è notoriamente "fragile" per la sicurezza verso una porta non standard nella speranza che chi vi attacca non noti che è lì e non lo sfrutti. State certi che lo possono trovare e sfruttare. La sicurezza attraverso la discrezione non è assolutamente sicurezza. Semplicemente perché avete un piccolo sito, o di profilo relativamente basso, non significa che un intrusore non sarà interessato da quello che avete. Discuteremo cosa proteggere nelle prossime sezioni.
Questo documento è stato diviso in una serie di sezioni. Trattano diversi argomenti riguardanti la sicurezza. Il primo, Sicurezza concreta, tratta della protezione dalle intrusioni. Il secondo, Sicurezza Locale, descrive come proteggere il sistema dagli utenti locali. Il terzo, Sicurezza dei File e dei Filesystem, mostra come configurare il filesystem e i privilegi sui file. Il successivo, Sicurezza delle Password e Crittografia, discute come usare la crittografia per rendere più sicura la vostra macchina e la vostra rete. Sicurezza del Kernel discute quali opzioni del kernel dovreste attivare o conoscere per un sistema più sicuro. Sicurezza della Rete, descrive come rendere il vostro sistema Linux più difficile da attaccare via rete. Preparare la Sicurezza, discute come preparare le vostre macchine prima di metterle in rete. Quindi, Cosa Fare Durante e Dopo un'Intrusione, tratta cosa fare quando scoprite una compromissione in atto o una successa recentemente. In Risorse per la Sicurezza, sono citate alcune importanti risorse per la sicurezza. La sezione D e R Domande Frequenti , risponde ad alcune domande frequenti, e in fine troverete una conclusione in Conclusione.
I due problemi da tenere a mente leggendo questo documento sono:
/var/log/messages
, tenete d'occhio il vostro sistema, e