  Linux Security HOWTO
  Kevin Fenzi, kevin@tummy.com & Dave Wreski,
  dave@linuxsecurity.com
  v1.1.1, 17 March 2000

  Traduzione a cura di Matteo Scordino felinux at siena.linux.it e Clau
  dio Gasparotto gasp at eponet.it. Questo documento  una visione
  d'insieme dei problemi di sicurezza che un amministratore di sistemi
  Linux si trova ad affrontare. Tratta una politica di sicurezza gen
  erale e una serie di esempi specifici di come mettere meglio al sicuro
  da intrusi un sistema Linux.  Sono anche inclusi collegamenti a mate
  riale e programmi riguardanti la sicurezza. Miglioramenti, critiche
  costruttive, aggiunte e correzioni saranno ben accette.  Per favore
  inviate i vostri commenti ad entrambi gli autori, con il subject
  "Security HOWTO".
  ______________________________________________________________________

  Indice Generale



  1. Introduzione
     1.1 Nuove versioni di questo documento
     1.2 Commenti
     1.3 Avvertenze
     1.4 Copyright Information

  2. Prologo
     2.1 Perch c' bisogno di sicurezza?
     2.2 Quanta sicurezza mi d la sicurezza?
     2.3 Cosa volete proteggere?
     2.4 Sviluppare una politica di sicurezza.
     2.5 Mezzi per proteggere il vostro sito
        2.5.1 Sicurezza dell'Host
        2.5.2 Sicurezza della rete locale
        2.5.3 Sicurezza attraverso la discrezione
     2.6 Organizzazione di questo documento

  3. Sicurezza Fisica
     3.1 Serrature per Computer
     3.2 Sicurezza del BIOS
     3.3 Sicurezza del Boot Loader
     3.4 xlock e vlock
     3.5 Scoprire Infrazioni della Sicurezza Fisica

  4. Sicurezza Locale
     4.1 Creare Nuovi Account
     4.2 Sicurezza di Root

  5. Sicurezza dei File e dei Filesystem
     5.1 Settaggi di Umask
     5.2 Permessi dei File
     5.3 Controllo dell'Integrit
     5.4 Cavalli di Troia

  6. Sicurezza delle Password e Crittografia
     6.1 PGP e Crittografia a Chiave Pubblica
     6.2 SSL, S-HTTP, HTTPS e S/MIME
     6.3 Implementazioni IPSEC per Linux
     6.4 ssh (Shell Sicura) e stelnet
     6.5 PAM - Pluggable Authentication Modules (Moduli Aggiuntivi di Autenticazione)
     6.6 Incapsulamento Crittografico IP (CIPE)
     6.7 Kerberos
     6.8 Shadow Password.
     6.9 "Crack" e "John the Ripper"
     6.10 CFS - File System Crittografico e TCFS - File System Crittografico Trasparente
     6.11 X11, SVGA e Sicurezza della GUI
        6.11.1 X11
        6.11.2 SVGA
        6.11.3 GGI (Generic Graphics Interface project) (Progetto di Interfaccia Grafica Generica)

  7. Sicurezza nel Kernel
     7.1 2.0 Kernel Compile Options
     7.2 2.2 Kernel Compile Options
     7.3 Device nel Kernel

  8. Sicurezza di Rete
     8.1 Sniffer di Pacchetti
     8.2 Servizi di sistema e tcp_wrappers
     8.3 Verificare i vostri DNS
     8.4 identd
     8.5 SATAN, ISS, e altri scanner di rete
        8.5.1 Rilevare Scansioni delle Porte
     8.6 sendmail, qmail e MTA (Agenti di Trasporto di Posta)
     8.7 Attacchi di Denial of Service (Negazione di un Servizio)
     8.8 Sicurezza del NFS (Network File System).
     8.9 NIS (Network Information Service) (gi YP).
     8.10 Firewall
     8.11 IP Chains - Firewall per Linux Kernel 2.2.x
     8.12 VPN - Virtual Private Networks (Reti Private Virtuali)

  9. Preparazione della Sicurezza (prima di entrare in rete)
     9.1 Fate un backup completo della macchina.
     9.2 Scegliere una Buona Tabella di Backup
     9.3 Fate un Backup dei Vostri Database di RPM o Debian
     9.4 Tenete Nota dei Dati degli Account
     9.5 Applicate Tutti i Nuovi Aggiornamenti di Sistema.

  10. Cosa Fare Durante e Dopo un'Intrusione
     10.1 Compromissione della Sicurezza in Corso.
     10.2 La sicurezza  gi stata compromessa.
        10.2.1 Chiudere il Buco
        10.2.2 Stimare il Danno
        10.2.3 Backup, Backup, Backup!
        10.2.4 Rintracciare l'Intruso.

  11. Documenti sulla Sicurezza
     11.1 Siti FTP
     11.2 Siti Web
     11.3 Mailing List
     11.4 Libri - Materiale Stampato

  12. Glossario
  13. Domande Frequenti
  14. Conclusioni
  15. Ringraziamenti


  ______________________________________________________________________



  11..  IInnttrroodduuzziioonnee

  Questo documento tratta alcune delle problematiche che riguardano la
  sicurezza di Linux.  Inoltre vengono discusse le politiche di
  sicurezza da seguire e le risorse intrinseche alla rete.

  Molti altri HOWTO trattano le caratteristiche della sicurezza sotto
  Linux, e quando necessario, sono presenti riferimenti a questi testi.

  Questo documento _n_o_n  una lista aggiornata di exploit. Vengono
  scoperti in continuazione molti nuovi exploit. Qui leggerete dove
  trovare questo tipo di documentazione aggiornata, e alcune metodi
  generali per evitare che tali exploit vengano sfruttati sul vostro
  sistema.



  11..11..  NNuuoovvee vveerrssiioonnii ddii qquueessttoo ddooccuummeennttoo

  Nuove versioni (in lingua inglese) di questo documento verranno
  periodicamente spedite su _c_o_m_p_._o_s_._l_i_n_u_x_._a_n_s_w_e_r_s.  Verranno anche
  aggiunte a vari siti che trattano documentazione del genere, incluso:

  http://www.linuxdoc.org/

  Inoltre, dovreste in genere poter trovare questo documento sulla
  pagina WWW di Linux a:

  http://metalab.unc.edu/mdw/linux.html


  In fine, l'ultimissima versione di questo documento dovrebbe essere
  disponibile in vari formati anche da:

  http://scrye.com/~kevin/lsh/

  o

  http://www.linuxsecurity.com/Security-HOWTO

  o

  http://www.tummy.com/security-howto



  11..22..  CCoommmmeennttii

  Tutti i commenti, eventuali errori, informazioni aggiuntive e critiche
  di ogni tipo dovrebbero essere dirette a:

  kevin@tummy.com

  e

  dave@linuxsecurity.com

  _N_o_t_a: Per favore mandate i vostri commenti ad _e_n_t_r_a_m_b_i gli autori.
  Inoltre, siate sicuri di includere "Linux" "security", o "HOWTO" nel
  subject per evitare il filtro antispam di Kevin.


  11..33..  AAvvvveerrtteennzzee

  Non mi prendo la responsabilit del contenuto di questo documento.
  L'utilizzo di concetti, esempi o altre informazioni contenute in
  questo documento  a proprio rischio e pericolo. Inoltre, questa  una
  versione preliminare, con possibili errori e imprecisioni.


  Molti degli esempi e delle descrizioni si riferiscono al setup di
  sistema della distribuzione RedHat(tm).  Il setup del vostro sistema
  potrebbe variare da quanto descritto qui.

  Per quanto ne sappiamo, verranno descritti solo programmi che possono
  essere usati sotto certe condizioni per scopi personali o di
  valutazione. La maggior parte di questi programmi, completi di
  sorgenti, sono disponibili sotto licenza GNU
  <http://www.gnu.org/copyleft/gpl.html>.


  11..44..  CCooppyyrriigghhtt IInnffoorrmmaattiioonn

  This document is copyrighted (c)1998-2000 Kevin Fenzi and Dave Wreski,
  and distributed under the following terms:



    Linux HOWTO documents may be reproduced and distributed in whole or
     in part, in any medium, physical or electronic, as long as this
     copyright notice is retained on all copies. Commercial
     redistribution is allowed and encouraged; however, the authors
     would like to be notified of any such distributions.

    All translations, derivative works, or aggregate works
     incorporating any Linux HOWTO documents must be covered under this
     copyright notice.  That is, you may not produce a derivative work
     from a HOWTO and impose additional restrictions on its
     distribution. Exceptions to these rules may be granted under
     certain conditions; please contact the Linux HOWTO coordinator at
     the address given below.

    If you have questions, please contact Tim Bynum, the Linux HOWTO
     coordinator, at

  tjbynum@metalab.unc.edu


  22..  PPrroollooggoo

  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.

  22..11..  PPeerrcchh cc'' bbiissooggnnoo ddii ssiiccuurreezzzzaa??

  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.


  22..22..  QQuuaannttaa ssiiccuurreezzzzaa mmii dd llaa ssiiccuurreezzzzaa??

  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.



  22..33..  CCoossaa vvoolleettee pprrootteeggggeerree??

  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.


    Il _r_i_s_c_h_i_o  la possibilit che un intrusore riesca nel tentativo
     di accedere al vostro computer. Un intruso pu leggere o scrivere
     file, o eseguire programmi che potrebbero fare danno?  Pu
     cancellare dei dati? Pu bloccare il lavoro vostro e della vostra
     compagnia? Non dimenticate: qualcuno che ha accesso al vostro
     account, o al vostro sistema, pu anche impersonarvi.

     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'intruso 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.


    Una _m_i_n_a_c_c_i_a viene tipicamente da qualcuno con un movente per
     cercare di avere accesso non autorizzato alla vostra rete o
     computer.  Dovete decidere di chi potete fidarvi, e che tipo di
     minaccia potrebbe rappresentare.

     Ci sono diversi tipi di intrusori, ed  utile tenere a mente le
     loro caratteristiche quando configurate le difese del vostro
     sistema.


       IIll CCuurriioossoo - Questo tipo di intrusore  principalmente
        interessato nel capire che tipo di dati e di sistema avete.

       IIll MMaalliizziioossoo - Questo tipo di intrusore in genere tenta di
        mettere fuori uso il vostro sistema, o sfregiare la vostra
        pagina web, o altrimenti di farvi perdere tempo e denaro per
        riparare i danni che causa.

       LL''IInnttrruussoorree ddii AAllttoo PPrrooffiilloo - Questo tipo di intrusore tenta di
        usare il vostro sistema per guadagnare popolarit o fama.
        Potrebbe usare il vostro sistema di alto profilo per
        pubblicizzare le sue abilit

       LLaa CCoonnccoorrrreennzzaa - Questo tipo di intrusore ha interesse nei dati
        che avete sul vostro sistema.  Potrebbe essere qualcuno che
        pensa che abbiate qualcosa di cui potrebbe beneficiare,
        finanziariamente o in altro modo.

       LLoo SSffrruuttttaattoorree - Questo tipo di intrusore  interessato a
        sfruttare il vostro sistema e ad usare le sue risorse per i
        propri fini.  In genere eseguir server di chat o irc, siti con
        archivi porno o addirittura server DNS.

       IIll PPaassssaaffrroonnttiieerree - Questo tipo di intrusore  interessato al
        vostro computer per usarlo come trampolino per entrare in altri
        sistemi.  Se il vostro sistema ha una buona connessione o  il
        passaggio verso molti altri host,  probabile che vi troviate ad
        affrontare questo tipo di intrusore.


    La vulnerabilit esprime quanto bene il vostro computer  protetto
     dalle altre reti, e la possibilit che qualcuno ottenga senza
     permesso l'accesso.

     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?


  22..44..  SSvviilluuppppaarree uunnaa ppoolliittiiccaa ddii ssiiccuurreezzzzaa..

  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:


                    QQuueelllloo cchhee nnoonn  ppeerrmmeessssoo  pprrooiibbiittoo


  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.


  22..55..  MMeezzzzii ppeerr pprrootteeggggeerree iill vvoossttrroo ssiittoo

  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
  intruso 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.



  22..55..11..  SSiiccuurreezzzzaa ddeellll''HHoosstt

  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.


  22..55..22..  SSiiccuurreezzzzaa ddeellllaa rreettee llooccaallee

  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.


  22..55..33..  SSiiccuurreezzzzaa aattttrraavveerrssoo llaa ddiissccrreezziioonnee

  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.


  22..66..  OOrrggaanniizzzzaazziioonnee ddii qquueessttoo ddooccuummeennttoo

  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:


    conoscere il vostro sistema. Controllate i log di sistema, come
     /var/log/messages, tenete d'occhio il vostro sistema, e

    tenete aggiornato il vostro sistema assicurandovi di avere
     installato le versioni aggiornate del software.  Gi questi
     accorgimenti renderanno decisamente pi sicuro il vostro sistema.


  33..  SSiiccuurreezzzzaa FFiissiiccaa

  Il primo grado di sicurezza che dovete considerare  la sicurezza
  fisica dei vostri sistemi. Chi ha fisicamente accesso ai computer?
  Dovrebbe averlo? Riuscite a proteggere la vostra macchina da eventuali
  intrusioni?

  Di quanta sicurezza fisica avete bisogno sul vostro sistema dipende
  molto dalla situazione e/o dal budget.

  Se siete un utente casalingo, probabilmente non  molto importante
  (anche se potreste aver bisogno di proteggervi dalla curiosit di
  bambini o parenti).  Se si tratta di un laboratorio, ne avrete pi
  bisogno, ma gli utenti avranno comunque bisogno di non essere limitati
  nel lavoro. Molte delle seguenti sezioni saranno d'aiuto. Se siete in
  un ufficio, potreste avere bisogno o no di tenere al sicuro le vostre
  macchine fuori dalle ore di lavoro o quando non siete presenti. In
  certe compagnie, lasciare incustodita la vostra macchina  un errore
  da licenziamento.

  Ovvi metodi di sicurezza come lucchetti, macchine chiuse a chiave e
  video sorveglianza sono buone idee, ma vanno oltre il tema di questo
  documento. :)


  33..11..  SSeerrrraattuurree ppeerr CCoommppuutteerr

  Molti case dei moderni PC includono la possibilit di essere chiusi.
  In genere hanno una toppa sulla parte frontale del case che pu essere
  alternate fra le posizioni "chiuso" e "aperto con una chiave. Queste
  serrature possono aiutare ad evitare che qualcuno rubi il vostro 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 hanno funzioni diverse a seconda che siano
  riconosciute dalla scheda madre e di come  costruito il case. Su
  molti PC fanno in modo di obbligarvi a rompere il case per aprirlo. In
  altri, non vi permetteranno neanche di inserire nuove tastiere o
  mouse. Controllate le istruzioni della vostra 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 superate con un po' di
  scasso.

  Alcune macchine (soprattutto SPARC e Mac) hanno un gancio sul retro in
  cui far passare una catena che un ipotetico intrusore dovrebbe rompere
  per aprire il case. Semplicemente metterci un lucchetto pu essere un
  deterrente contro i furti.



  33..22..  SSiiccuurreezzzzaa ddeell BBIIOOSS

  Il BIOS  il pi basso livello software per configurare il vostro
  hardware basato su tecnologia 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...). Potete usare il
  vostro BIOS per evitare che un intruso  riavvii la vostra macchina e
  manipoli il vostro sistema Linux.

  Molti BIOS di PC vi 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
  vostra EEPROM pu essere configurata per richiedere una password di
  avvio. Questo pu rallentare l'intrusore.

  Molti BIOS x86 vi permettono anche di usare diversi altri utili
  settaggi di sicurezza. Leggete il manuale del vostro BIOS o dategli
  un'occhiata quando riavviate la prossima volta. Per esempio alcuni
  BIOS bloccano l'avvio da floppy e altri richiedono una password per
  modificare certe caratteristiche del BIOS.

  _N_o_t_a: se avete una macchina server e inserite una password di avvio,
  questa non ripartir da sola. Ricordate che dovrete andare a mettere
  la password se mancasse la corrente. ;(


  33..33..  SSiiccuurreezzzzaa ddeell BBoooott LLooaaddeerr

  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 specificate opzioni ( come single) al prompt di LILO.

  Dalla pagina man di lilo.conf:


       password=password
                     L'opzione `password=...' (vedi sotto) ha effetto su ogni partizione.

       restricted
                     L'opzione `restricted' (vedi sotto) ha effetto su ogni partizione.

              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).



  Tenete presente quando settate tutte queste password che poi dovrete
  ricordarvele. :) Ricordatevi anche che tutte queste password si
  limiteranno a rallentare un intrusore ben determinato.  Non
  impediranno di avviare da un floppy e quindi montare la partizione di
  root.  Se state usando questo tipo di sicurezza dovreste anche
  disabilitare il boot da floppy nel BIOS del computer, e quindi
  proteggerlo con una password.

  Se qualcuno avesse informazioni sulla sicurezza dei boot loader, ci
  piacerebbe averle. (grub, silo, milo, linload, etc).

  _N_o_t_a: Se avete una macchina server e inserite una password di boot, la
  vostra macchina _n_o_n si riavvier da sola. Ricordate che dovrete andare
  a mettere la password se andasse via la corrente. ;(


  33..44..  xxlloocckk ee vvlloocckk

  Se vi allontanate dal computer ogni tanto, torna utile poter
  "bloccare" la macchina cos che nessuno possa manomettere, o vedere,
  il vostro 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. Controllate la sua pagina man per
  trovare altre opzioni, ma in genere potete 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 del vostro Linux. Potete bloccarle tutte o
  solo quella che state usando. Se ne bloccate una sola, altri potranno
  venire ad usare le altre; semplicemente non potranno usare la vostra
  finch non la sbloccate. vlock  distribuito con RedHat Linux, ma non
   detto che sia l'unica.

  Chiaramente bloccare la vostra console impedir ad altri di manipolare
  il vostro lavoro, ma non di riavviare la macchina o distruggere il
  vostro lavoro in altri modi. Inoltre non evita che qualcuno acceda
  alla vostra 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.


  33..55..  SSccoopprriirree IInnffrraazziioonnii ddeellllaa SSiiccuurreezzzzaa FFiissiiccaa

  La prima cosa da notare  quando la macchina  stata riavviata.  Visto
  che Linux  un SO stabile e robusto, dovrebbe essere riavviato solo
  quando _v_o_i lo riavviate per aggiornamenti del SO, cambiamenti all'
  hardware, o cose del genere. Se la vostra macchina si  riavviata
  senza un vostro comando, potrebbe essere il segno della manomissione
  di un intruso.  Molti dei metodi di manomissione richiedono un riavvio
  o uno spegnimento del computer.

  Cercate 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 viene
  mandato non crittato, permettendo a un intruso di vedere i dati mentre
  vengono trasferiti . Questo pu rivelare informazioni sulla vostra
  rete che non dovrebbero essere pubbliche. Ci sono anche demoni syslog
  che crittano i dati inviati.

  Tenete in 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 local host senza indicare la
  loro vera origine.

  Alcune cose da controllare nei vostri log:

    Log brevi o incompleti.

    Log che contengano date improbabili.

    Log con permessi sbagliati.

    Registrazioni di riavvii o di servizi riavviati.

    Log mancanti.

    Uso fuori logo di su o login da posti strani.

  Parleremo del controllo dei log pi avanti (``Dati Account'') nell'
  HOWTO.


  44..  SSiiccuurreezzzzaa LLooccaallee

  La prossima cosa da controllare  la sicurezza contro attacchi da
  utenti locali. Abbiamo detto solo utenti _l_o_c_a_l_i? Si!

  Ottenere l'accesso all'account di un utente locale  uno dei primi
  tentativi che gli intrusi fanno per arrivare all'account di root. Con
  una debole sicurezza locale, possono "promuovere" il loro accesso di
  utente ad accesso di root usando una serie di bug e servizi locali mal
  configurati. Se stringerete le maglie della vostra sicurezza locale un
  intruso dovr saltare un ulteriore ostacolo.

  Gli utenti locali possono creare un sacco di danni anche se sono
  veramente chi dicono di essere.  una pessima idea fornire account a
  persone che non conoscete o di cui non avete informazioni su come
  contattarli.


  44..11..  CCrreeaarree NNuuoovvii AAccccoouunntt

  Dovreste essere certi di accordare agli utenti solo i privilegi
  indispensabili per il lavoro che devono svolgere. Se date a vostro
  figlio (10 anni) un account, potreste volere che abbia accesso solo a
  un programma di scrittura o di disegno, ma che non possa cancellare
  dati non suoi.

  Diverse regolette da seguire quando si fornisce ad altri un accesso
  legittimo al vostro sistema Linux:


    Dare loro meno privilegi possibili.

    Sapere da dove e quando fanno un login o dovrebbero farlo.

    Assicurarsi di rimuovere gli account inutilizzati

     consigliabile per la manutenzione l'uso della stessa userid su
     tutti i computer e le reti, e inoltre permette una pi facile
     analisi dei log.

    La creazione di userid di gruppo dovrebbe essere assolutamente
     proibita. Gli account degli utenti permettono l'attribuzione delle
     responsabilit, e questo non  possibile con account di gruppo.

  Molti account locali che sono sfruttati in infrazioni di sicurezza non
  sono stati usati per mesi o anni. Visto che nessuno li usa, sono un
  ideale mezzo di attacco.


  44..22..  SSiiccuurreezzzzaa ddii RRoooott

  L'account pi preso di mira sulla vostra macchina  l'account di root,
  o superuser. Questo account ha autorit su tutta la macchina, che pu
  anche includere l'autorit su altre macchine sulla rete.  Ricordate
  che dovreste usare l'account di root solo per compiti specifici e
  molto brevi, usando quindi per la maggior parte del tempo il vostro
  utente normale. Anche piccoli errori fatti da root possono causare
  problemi. Meno usate i vostri privilegi di root, pi sarete al sicuro.

  Alcuni trucchi per evitare di fare danni da root sul vostro computer:

    Quando eseguite un comando complesso, provate prima ad eseguirlo in
     modo non distruttivo... soprattutto programmi che usano le
     wildcard: e.g., se volete eseguire rm foo*.bak, prima usate ls
     foo*.bak e assicuratevi di stare per cancellare i file che volete
     davvero. Anche usare echo al posto di comandi distruttivi pu
     andare bene.

    Fornite ai vostri utenti un alias al comando rm per chiedere
     conferma della cancellazione dei file.

     Usate root solo per portare a termine singoli specifici compiti.
     Se vi rendete conto che state cercando di capire come fare
     qualcosa, tornate alla shell di utente normale finche non sarete
     _s_i_c_u_r_i di cosa fare da root.

    Il path dei comandi per l'utente root  molto importante. Il path
     dei comandi (ci la variabile d'ambiente PATH) specifica le
     directory in cui la shell cerca i programmi. Provate a limitare il
     path di root il pi possibile e non includete _m_a_i . (che significa
     "la directory corrente") nella variabile PATH.  Inoltre, non
     mettete mai directory scrivibili nel path, perch potrebbe
     permettere a degli intrusi di modificare o inserire nuovi
     eseguibili nel path, permettendo loro di divenire root la prossima
     volta che eseguirete quel comando.

    Non usate mai la suite di comandi rlogin/rsh/rexec (dette le r-
     utilities) da root. Sono soggette a molti tipi di attacco e sono
     decisamente pericolose se eseguite da root. Non create mai un file
     .rhosts per root.

    Il file /etc/securetty contiene una lista di terminali da cui root
     pu fare login. Per default (su RedHat Linux)  impostata sulle
     sole console virtuali locali (vtys). Siate consapevoli di cosa fate
     quando aggiungete qualcosa a questo file. Sarebbe meglio loggarsi
     da remoto come utente normale e poi usare su se ne avete bisogno
     (preferibilmente attraverso ``ssh'' o un altro canale crittato), in
     modo che non sia necessario fare un login remoto da root.

    Siate sempre calmi e riflessivi quando siete root. Le vostre azioni
     possono avere effetti su molte cose. Pensate prima di digitare!

  Se dovete assolutamente permettere a qualcuno (possibilmente molto
  fidato) di accedere da root alla vostra macchina, ci sono un paio di
  strumenti che possono essere d'aiuto. sudo permette agli utenti di
  usare la loro password per accedere a una gamma limitata di comandi
  come root. Questi vi permetterebbe, per esempio, di lasciare che un
  utente espella e monti media removibili sul vostro computer, senza
  avere altri privilegi di root.  sudo inoltre tiene un log di tutti i
  tentativi, riusciti e non, di usarlo, permettendovi di rintracciare
  chi ha usato il comando per fare cosa.  Per questa ragione sudo
  funziona bene persino in posti dove molte persone hanno accesso di
  root, perch vi permette di rintracciare i cambiamenti fatti.

  Nonostante sudo possa essere usato per dare a specifici utenti
  specifici privilegi per specifici lavori, ha alcune mancanze. Dovrebbe
  essere usato solo per una limitata serie di compiti, come riavviare un
  server o aggiungere utenti. Ogni programma che offre un modo per
  tornare alla shell dar un accesso di root a un utente che lo usi
  attraverso sudo.  Questo include la maggior parte degli editor, per
  esempio. Inoltre, un programma innocuo come /bin/cat pu essere usato
  per sovrascrivere file, il che permetterebbe di prendere possesso del
  superuser.  Considerate sudo come un mezzo per conoscere le
  responsabilit di certe azioni, e non sperare che possa sostituire
  root rimanendo sicuro.


  55..  SSiiccuurreezzzzaa ddeeii FFiillee ee ddeeii FFiilleessyysstteemm

  Alcuni minuti di preparazione e pianificazione prima di mettere in
  funzione i vostri sistemi pu aiutare a proteggere loro e i loro dati.

    Non ci dovrebbe essere alcuna ragione per cui le home directory
     degli utenti permettano di usare programmi SUID/SGID. Usate
     l'opzione nosuid /etc/fstab per partizioni scrivibili da chi non 
     root. Forse vorrete anche usare nodev e noexec sulle partizioni
     home degli utenti e su /var, proibendo cos l'uso di programmi e la
     creazioni di character o block device, che comunque non dovrebbe
     mai essere necessaria.

    Se esportate filesystem usando NFS, siate sicuri di configurare
     /etc/exports con l'accesso pi restrittivo possibile. Questo
     significa non usare wildcard, non permettere accesso in scrittura
     di root, e esportare solo in lettura quando  possibile.

    Configurate l'umask di creazione dei file dei vostri utenti in modo
     che sia pi restrittiva possibile.  Cfr. ``settaggi di umask''.

    Se montate filesystem usando un filesystem di rete come NFS, siate
     sicuri di configurare  /etc/exports con restrizioni adeguate.
     Tipicamente, usare nodev, nosuid, e magari noexec,  consigliabile.

    Impostate limiti per il filesystem invece di lasciarlo illimitato
     come di default. Potete controllare i limiti per utente usando il
     modulo PAM per la limitazione delle risorse e
     /etc/pam.d/limits.conf.  Per esempio, i limiti per il gruppo users
     potrebbero essere:



                       @users     hard  core    0
                       @users     hard  nproc   50
                       @users     hard  rss     5000



  Cos si proibisce la creazione di file core, si limita il numero di
  processi a 50 e la memoria disponibile ad ogni utente a 5 MB.


    I file /var/log/wtmp e /var/run/utmp contengono i record di login
     per tutti gli utenti del sistema. La loro integrit deve essere
     conservata perch possono essere usati per determinare quando e da
     dove un utente (o un potenziale intruso)  entrato nel sistema.
     Questi file dovrebbero avere i permessi 644, senza limitare il
     normale uso del sistema.


    Il bit immutable pu essere usato per prevenire la cancellazione o
     sovrascrittura accidentale di un file che deve essere protetto.
     Inoltre evita che qualcuno crei un link simbolico al file (questi
     link simbolici sono stati l'origine di attacchi che hanno
     cancellato /etc/passwd o /etc/shadow).  Cfr. la man page chattr(1)
     per informazioni sul bit immutable.


     I file SUID e SGID sono un potenziale rischio, e dovrebbero essere
     tenuti d'occhio. Visto che questi programmi danno speciali
     privilegi all'utente che li esegue,  necessario assicurarsi che
     non vengano istallati programmi insicuri.  Un trucco molto diffuso
     fra i cracker  sfruttare programmi con SUID-root, quindi lasciare
     un programma SUID a fare da backdoor per entrare la prossima volta,
     anche se il buco originale viene chiuso.

     Trovate tutti i programmi SUID/SGID sul vostro sistema, e tenete
     appunti su cosa sono, cos da essere al corrente di qualsiasi
     cambiamento che potrebbe indicare un eventuale intruso. Usate
     questo comando per trovare tutti i programmi con  SUID/SGID sul
     vostro sistema:



                       root#  find / -type f \( -perm -04000 -o -perm -02000 \)



  La distribuzione Debian esegue un job ogni sera per determinare quali
  file con SUID esistano. Quindi li compara con quelli della sera
  precedente. Potete cercare questo log in /var/log/setuid*.

  Potete togliere i permessi SUID o SGID da un programma sospetto con
  chmod, quindi rimetterli se pensate che siano assolutamente necessari.


    I file scrivibili da tutti, soprattutto i file di sistema, possono
     essere un buco nella sicurezza se un cracker accede al vostro
     sistema e li modifica.  Inoltre, le directory scrivibili da tutti
     sono pericolose: permettono a un cracker di aggiungere o cancellare
     file come vuole. Per trovare tutti i file di libera scrittura sul
     vostro sistema, usate il comando:



                       root# find / -perm -2 ! -type l -ls



  e assicuratevi di sapere perch quei file sono scrivibili. Durante
  l'uso normale alcuni file saranno liberamente scrivibili, inclusi
  alcuni da /dev, e i link simbolici, da cui il ! -type l che li esclude
  dal comando find.
  

     Dei file senza un proprietario possono indicare che qualcuno 
     entrato nel vostro sistema. Potete trovare i file senza
     proprietario, o senza gruppo, col comando:



                       root# find / -nouser -o -nogroup -print



    Cercare file .rhosts dovrebbe essere uno dei vostri compiti di
     amministratore , visto che questi file non dovrebbero essere
     permessi sul vostro sistema. Ricordate che a un cracker basta un
     solo account insicuro per poter avere accesso a tutta la rete.
     Potete trovare tutti i file .rhosts sul vostro sistema col seguente
     comando:


                      root# find /home -name .rhosts -print



  

     Per finire, prima di cambiare i permessi su un qualsiasi file di
     sistema, siate certi di sapere quello che fate. Non cambiate mai i
     permessi di un file perch sembra la via pi facile di far
     funzionare le cose.  Determinate sempre la ragione per cui quel
     file ha quei permessi prima di cambiarli.


  55..11..  SSeettttaaggggii ddii UUmmaasskk

  Il comando umask pu essere usato per stabilire la modalit standard
  di creazione dei file.  il complementare ottale della modalit
  desiderata. Se i file venissero creati senza tenere in conto i
  settaggi dei loro permessi, un utente potrebbe inavvertitamente dare
  permessi di lettura o scrittura a qualcuno che non li dovrebbe avere.
  I tipici settaggi di umask includono 022, 027, e 077 (che  il pi
  restrittivo). Normalmente la umask viene impostata in /etc/profile,
  cos che abbia effetto su tutti gli utenti sul sistema. La maschera di
  creazione dei file si calcola sottraendo da 777 il valore desiderato.
  In altre parole, una umask di 777 farebbe in modo che i file creati
  non contengano permessi di lettura, scrittura o esecuzione per
  nessuno. Una maschera di 666 creerebbe nuovi file con permessi 111.
  Per esempio, potreste avere una linea di questo genere:



                       # Imposta la maschera di default degli utenti
                       umask 033



  In questo caso, le nuove directory avrebbero permesso 744, ottenuto
  dalla sottrazione di 033 da 777. I nuovi file avrebbero permesso 644.
  Siate sicuri che la umask di root sia 077, che impedir la lettura,
  scrittura e esecuzione ad altri utenti, eccetto che per quei file che
  siano stati esplicitamente cambiati con chmod chmod.

  Se usate RedHat, e aderite al loro schema di creazione di ID di utenti
  e gruppi (User Private Groups), sar sufficiente usare 002 per la
  vostra umask. Questo  dovuto al fatto che la configurazione di
  default  di utente per gruppo.


  55..22..  PPeerrmmeessssii ddeeii FFiillee

   importante assicurarsi che i vostri file di sistema non siano aperti
  da utenti e gruppi che non dovrebbero fare manutenzione di sistema.

  Unix separa il controllo di accesso ai file e alle directory secondo
  tre caratteristiche: proprietario, gruppo e altri. C' sempre un solo
  proprietario, un numero variabile di membri del gruppo, e tutti gli
  altri.

  Ecco un veloce spiegazione dei permessi di Unix:

  Propriet     - Quale/i utente/i e gruppo/i ha controllo sui permessi
  del nodo.

  Permessi      - Bit che possono essere settati o resettati per
  concedere certi tipi di accesso. I permessi delle directory possono
  avere significati diversi dai corrispondenti permessi sui file.

  LLeettttuurraa::

    Poter vedere i contenuti del file

    Poter aprire la directory

  SSccrriittttuurraa::

    Poter aggiungere parti o fare modifiche a un file

    Poter cancellare o spostare i file in una directory

  EEsseeccuuzziioonnee::

    Poter eseguire un programma binario o script di shell

    Poter eseguire una ricerca nella directory, nel cao abbia il
     permesso di lettura


     AAttttrriibbuuttoo SSaavvee TTeexxtt:: ((PPeerr llee ddiirreeccttoorryy))
        Lo "sticky bit" ha anche un significato diverso quando applicato
        a directory e quando a file. Se lo sticky bit  impostato per
        una directory, allora un utente pu solo cancellare file di cui
         proprietario o di cui ha espliciti permessi di scrittura,
        anche se ha accesso in scrittura alla directory. Ci  stato
        progettato per directory come /tmp, che sono scrivibili a tutti,
        ma in cui si preferisce che non tutti possano cancellare file a
        volont. Lo sticky bit  segnato come una t nel listato di una
        directory.


     AAttttrriibbuuttoo SSUUIIDD:: ((PPeerr ii  ffiillee))
        Descrive permessi set-user-id sul file. Quando la modalit di
        accesso set user ID  impostata nei permessi del proprietario, e
        il file  eseguibile, i processi che lo eseguono hanno accesso
        alle risorse di sistema basati sul proprietario del file, invece
        che sull'utente che ha creato il processo. Questa  la causa di
        molti exploit basati sul buffer overflow.


     AAttttrriibbuuttoo SSGGIIDD:: ((PPeerr ii ffiillee))
        Se impostato nei permessi del gruppo, questo bit controlla lo
        stato "set group id" di un file. In pratica si comporta come
        SUID, escluso che si basa sul gruppo. Il file deve essere
        eseguibile perch questo abbia un effetto.


     AAttttrriibbuuttoo SSGGIIDD:: ((PPeerr llee ddiirreeccttoorryy))
        Se impostate il bit SGID su una directory (con chmod g+s
        _d_i_r_e_c_t_o_r_y), I file creati in quella directory avranno il gruppo
        impostato sul gruppo della directory.

  Voi          - Il proprietario del file

  Gruppo        - Il gruppo a cui appartenete

  Tutti     - Chiunque non sia il proprietario o membro del gruppo


  FFiillee EEsseemmppiioo::



               -rw-r--r--  1 kevin  users         114 Aug 28  1997 .zlogin
               1 bit - directory?                       (no)
                2 bit - lettura per il proprietario?     (yes, per kevin)
                 3 bit - scrittura per il proprietario?   (yes, per kevin)
                  4 bit - esecuzione per il proprietario?  (no)
                   5 bit - lettura per il gruppo?           (yes, per users)
                    6 bit - scrittura per il gruppo?         (no)
                     7 bit - esecuzione per il gruppo?        (no)
                      8 bit - lettura per tutti?               (yes, per tutti)
                       9 bit - scrittura per tutti?             (no)
                        10 bit - esecuzione per tutti?           (no)



  Le seguenti linee sono esempi dei permessi minimi richiesti per
  l'accesso a lato. Forse vorrete dare pi permessi di quanto vedete
  qui, ma questo mostra solo ci che questi permessi minimi fanno:



       -r--------  Permette accesso in lettura al file per il proprietario
       --w-------  Permette al proprietario di modificare o cancellare il file
                   (Notate che chiunque con permesso di scrittura alla directory
                   in cui si trova il file ha lo stesso privilegio)
       ---x------  Il proprietario pu eseguire questo programma, ma non script
                   della shell, che hanno bisogno anche del permesso in lettura
       ---s------  Il file verr eseguito con User ID = utente
       --------s-  Il file verr eseguito con Group ID = gruppo
       -rw------T  Non viene segnata l'ultima modifica. Usato spesso per file di swap
       ---t------  Nessun effetto.  (Era lo sticky bit)



  EEsseemmppiioo ddii ddiirreeccttoorryy::



          drwxr-xr-x  3 kevin  users         512 Sep 19 13:47 .public_html/
          1 bit - directory?                       (si, contiene molti file)
           2 bit - lettura per il proprietario?      (si, per kevin)
            3 bit - scrittura per il proprietario?   (si, per kevin)
             4 bit - esecuzione per il proprietario?  (si, per kevin)
              5 bit - lettura per il gruppo?           (si, per users)
               6 bit - scrittura per il gruppo?         (no)
                7 bit - esecuzione per il gruppo?        (si, per users)
                 8 bit - lettura per tutti?               (si, per tutti)
                  9 bit - scrittura per tutti?             (no)
                   10 bit - esecuzione per tutti?            (si, per tutti)



  Le seguenti linee sono esempi dei permessi minimi richiesti per
  l'accesso a lato. Forse vorrete dare pi permessi di quanto vedete
  qui, ma questo mostra solo ci che questi permessi minimi fanno:



       dr--------  I contenuti possono essere listati, ma gli attributi dei file non
                   possono essere letti
       d--x------  La directory pu essere aperta e usata nei percorsi di
                   esecuzione
       dr-x------  Gli attributi dei file possono essere letti dal proprietario
       d-wx------  I file possono essere creati/cancellati, anche se la directory non
                    quella corrente
       d------x-t  Impedisce che i file siano cancellati da chi ha i permessi in
                   scrittura. Usato su /tmp
       d---s--s--  Nessun effetto



  I file di configurazione del sistema (di solito in /etc) sono in
  genere in modo 640 (-rw-r-----), e propriet di root. A seconda delle
  necessit di sicurezza del vostro sistema potreste cambiare questa
  impostazione. Non lasciate mai che dei file di sistema siano
  scrivibili da un gruppo o da tutti.  Alcuni file di configurazione,
  incluso /etc/shadow, dovrebbero essere leggibili solo da root, e le
  directory in /etc non dovrebbero essere accessibili da altri.


     SSccrriipptt ddeellllaa SShheellll ccoonn SSUUIIDD
        Gli script della shell con SUID sono un serio rischio per la
        sicurezza, per cui il kernel non li considerer. A prescindere
        da quanto pensate che lo script sia sicuro, pu essere sfruttato
        per dare a un cracker una shell di root


  55..33..  CCoonnttrroolllloo ddeellll''IInntteeggrriitt

  Un altro ottimo modo per rilevare attacchi locali (e anche di rete) 
  eseguire un programma che faccia un controllo d'integrit come
  Tripwire, Aide o Osiris.  Questi programmi eseguono una serie di
  controlli su tutti i vostri binari importanti e sui file di
  configurazione e li compara con un database di valori precedenti che
  si presumono corretti. In questo modo, ogni cambiamento nei file verr
  segnalato.

   una buona idea installare questo tipo di programmi in un floppy e
  quindi proteggerlo fisicamente dalla scrittura. Cos degli intrusi non
  potranno sabotare il programma per il controllo o cambiare i database.
  Una volta che avrete impostato una programma del genere,  una buona
  idea eseguirlo come parte dei vostri compiti amministrativi di routine
  per vedere se qualcosa  cambiato.

  Potreste persino aggiungere un elemento al crontab per eseguire il
  controllo ogni  notte e inviarvi un e-mail con i risultati al mattino.
  Qualcosa come:


                       # imposta mailto
                       MAILTO=kevin
                       # esegui Tripwire
                       15 05 * * * root /usr/local/adm/tcheck/tripwire



  vi spedir un rapporto ogni mattina alle 5:15.

  I controlli d'integrit possono essere una manna dal cielo per
  rilevare in tempi brevi un intruso. Visto che molti file cambiano su
  un sistema normale, fate attenzione a cosa  l'attivit di un cracker
  e cosa  la vostra attivit.

  Potete trovare la versione open source e gratuita di Tripwire presso
  http://www.tripwire.org.  Manuali e supporto sono invece a pagamento.

  Aide si trova presso http://www.cs.tut.fi/~rammer/aide.html.

  Osiris si trova presso http://www.shmoo.com/osiris/.


  55..44..  CCaavvaallllii ddii TTrrooiiaa

  "Cavalli di Troia" prende il nome dal famoso inganno nell'Iliade di
  Omero.  Il concetto  che un cracker distribuisce  un programma o un
  binario che sembra attraente, e incita altre persone a scaricarlo ed
  eseguirlo come root.  A quel punto il programma pu compromettere il
  loro sistema mentre non se lo aspettano. Mentre pensano che il
  programma che hanno preso faccia una cosa (e magari la fa davvero),
  compromette anche la sicurezza del sistema.

  Dovreste controllare quali programmi installate sulla vostra macchina.
  RedHat fornisce checksum MD5 e firme PGP sui suoi pacchetti RPM perch
  possiate verificare ci che installate. Altre distribuzioni hanno
  metodi simili.  Non dovreste mai eseguire binari che non conoscete, di
  cui non avete il sorgente, come root! Ovviamente pochi intrusori
  rilasciano il codice sorgente al pubblico.

  Per quanto pu essere complesso, prendete sempre i sorgenti di un
  programma dal suo vero sito di distribuzione. Se il programma deve
  essere eseguito da root, controllate i sorgenti o fateli controllare
  da qualcuno di cui vi fidate.



  66..  SSiiccuurreezzzzaa ddeellllee PPaasssswwoorrdd ee CCrriittttooggrraaffiiaa

  Uno dei mezzi di sicurezza pi importanti usati oggi sono le password.
   importante per voi e i vostri utenti avere password sicure e
  difficili da indovinare. Molte delle recenti distribuzioni Linux
  includono programmi passwd che non permettono di inserire password
  troppo facili.  Assicuratevi che il vostro passwd sia aggiornato e
  abbia questa caratteristica.

  Un'approfondita discussione sulla crittografia trascende gli scopi di
  questo documento, ma  necessaria almeno un'introduzione. La
  crittografia  utilissima, forse persino necessaria, in questi giorni.
  Ci sono metodi crittografici di ogni genere, ognuno con la propria
  gamma di caratteristiche.

  La maggior parte degli Unix (e Linux non fa eccezione) usa un
  algoritmo di crittografia a senso unico, chiamato DES (Standard di
  Crittografia di Dati), per crittografare le password. Questa password
  crittata  poi conservata in /etc/passwd o (pi raramente)
  /etc/shadow. Quando tentate di entrare la password che scrivete 
  crittata ancora e confrontata con quella nel file che conserva le
  password. Se coincidono, potete entrare. Anche se il DES  un
  algoritmo di compressione a due vie (potete codificare e decodificare,
  un messaggio, con le giuste chiavi), la variante che Unix usa  a
  senso unico. Questo significa che non dovrebbe essere possibile
  invertire la crittografia per ottenere la password dal contenuto di
  /etc/passwd (o /etc/shadow).

  Attacchi di forza bruta, come "Crack" o "John the Ripper" (vedi la
  Sezione ``'') possono spesso indovinare la password se la vostra non 
  abbastanza casuale. I moduli PAM (vedi sotto) vi permettono di usare
  una diversa routine crittografica per le vostre password (MD5 o
  simili).  Potreste anche usare Crack a vostro vantaggio.  Eseguite
  periodicamente Crack contro il vostro database di password, per
  trovare quelle insicure. Poi contattate l'utente in questione e
  fategli cambiare password.

  Potete visitare
  http://consult.cern.ch/writeup/security/security_3.html per avere
  informazioni su come scegliere una buona password.



  66..11..  PPGGPP ee CCrriittttooggrraaffiiaa aa CChhiiaavvee PPuubbbblliiccaa


  La crittografia a chiave pubblica, come quella usata per PGP, usa una
  chiave per crittare e una per decrittare. Al contrario, la
  crittografia tradizionale usa la stessa chiave per crittare e
  decrittare; questa chiave deve essere conosciuta da entrambe le parti,
  e quindi trasferita in qualche modo da una all'altra.

  Per evitare la necessit di trasmettere in modo sicuro la chiave, la
  crittografia a chiave pubblica usa due chiavi separate: una pubblica e
  una privata. La chiave pubblica di ognuno  disponibile a tutti per
  crittare, mentre ogni persona tiene la sua chiave privata per
  decrittare i messaggi crittati con la sua chiave pubblica.

  Ci sono vantaggi per entrambi i metodi di crittografia, e potete
  leggere di queste differenze nella FAQ della RSA sulla crittografia
  <http://www.rsa.com/rsalabs/newfaq/>, citata alla fine di questa
  sezione.

  PGP (Pretty Good Privacy)  ben supportata da Linux. Le versioni 2.6.2
  e 5.0 funzionano bene. Per una buona introduzione a PGP e a come
  usarlo, date un'occhiata alla FAQ di PGP:
  http://www.pgp.com/service/export/faq/55faq.cgi

  Siate sicuri di usare la versione per il vostro stato. A causa dei
  limiti di esportazione del governo USA,  proibito portare fuori dagli
  USA ogni forma di crittografia elettronica.

  I controlli sull'esportazione dagli USA sono ora gestiti dall'EAR
  (Regole di Amministrazione dell'Esportazione). Non sono pi gestite
  dall'ITAR.


  C' anche una guida passo-passo per configurare PGP su Linux presso
  http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.html.
   scritta per la versione internazionale di PGP, ma  facilmente
  adattabile alla versione USA. Potreste aver bisogno di una patch anche
  per alcune recenti versioni di Linux; la patch  disponibile presso
  ftp://metalab.unc.edu/pub/Linux/apps/crypto.

  C' un progetto che lavora ad una versione libera e open source di
  PGP.  GnuPG  un sostituto completo e libero per PGP. Visto che non
  usa IDEA o RSA pu essere usato senza restrizioni. GnuPG aderisce a
  OpenPGP. Visitate il sito di GNU Privacy Guard per avere pi
  informazioni: http://www.gnupg.org/.

  Ulteriori informazioni sulla crittografia si trovano nella FAQ della
  RSA sulla crittografia, disponibile presso
  http://www.rsa.com/rsalabs/newfaq/.  Qui troverete informazioni su
  termini come "Diffie-Hellman", "crittografia a chiave pubblica",
  "certificati digitali", ecc.



  66..22..  SSSSLL,, SS--HHTTTTPP,, HHTTTTPPSS ee SS//MMIIMMEE

  Spesso gli utenti chiedono informazioni sulle differenze fra i vari
  protocolli di sicurezza e crittografia, e su come usarli. Anche se
  questo non  un documento sulla crittografia,  una buona idea
  spiegare brevemente cosa sono i protocolli e dove trovare altre
  informazioni.

    SSSSLL:: - SSL, o Secure Sockets Layer (Layer di Socket Sicuri),  un
     metodo crittografico sviluppato da Netscape per dare sicurezza su
     Internet. Supporta diversi protocolli crittografici, e fornisce
     autenticazione del client e del server.  SSL opera sul layer di
     trasporto, crea un canale di dati sicuro e crittato e pu quindi
     crittare dati di molti tipi.  Ci si nota soprattutto quando si
     visita un sito sicuro con Communicator ed  la base di tutte le
     comunicazioni sicure con Communicator, oltre che con altro software
     Netscape. Ulteriori informazioni si trovano presso
     http://www.consensus.com/security/ssl-talk-faq.html.  Sono
     disponibili informazioni su altre forme di sicurezza di Netscape e
     un buon punto di partenza su questi protocolli presso
     http://home.netscape.com/info/security-doc.html.


    SS--HHTTTTPP:: - S-HTTP  un altro protocollo che fornisce servizi di
     sicurezza su Internet.  stato progettato per dare privacy,
     autenticazione, integrit e per impedire scambi di persona,
     supportando contemporaneamente meccanismi di controllo con chiavi
     multiple e algoritmi crittografici attraverso la negoziazione di
     opzioni fra le parti coinvolte in ogni transazione. S-HTTP 
     limitato al software specifico che lo implementa, e critta ogni
     messaggio individualmente.  (Dalla FAQ della RSA sulla
     crittografia, pagina 138)


    SS//MMIIMMEE:: - S/MIME, o Secure Multipurpose Internet Mail Extension
     (Estensione Multiuso Sicura per la Posta via Internet),  uno
     standard crittografico usato per crittare posta elettronica e altri
     tipi di messaggi su Internet.  uno standard aperto sviluppato da
     RSA, quindi probabilmente lo vedremo presto su Linux. Altre
     informazioni su S/MIME si trovano presso
     http://home.netscape.com/assist/security/smime/overview.html.



  66..33..  IImmpplleemmeennttaazziioonnii IIPPSSEECC ppeerr LLiinnuuxx

  Oltre a CIPE, e altre forme di crittografia, ci sono anche molte altre
  implementazioni di IPSEC per Linux. IPSEC  un tentativo della IETF di
  creare comunicazioni crittograficamente sicure al livello della rete
  IP e di fornire autenticazione, integrit controllo di accesso e
  privacy.  Informazioni su IPSEC si trovano presso
  http://www.ietf.org/html.charters/ipsec-charter.html. Troverete anche
  link ad altri protocolli, una mailing list di IPSEC e degli archivi.

  L'implementazione Linux di x-kernel, che viene sviluppata
  all'Universit dell'Arizona, usa una struttura basata su oggetti per
  implementare protocolli i rete detti x-kernel, e si trova presso
  http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html.
  Semplificando, l'x-kernel  un metodo di passare messaggi al livello
  del kernel, che rende pi facile un'implementazione.

  Un'altra implementazione libera di IPSEC  la IPSEC FreeS/WAN.  Sul
  loro sito si legge:

       "Questi servizi vi permettono di creare tunnel sicuri
       attraverso reti inaffidabili. Ogni cosa che passa per la
       rete inaffidabile  crittata dalla macchina gateway IPSEC e
       decrittata dal gateway all'altro capo.  Il risultato  una
       Virtual Private Network (Rete Privata Virtuale) o VPN.  una
       rete che rimane privata nonostante includa macchine connesse
       attraverso l'insicura Internet."


   scaricabile presso http://www.xs4all.nl/~freeswan/, ed ha appena
  raggiunto la versione 1.0 al momento della scrittura.

  Come per altre forme di crittografia, non  distribuita col kernel di
  default a causa di restrizioni di esportazione.



  66..44..  sssshh  ((SShheellll SSiiccuurraa)) ee sstteellnneett

  ssh e stelnet sono suite di programmi che vi permettono di fare login
  a sistemi remoti su una connessione crittata.

  openssh  una suite di programmi usata come sostituto sicuro di
  rlogin, rsh e rcp. Usa una crittografia a chiave pubblica per crittare
  le comunicazioni fra due host, oltre che per autenticare gli utenti.
  Pu essere usata per fare login in sicurezza su host remoti o copiare
  dati fra host, evitando intercettazioni (dirottamenti della sessione)
  e il DNS spoofing. Eseguir compressione dei dati sulle connessioni e
  comunicazioni X11 sicure fra host.

  Ci sono diverse implementazioni ssh al momento. Quella commerciale
  originale di Data Fellows si trova nella homepage di ssh presso
  http://www.datafellows.com.

  L'eccellente implementazione Openssh  basata su una delle prime
  versioni del ssh di Data Fellows ed  stata completamente ricostruita
  per non includere alcuna parte proprietaria o brevettata.  libera e
  sotto licenza BSD. Si trova presso: http://www.openssh.com.

  Esiste anche un progetto open source per reimplementare ssh da zero
  chiamato "psst...". Per ulteriori informazioni visitate:
  http://www.net.lut.ac.uk/psst/

  Potete anche usare ssh dalla vostra workstation Windows verso un
  server ssh Linux.  Ci sono diversi client liberi per Windows, incluso
  quello presso http://guardian.htu.tuwien.ac.at/therapy/ssh/ oltre ad
  una versione commerciale di DataFellows, presso
  http://www.datafellows.com.

  SSLeay  una versione libera del protocollo di Netscape Secure Sockets
  Layer, Sviluppato da Eric Young.  Include diverse applicazioni, come
  Secure telnet, un modulo per Apache, diversi database, oltre a molti
  algoritmi inclusi DES, IDEA e Blowfish.

  Usando questa libreria  stato creato un sostituto sicuro per telnet
  che usa la crittografia per la connessione. A differenza di SSH,
  stelnet usa SSL, il protocollo di Netscape. potete trovare Secure
  telnet e Secure FTP iniziando con la FAQ di SSLeay, disponibile presso
  http://www.psy.uq.oz.au/~ftp/Crypto/.

  SRP  un'altra implementazione sicura di telnet/ftp.  Dalla loro
  pagina web:


       "Il progetto SRP sta sviluppando software sicuro per Inter
       net per l'uso libero in tutto il mondo. Iniziando con una
       distribuzione del tutto sicura di telnet e FTP, speriamo di
       soppiantare i deboli sistemi di autenticazione con forti
       sostituti che non sacrifichino la facilit d'uso per la
       sicurezza.  La sicurezza dovrebbe essere lo standard, non
       un'opzione!"


  Per ulteriori informazioni visitate http://srp.stanford.edu/srp.



  66..55..  PPAAMM -- PPlluuggggaabbllee AAuutthheennttiiccaattiioonn MMoodduulleess ((MMoodduullii AAggggiiuunnttiivvii ddii
  AAuutteennttiiccaazziioonnee))

  Le ultime versioni della distribuzione Red Hat Linux sono distribuiti
  con uno schema di autenticazione unificato detto "PAM". PAM permette
  di cambiare i vostri metodi e requisiti di autenticazione al volo, e
  di aggiornare di conseguenza tutti i metodi di autenticazione senza
  ricompilare alcun binario.  La configurazione di PAM trascende gli
  scopi di questo documento, ma siate certi di dare un'occhiata al sito
  web dei PAM per altre informazioni.
  http://www.kernel.org/pub/linux/libs/pam/index.html.

  Solo alcune delle cose che potete fare con PAM:


    Usare crittografia non-DES per le password. (Rendendole pi
     difficili da decodificare con la forza bruta.)

    Impostare limiti alle risorse degli utenti perch non possano
     attuare attacchi di denial-of-service (numero di processi, quantit
     di memoria, ecc.)

    Abilitare le shadow passwords (vedi sotto) al volo

    Permettere a singoli utenti di accedere solo ad ore precise da
     posti precisi

  Nel giro di poche ore dall'installazione e configurazione del vostro
  sistema, potete prevenire molti attacchi. Per esempio, usando PAM per
  impedire l'uso nel sistema di file .rhosts nella home directory degli
  utenti aggiungendo queste linee a /etc/pam.d/rlogin:



                  #
                  # disabilita rsh/rlogin/rexec per gli utenti
                  #
                  login auth required pam_rhosts_auth.so no_rhosts



  66..66..  IInnccaappssuullaammeennttoo CCrriittttooggrraaffiiccoo IIPP ((CCIIPPEE))

  Lo scopo primario di questo software  di fornire un mezzo per avere
  interconnessione sicura (contro l'eavesdropping, inclusi l'analisi del
  traffico e l'inserimento di falsi messaggi)fra le sottoreti attraverso
  una rete a pacchetti inaffidabile come Internet.

  CIPE critta i dati al livello di rete. I pacchetti che viaggiano fra
  gli host di rete sono crittati. Il motore crittografico  affiancato
  al driver che manda e riceve pacchetti.

  In questo si differenzia da SSH, che critta i dati per connessione, a
  livello dei socket. Viene crittata una connessione logica fra
  programmi eseguiti su host differenti.

  CIPE pu essere usato per il tunnelling, al fine di creare una Virtual
  Private Network. La crittografia a basso livello ha il vantaggio di
  poter essere usata fra le due reti connesse con la VPN, senza
  cambiamento per il software applicativo.

  Riassumendo la documentazione CIPE:


       Gli standard IPSEC definiscono un set di protocolli che pos
       sono essere usati (oltre alle altre cose) per costruire VPN
       crittate. Comunque, IPSEC  un protocollo piuttosto pesante
       e complicato da impostare con molte opzioni, le implemen
       tazioni del protocollo completo  sono tuttora usate rara
       mente e alcune caratteristiche (come la gestione delle chi
       avi) non sono ancora del tutto risolte. CIPE ha un approccio
       pi semplice in cui molte cose che possono essere
       parametrizzate (come la scelta del algoritmo crittografico
       effettivamente usato) sono una scelta da fare all'instal
       lazione. Questo limita la flessibilit, ma permette una
       implementazione pi semplice e quindi efficiente e semplice
       in quanto a debug.


  Ulteriori informazioni possono essere trovate presso
  http://www.inka.de/~bigred/devel/cipe.html

  Come per altre forme di crittografia, non  distribuita di default con
  il kernel a causa di restrizioni di esportazione.



  66..77..  KKeerrbbeerrooss

  Kerberos  un sistema di autenticazione sviluppato dal progetto Athena
  al MIT. Quando un utente fa un login, Kerberos lo autentica (usando
  una password), e d all'utente un modo per provare la sua identit: ad
  altri server ed host sparsi per la rete.

  Questa autenticazione  poi usata da programmi come rlogin per lasciar
  entrare l'utente in altri host senza una password (al posto del file
  .rhosts). Questo metodo di autenticazione pu anche essere usato dal
  sistema di posta per garantire che la posta sia consegnata alla
  persona giusta, oltre che per garantire che il mittente sia chi dice
  di essere.

  Kerberos e i programmi con esso distribuiti evitano che gli utenti
  possano ingannare il sistema facendogli credere di essere qualcun
  altro. Purtroppo installare Kerberos  molto intrusivo, visto che
  richiede la modifica o la sostituzione di molti programmi standard.

  Troverete ulteriori informazioni su Kerberos leggendo le FAQ di
  Kerberos; inoltre troverete il codice presso
  http://nii.isi.edu/info/kerberos/.

  [Da: Stein, Jennifer G., Clifford Neuman, e Jeffrey L. Schiller.
  "Kerberos: An Authentication Service for Open Network Systems." USENIX
  Conference Proceedings, Dallas, Texas, Winter 1998.]

  Kerberos non dovrebbe essere il primo passo nel miglioramento della
  sicurezza del vostro host. Porta a molte conseguenze e non  usato
  quanto, per esempio, SSH.



  66..88..  SShhaaddooww PPaasssswwoorrdd..

  Le shadow password sono un mezzo di tenere segrete agli utenti normali
  le password crittate. Le ultime versioni di RedHat e Debian Linux
  usano di default le shadow password, ma in altri sistemi le password
  crittate sono tenute in /etc/passwd dove tutti possono leggerle.
  Quindi chiunque potrebbe eseguire su di loro programmi che tentino di
  indovinare quali sono.  Al contrario, le shadow password sono salvate
  in /etc/shadow che solo gli utenti privilegiati possono leggere. Per
  usare delle shadow password dovete assicurarvi che tutte le
  applicazioni che devono leggere le password siano ricompilate per
  supportarle. PAM (vedi sopra) invece permette di semplicemente
  installare un modulo shadow; non richiede la ricompilazione degli
  eseguibili.  Potete fare riferimento allo Shadow-Password HOWTO per
  ulteriori informazioni se necessario. 
  http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html 
  abbastanza datato al momento, e non serve per le distribuzioni che
  supportino PAM.



  66..99..  ""CCrraacckk"" ee ""JJoohhnn tthhee RRiippppeerr""

  Se per qualche ragione il vostro programma passwd non forza l'uso di
  password difficili da indovinare potreste volere eseguire un programma
  per crackare le password per essere sicuri che le password dei vostri
  utenti siano sicure.

  I programmi per crackare le password funzionano su un semplice
  principio: provano ogni parola nel dizionario, e quindi variazioni di
  quelle parole, crittandole tutte e comparandole alle vostre password
  crittate. Se trovano una corrispondenza sanno di aver trovato quella
  giusta.

  Esistono moltissimi programmi di questo tipo... i due pi degni di
  nota sono "Crack" e "John the Ripper"
  (http://www.false.com/security/john/index.html).  Usano moltissimo la
  cpu, ma, eseguendoli,  capirete se possono trovare le vostre password
  e potrete quindi avvertire gli utenti con password deboli.  Notate che
  un intruso dovrebbe prima riuscire a trovare qualche altro buco per
  leggere il vostro /etc/passwd, ma questi buchi sono pi comuni di
  quanto pensiate

  Visto che la sicurezza  resistente quanto il pi insicuro degli host,
   bene ricordare che se avete macchine Windows sulla vostra rete
  dovreste controllare L0phtCrack, una versione Windows di Crack. 
  disponibile presso http://www.l0pht.com



  66..1100..  CCFFSS -- FFiillee SSyysstteemm CCrriittttooggrraaffiiccoo ee TTCCFFSS -- FFiillee SSyysstteemm CCrriitt
  ttooggrraaffiiccoo TTrraassppaarreennttee

  CFS  un modo per crittare interi alberi di directory e per agli
  utenti di salvare al loro interno file crittografati. Usa un server
  NFS eseguito sulla macchina locale. Gli RPM sono disponibili presso
  http://www.zedz.net/redhat/, e troverete altre informazioni su come
  funziona presso ftp://ftp.research.att.com/dist/mab/.

  TCFS migliora CFS aggiungendo pi integrazione con il file system.
  Ulteriori informazioni sono presso: http://edu-gw.dia.unisa.it/tcfs/.

  Inoltre non serve che sia usato su interi file system. Funziona anche
  su alberi di directory.


  66..1111..  XX1111,, SSVVGGAA ee SSiiccuurreezzzzaa ddeellllaa GGUUII


  66..1111..11..  XX1111

  E' importante rendere sicura la vostra interfaccia grafica per evitare
  che un intrusore ottenga la vostra password mentre la scrivete,
  leggano i documenti o le informazioni che avete sullo schermo o
  persino che usino un buco per avere l'accesso di root. Anche eseguire
  applicazioni X remote su una rete deve essere considerato come un
  pericolo, perch permette a chi intercetta i pacchetti di vedere tutte
  le interazioni fra voi e il sistema remoto.

  X ha una serie di meccanismi di controllo degli accessi. Il pi
  semplice di questi  basato sugli host: usate xhost per specificare
  gli host a cui  permesso l'accesso al vostro display. Questo metodo
  non  affatto sicuro, perch se qualcuno ha accesso alla vostra
  macchina, pu aggiungere la _s_u_a _m_a_c_c_h_i_n_aal vostro xhost ed ottenere
  facile accesso. Inoltre, se dovete dare l'accesso ad una macchina
  inaffidabile, chiunque sia l pu compromettere la vostra GUI.

  Quando usate xdm (X Display Manager) per entrare, avete un metodo di
  accesso molto migliore: MIT-MAGIC-COOKIE-1. Un "cookie" a 128 bit
  viene creato nel vostro file .Xauthority. Se dovete lasciare che una
  macchina remota acceda al vostro display, potete usare il comando
  xauth e le informazioni nel vostro file .Xauthority per dare accesso
  solo a quella connessione. Leggete il Remote-X-Apps mini-howto,
  disponibile presso http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-
  Apps.html.

  Potete anche usare ssh (cfr. ``'', sopra) per permettere connessioni a
  X sicure. Ci ha il vantaggio anche di essere trasparente per l'utente
  finale, e comporta che nessun dato non crittato passa per la rete.

  Controllate la man page Xsecurity per avere pi informazioni sulla
  sicurezza di X. La via sicura  usare xdm per entrare nella console e
  quindi usare ssh per eseguire programmi X su macchine remote.



  66..1111..22..  SSVVGGAA

  I programmi che usano SVGAlib sono in genere SUID-root allo scopo di
  accedere a tutto l'hardware della vostra macchina Linux. Questo li
  rende molto pericolosi. Se si bloccano, in genere avete bisogno di
  riavviare la macchina per riavere una console usabile. Assicuratevi
  che tutti i programmi SVGA che usate siano autentici e siano almeno
  abbastanza affidabili. Ancor meglio, non eseguitene affatto.



  66..1111..33..  GGGGII ((GGeenneerriicc GGrraapphhiiccss IInntteerrffaaccee pprroojjeecctt)) ((PPrrooggeettttoo ddii IInntteerr
  ffaacccciiaa GGrraaffiiccaa GGeenneerriiccaa))

  Il progetto Linux GGI sta tentando di risolvere i diversi problemi
  delle interfacce grafiche di Linux. GGI sposter una piccola parte del
  codice video nel kernel di Linux e quindi controller direttamente
  l'accesso al sistema video. Questo significa che GGI potr
  ripristinare la vostra console in ogni momento. Inoltre permetteranno
  di usare una chiave sicura, per assicurarvi che non c' alcun cavallo
  di Troia che manometta il login della vostra console.
  http://synergy.caltech.edu/~ggi/



  77..  SSiiccuurreezzzzaa nneell KKeerrnneell

  Questa  una descrizione delle opzioni del kernel che riguardano la
  sicurezza, una spiegazione di ci che fanno e di come si usano.

  Visto che il kernel controlla il networking del vostro computer, 
  importante che sia molto sicuro e non venga compromesso. Per evitare
  alcuni dei recenti attacchi via rete dovreste tentare di mantenere
  aggiornato il vostro kernel. Potete trovare nuovi kernel presso
  <ftp://ftp.kernel.org> o dal distributore del vostro sistema.

  Esiste anche un gruppo internazionale che fornisce una singola patch
  crittografica per il kernel principale di Linux. Questa patch fornisce
  il supporto per una serie di sottosistemi crittografici e
  caratteristiche che non possono essere incluse nel kernel principale
  per limiti di esportazione.  Per ulteriori informazioni visitate la
  loro pagina web presso: http://www.kerneli.org



  77..11..  22..00 KKeerrnneell CCoommppiillee OOppttiioonnss

  Per i kernel 2.0.x, si applicano le seguenti opzioni. Dovreste trovare
  le seguenti opzioni durante il processo di configurazione del kernel.
  Molti dei commenti qui vengono da
  ./linux/Documentation/Configure.help, che  lo stesso documento che
  leggete usando l'Help durante la fase make config della compilazione
  del kernel.


    Network Firewalls (CONFIG_FIREWALL)

     Questa opzione dovrebbe essere attivata se volete usare qualche
     tipo di firewall o masquerading sulla vostra macchina. Se sar solo
     un semplice client, potete rispondere no.


    IP: forwarding/gatewaying (CONFIG_IP_FORWARD)

     Se abilitate L'IP forwarding, la macchina, potr assumere le
     funzioni di un router.  Se la vostra macchina  su una rete,
     potreste inoltrare dati da una rete ad un'altra e forse potreste
     pregiudicare un firewall che era stato messo l proprio per
     evitarlo. Chi si connette con un modem pu farne a meno, e gli
     altri dovrebbero riflettere sulle implicazioni di sicurezza. I
     computer che fanno da firewall lo abiliteranno e lo useranno
     insieme con un firewall.

     Potete abilitare dinamicamente l'IP forwarding usando il seguente
     comando:



               root#  echo 1 > /proc/sys/net/ipv4/ip_forward



  e disabilitarlo con il comando:


               root#  echo 0 > /proc/sys/net/ipv4/ip_forward



  Ricordate che i file in /proc sono "virtuali" e le dimensioni mostrate
  dal file potrebbero non riflettere i dati che contiene.


    IP: syn cookies (CONFIG_SYN_COOKIES)

     Un "Attacco SYN"  un attacco di denial of service (DoS), o
     negazione di servizio, che consuma tutte le risorse della vostra
     macchina, obbligandola al riavvio. Non c' una ragione per cui non
     dovreste abilitare questa opzione. Nei kernel 2.2.x questa opzione
     si limita a permettere i syn cookies, ma non li abilita. Per
     abilitarli, dovete digitare:



                       root# echo 1 > /proc/sys/net/ipv4/tcp_syncookies <P>



    IP: Firewalling (CONFIG_IP_FIREWALL)

     Questa opzione  necessaria se volete usare la vostra macchina come
     firewall, usare il masquerading o se volete proteggere il vostro
     sistema da qualcuno che entri attraverso l'interfaccia di
     composizione PPP.



    IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE)

     Questa opzione vi d informazioni (come origine, destinazione,
     porta ecc.) sui pacchetti ricevuti dal firewall.

    IP: Drop source routed frames (CONFIG_IP_NOSR)

     Questa opzione dovrebbe essere abilitata. Questi pacchetti
     contengono l'intero percorso verso o la loro destinazione
     all'interno. Questo significa che i router da cui passa il
     pacchetto non lo controllano, lo inoltrano solamente.  Questo
     potrebbe portare nel vostro sistema dati che potrebbero essere un
     exploit.


    IP: masquerading (CONFIG_IP_MASQUERADE) Se uno dei computer sulla
     rete locale per cui il vostro server Linux fa da firewall volesse
     mandare fuori dei pacchetti, il vostro server potrebbe "recitare la
     parte" di questa macchina, cio inoltrare il traffico verso la
     destinazione richiesta, ma facendolo sembrare proveniente dal
     firewall stesso. Controllate http://www.indyramp.com/masq se volete
     altre informazioni.


    IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) Questa opzione
     aggiunge il masquerading ICMP alla precedente opzione che maschera
     solo il traffico TCP o UDP.


    IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY) Questa
     scelta abilita il vostro firewall Linux a ridirigere in modo
     trasparente tutto il traffico dalla vostra rete destinato ad un
     host remoto verso un server locale, detto "server proxy
     trasparente". Questo fa credere ai computer locali di parlare con
     l'host remoto, mentre sono connessi al proxy locale. Leggete l'IP-
     Masquerading HOWTO e http://www.indyramp.com/masq per ulteriori
     informazioni.


    IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)

     In genere questa opzione  disabilitata ma se state costruendo un
     firewall o un host di masquerading, la dovreste abilitare. Quando
     vengono mandati dei dati fra un host ed un altro, non sempre
     vengono spediti come un singolo pacchetto di dati, ma piuttosto
     vengono scomposti in vari pezzi.  Il problema di questo processo 
     che i numeri delle porte sono scritti solo nel primo frammento.
     Questo significa che qualcuno potrebbe inserire nei rimanenti
     pacchetti informazioni che non dovrebbero esserci. Questa opzione
     protegge da attacchi del genere anche se rivolti contro una
     macchina interna che non abbia ancora questa protezione.


    Packet Signatures (CONFIG_NCPFS_PACKET_SIGNING)

     Questa opzione, disponibile nei kernel 2.2.x, firma i pacchetti NCP
     per avere pi sicurezza. Normalmente potete lasciarla fuori, ma
     rimane nel caso servisse.


    IP: Firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK)

     Questa utile opzione vi permette di analizzare i primi 128 byte dei
     pacchetti con un programma, per determinare se accettare o
     respingere il pacchetto a seconda della sua validit.



  77..22..  22..22 KKeerrnneell CCoommppiillee OOppttiioonnss

  Per i kernel 2.2.x molte opzioni sono rimaste uguali, ma ne sono state
  aggiunte di nuove. Molti dei commenti vengono da
  ./linux/Documentation/Configure.help, Che  lo stesso documento che
  leggete quando usate l'Help nella fase make config della compilazione
  del kernel. Sono segnate qui solo le opzioni nuove. Consultate la
  descrizione del 2.0 per avere una lista di altre opzioni necessarie.
  Il cambiamento pi significativo nei kernel 2.2.x  il codice del
  firewall IP. Ora viene usato il programma ipchains per istallare il
  firewall, invece del ipfwadm usato nei kernel 2.0.


    Socket Filtering (CONFIG_FILTER)

     Per la maggior parte delle persone, dire no  una scelta sicura.
     Questa opzione vi permette di connettere un filtro a qualsiasi
     socket e determinare se i pacchetti debbano essere accettati o
     respinti. A meno che non abbiate una necessit particolare e siate
     capaci di programmare un tale filtro, dovreste dire di no. Notate
     anche che, quando  stato scritto questo documento, erano
     supportati tutti i protocolli tranne il TCP.


    Port Forwarding Il Port Forwarding (Inoltro di una porta) 
     un'aggiunta all'IP Masquerading che permette di inoltrare pacchetti
     dall'esterno all'interno di un firewall su certe porte. Torna utile
     se, per esempio, volete eseguire un web server dietro un firewall e
     lasciare che quel server sia accessibile al mondo esterno. Un
     client esterno manda una richiesta alla porta 80 sul firewall,
     questo inoltra la richiesta al server web che risponde alla
     richiesta attraverso il firewall. Il client penser che sia l'host
     del firewall ad eseguire il web server. Potete usare questa
     caratteristica anche per bilanciare il traffico se avete una serie
     di web server identici dietro al firewall.

     Informazioni su questa opzione si trovano presso:

     http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html (per
     accedere al WWW dovete avere accesso ad una macchina su Internet
     che abbia un programma come lynx o netscape). Per informazioni
     generali leggete:

     ftp://ftp.compsoc.net/users/steve/ipportfw/linux21/


    Socket Filtering (CONFIG_FILTER) Usando questa opzione, certi
     programmi possono porre un filtro ad un socket qualsiasi e quindi
     dire al kernel di bloccare o far passare certi dati attraverso quel
     socket. Il filtraggio dei socket per ora funziona su tutti i tipi
     di socket, TCP escluso. Leggete il file
     ./linux/Documentation/networking/filter.txt per ulteriori
     informazioni.


    IP: Masquerading Il masquerading del kernel 2.2  stato migliorato.
     Fornisce supporto addizionale per special protocolli di
     masquerading ecc. Assicuratevi di leggere l'IP Chains HOWTO per
     ulteriori informazioni.



  77..33..  DDeevviiccee nneell KKeerrnneell

  Nel kernel ci sono alcuni device a blocchi e a caratteri che vi
  aiuteranno con la sicurezza.

  I due device /dev/random e /dev/urandom sono forniti dal kernel per
  avere sempre a disposizione dati casuali.

  Sia /dev/random che /dev/urandom dovrebbero essere abbastanza sicuri
  da essere usati per generare chiavi PGP, autenticazioni ssh ed altre
  applicazioni in cui servono numeri casuali sicuri. Un attaccante non
  dovrebbe essere capace di predire il numero seguente, data una
  qualsiasi sequenza di numeri da queste sorgenti.  stato fatto un
  grande sforzo perch i numeri ottenuti da questi device siano casuali
  in ogni senso della parola.

  L'unica differenza fra i due device  che /dev/random finisce i byte
  casuali e vi fa aspettare finch non ce ne sono di nuovi. Notate che
  su alcuni sistemi potrebbe bloccarsi per molto tempo in attesa che
  nuova entropia sia generata dagli utenti. Quindi riflettete prima di
  usare /dev/random. (Forse la miglior cosa da fare  usarlo quando
  generate dovete generare codice importante: dite agli utenti di
  scrivere molto sulle tastiere fino a quando dite "Ok, basta".)

  /dev/random  entropia di qualit, generata dalla misura dei tempi fra
  gli interrupt ecc. Si blocca finch non ha abbastanza bit casuali di
  dati.

  /dev/urandom  simile, ma quando la riserva di entropia sta finendo
  fornisce una replica crittograficamente forte di ci che rimane.  Non
   altrettanto sicuro, ma basta per la maggior parte delle
  applicazioni.

  Potete leggere da questi device con qualcosa del genere:



               root#  head -c 6 /dev/urandom | mimencode



  Questo comando visualizza otto caratteri casuali sulla console, adatti
  per la generazione di password. Potete trovare mimencode nel pacchetto
  metamail.

  Leggete /usr/src/linux/drivers/char/random.c per la descrizione
  dell'algoritmo.

  Grazie a Theodore Y. Ts'o, Jon Lewis, e altri sviluppatori del kernel
  per avere aiutato me (Dave) in questo.



  88..  SSiiccuurreezzzzaa ddii RReettee

  La sicurezza di rete diventa sempre pi importante perch il tempo di
  connessione ad Internet  sempre maggiore. Compromettere la sicurezza
  di rete  spesso molto pi facile che compromettere la sicurezza
  fisica o locale ed  anche molto pi comune.

  Esiste una serie di buoni strumenti per aiutare nella sicurezza di
  rete e molti nuovi vengono inclusi nelle distribuzioni Linux.



  88..11..  SSnniiffffeerr ddii PPaacccchheettttii

  Uno dei modi pi comuni con cui gli intrusori entrano in molti sistemi
  della vostra rete  l'uso di uno sniffer di pacchetti su un host gi
  compromesso. Questo "sniffer" aspetta sulla porta Ethernet dati come
  passwd, login e su nel flusso dei dati e quindi registra il traffico
  successivo. In questo modo chi lo usa ottiene le password di sistemi a
  cui non hanno neppure tentato un attacco. Le password in chiaro sono
  molto vulnerabili a questo tipo di attacco.

  Esempio: L'host A  stato compromesso. L'attaccante installa uno
  sniffer.  Lo sniffer intercetta l'amministratore mentre fa un login
  dall'host B al C.  Ottiene la password personale dell'amministratore.
  Poi, l'amministratore usa su per risolvere un problema. Ora si conosce
  anche la password di root per l'host B. Pi tardi l'amministratore
  lascia che dal suo acconto qualcuno usi telnet per connettersi
  all'host Z. Ora l'attaccante ha il login e la password per l'host Z.

  Oggi l'attaccante non ha neanche pi bisogno di compromettere un
  sistema per usare questa tecnica: potrebbe semplicemente portare un
  portatile o un PC nell'edificio e connettersi alla vostra rete.

  Usare ssh o altri metodi di crittografia delle password blocca questo
  attacco. Anche cose come APOP per gli account POP lo impediscono (I
  normali login POP sono molto vulnerabili a questo attacco, come ogni
  cosa che mandi password in chiaro su una rete).



  88..22..  SSeerrvviizzii ddii ssiisstteemmaa ee ttccpp__wwrraappppeerrss

  Prima di mettere un sistema Linux su QUALSIASI rete la prima cosa da
  sapere  quali servizi volete offrire. I servizi che non volete devono
  essere disabilitati, cos da avere una cosa in meno di cui
  preoccuparsi e un possibile buco in meno per un intruso.

  Ci sono molti modi per disabilitare i servizi sotto Linux. Potete
  leggere il vostro /etc/inetd.conf e vedere quali servizi vengono
  offerti dal vostro inetd. Potete disabilitare tutti quelli che non vi
  servono commentandoli (# all'inizio della linea), e quindi mandando al
  processo inetd un SIGHUP.

  Potreste rimuovere (o commentare) servizi nel vostro /etc/services.
  Questo impedir l'uso del servizio anche da client locali (cio se
  rimuovete ftp e provate a connettervi con ftp ad un host remoto da
  quella macchina otterrete solo un messaggio di "servizio
  sconosciuto").  In genere il gioco non vale la candela, visto che non
  d ulteriori garanzie. Se qualcuno volesse usare ftp anche se l'avete
  commentato, potrebbe farsi un proprio client che usi la porta FTP e
  funzionerebbe benone.

  Alcuni servizi che dovreste lasciare disponibili sono:


    ftp

    telnet (o ssh)

    mail, come pop-3 o imap

    identd

  Se sapete che non vi serve un pacchetto potete anche cancellarlo del
  tutto.  rpm -e _n_o_m_e___p_a_c_c_h_e_t_t_o nella distribuzione RedHat cancella un
  pacchetto intero. Nella Debian dpkg --remove fa lo stesso.

  Inoltre, dovreste davvero evitare che le utility rsh/rlogin/rcp,
  inclusi login (usato da rlogin), shell (usato da rcp) ed exec (usato
  da rsh) siano eseguite da /etc/inetd.conf.  Questi protocolli sono
  molto insicuri e sono stati l'origine di exploit in passato.

  Dovreste controllare /etc/rc.d/rc[0-9].d (sulla Red Hat;
  /etc/rc[0-9].d sulla Debian), e vedere se vengono avviati server che
  non sono necessari. I file in quelle directory sono link simbolici ai
  file nella directory /etc/rc.d/init.d (sulla Red Hat; /etc/init.d
  sulla Debian). Rinominare i file nella directory init.d blocca tutti i
  link simbolici che puntano a quel file. Se volete solo disabilitare un
  servizio per un particolare runlevel, rinominate il giusto link
  simbolico sostituendo la S maiuscola con una minuscola, cos:
              root#  cd /etc/rc6.d
              root#  mv S45dhcpd s45dhcpd



  Se avete file rc rc in stile BSD, controllate in /etc/rc* se ci sono
  programmi che non servono.

  Con molte distribuzioni Linux viene distribuito un tcp_wrapper che
  "incapsula" tutti i vostri servizi TCP. Un tcp_wrapper(tcpd) viene
  invocato da inetd al posto del vero server. Quindi tcpd controlla
  l'host che sta richiedendo il servizio ed esegue il server o nega
  l'accesso all'host.tcpd permette di bloccare l'accesso ai vostri
  servizi TCP.  dovreste creare un file /etc/hosts.allow e aggiungervi
  solo gli host che devono avere accesso ai servizi della macchina.

  Se avete una connessione telefonica casalinga dovreste negarli TUTTI.
  Inoltre tcpd segna nei log i tentativi falliti di accedere ai servizi,
  per avvertirvi se siete sotto attacco. Se aggiungete nuovi servizi
  dovreste configurarli per usare i tcp_wrapper se usano TCP. Per
  esempio, un normale utente telefonico pu impedire ad altri di
  connettersi alla propria macchina, conservando l'accesso alla posta e
  ad Internet. Per farlo, potreste aggiungere le linee seguenti al
  vostro /etc/hosts.allow:

  ALL: 127.

  E ovviamente /etc/hosts.deny dovrebbe contenere:

  ALL: ALL

  che bloccher connessioni esterne alla macchina, ma permetter la
  connessione a server su Internet.

  Ricordatevi che i tcp_wrapper proteggono solo i servizi eseguiti da
  inetd, e pochi altri. Ci potrebbero benissimo essere altri servizi in
  esecuzione sulla vostra macchina. Potete usare netstat -ta per avere
  una lista di tutti i servizi offerti dalla vostra macchina.



  88..33..  VVeerriiffiiccaarree ii vvoossttrrii DDNNSS

  Tenere aggiornate le informazioni dei DNS su tutti gli host della
  vostra rete aiuta ad aumentare la sicurezza. Se un host non
  autorizzato si connette alla rete, potete riconoscerlo dalla sua
  mancata presenza sul DNS. Molti servizi possono essere configurati per
  negare l'accesso ad host che non sono elencati dal DNS.



  88..44..  iiddeennttdd

  identd  un piccolo programma che in genere  eseguito dal vostro
  inetd. Tiene nota di quale utente sta usando quale servizio e quindi
  fa rapporto a chi lo richiede.

  Molte persone non capiscono l'utilit di identd e quindi lo
  disabilitano o bloccano tutte le richieste provenienti dall'esterno.
  identd non  al servizio di siti remoti. Non c' modo di saper se i
  dati che ricevete da un identd remoto siano corretti o no. Non c'
  autenticazione nelle richieste ad identd.

  Perch eseguirlo allora? Perch aiuta _v_o_i, ed  un'informazione in pi
  quando indagate. Se il vostro identd  integro, sapete che rivela ad
  altri l'user-name o l'uid di chi usa servizi TCP. Se l'amministratore
  di una rete remota viene a dire che un certo utente ha provato ad
  intromettersi nella sua rete, potrete facilmente prendere
  provvedimenti contro l'utente. Se non aveste eseguito identd, avreste
  dovuto leggere log su log, capire chi era nel sistema alla tal ora e
  in generale sprecare molto tempo a trovare l'utente.

  L'identd distribuito con molte distribuzioni si pu configurare pi di
  quanto molti pensino. Potete disabilitarlo per utenti specifici, (con
  un file .noident), potete avere i log di tutte le richieste a identd
  ( raccomandato), potete persino far s che identd risponda con l'uid
  di un utente o persino con NO-USER.



  88..55..  SSAATTAANN,, IISSSS,, ee aallttrrii ssccaannnneerr ddii rreettee

  C' una serie di differenti pacchetti software che fanno scansioni di
  porte e servizi su macchine o reti intere. SATAN, ISS, SAINT e Nessus
  sono alcuni dei pi conosciuti. Questo software si connette con la
  macchina bersaglio (o tutte le macchine bersaglio su una rete) su
  tutte le porte possibili e tentano di capire che servizio  attivo.
  Basandosi su queste informazioni si capisce se la macchina 
  vulnerabile ad un particolare exploit.

  SATAN (Security Administrator's Tool for Analyzing Networks)  un port
  scanner con un'interfaccia web. Pu essere configurato per eseguire
  controlli leggeri, medi o pesanti su una macchina o una rete.  una
  buona idea usare SATAN sulla vostra rete e sistemare i problemi che
  trova.  Assicuratevi di avere la copia di SATAN da metalab
  <http://metalab.unc.edu/pub/packages/security/Satan-for-Linux/> o da
  un sito FTP o web affidabile.  stata distribuita in rete una copia
  trojan di SATAN. http://www.trouble.org/~zen/satan/satan.html. Notate
  che SATAN non  stato aggiornato da molto tempo, ed altri strumenti
  potrebbero avere risultati migliori.

  ISS (Internet Security Scanner)  un altro port scanner.  pi veloce
  di Satan, quindi potrebbe essere migliore per grandi reti. Comunque
  Satan in genere fornisce pi informazioni.

  Abacus  una suite di strumenti che fornisce sicurezza agli host e
  rilevamento delle intrusioni. Leggete la home page sul web per
  ulteriori informazioni. http://www.psionic.com/abacus/

  SAINT  una versione aggiornata di SATAN.  basata sul web ed ha molti
  pi test aggiornati di SATAN. Potete saperne di pi presso:
  http://www.wwdsi.com/~saint

  Nessus  uno scanner di sicurezza libero. Ha una interfaccia grafica
  GTK per semplicit d'uso. Inoltre  basato su una struttura a plug-in
  per aggiungere nuovi test. Per ulteriori informazioni, date
  un'occhiata a: http://www.nessus.org


  88..55..11..  RRiilleevvaarree SSccaannssiioonnii ddeellllee PPoorrttee

  Esistono strumenti progettati per avvisarvi di scansioni da parte di
  SATAN, ISS ed altri software di scansione. Comunque se usate molto i
  tcp_wrapper e leggete spesso i vostri log dovreste notare certe
  scansioni. Anche al settaggio inferiore SATAN lascia tracce nei log di
  un sistema RedHat "di serie".

  Esistono anche port scanner "silenziosi". Un pacchetto con il bit TCP
  ACK attivo (come si fa per le connessioni stabilite) probabilmente
  passerebbe un firewall che filtri i pacchetti. Il pacchetto RST in
  risposta da una porta che ___n_o_n _a_v_e_v_a _c_o_m_u_n_i_c_a_z_i_o_n_i _i_n _c_o_r_s_o__ viene
  preso come una prova di vita su quella porta. Non penso che i
  tcp_wrapper lo rilevino.



  88..66..  sseennddmmaaiill ,, qqmmaaiill  ee MMTTAA ((AAggeennttii ddii TTrraassppoorrttoo ddii PPoossttaa))

  Uno dei servizi pi importanti che potete fornire  il server di
  posta. Sfortunatamente,  anche uno dei pi vulnerabili agli attacchi,
  a causa del numero di compiti che esegue e dei privilegi che di solito
  richiede.

  Se state usando sendmail  molto importante tenerlo
  aggiornato.sendmail ha una lunga, lunga storia di exploit di
  sicurezza.  Assicuratevi di eseguire sempre l'ultima versione da:
  http://www.sendmail.org.

  Ricordatevi che sendmail non deve per forza essere in esecuzione per
  spedire posta. Se siete un utente casalingo potete disabilitare del
  tutto sendmail e usare semplicemente il vostro client di posta per
  spedire. Potreste anche togliere l'opzione "-bd" da file di avvio di
  sendmail, disabilitando l'arrivo di richieste di posta. In altre
  parole, potete eseguire sendmail dal vostro script di avvio usando il
  seguente comando:


                       # /usr/lib/sendmail -q15m



  In questo modo sendmail riprocesser ogni 15 minuti i messaggi nella
  coda di stampa che non erano stati precedentemente consegnati.

  Molti amministratori non usano sendmail, e al suo posto scelgono uno
  degli altri MTA. Potreste passare a qmail.qmail  stato progettato da
  zero tenendo a mente la sicurezza.  veloce, stabile e sicuro. Qmail
  si trova presso http://www.qmail.org

  In diretta competizione con qmail si pone "postfix", scritto da Wietse
  Venema, l'autore di tcp_wrapper ed altri strumenti di sicurezza.
  Precedentemente intitolato vmailer, e sponsorizzato da IBM, anche
  questo  un MTA fatto da zero per la sicurezza. Troverete altre
  informazioni su postfix presso http://www.postfix.org



  88..77..  AAttttaacccchhii ddii DDeenniiaall ooff SSeerrvviiccee ((NNeeggaazziioonnee ddii uunn SSeerrvviizziioo))

  Un "Denial of Service" (DoS)  un attacco con cui un aggressore tenta
  di rendere una risorsa troppo occupata per rispondere a richieste
  legittime o di negare a utenti legittimi l'accesso ad una macchina.

  Questi attacchi sono molto aumentati negli ultimi anni. Sotto sono
  elencati alcuni dei pi comuni o recenti. Notate per che ne nascono
  in continuazione, quindi questi sono solo esempi. Leggete le liste di
  sicurezza di Linux e le liste di bugtraq per informazioni aggiornate.


    SSYYNN FFllooooddiinngg - Il SYN flooding ("Inondazione di SYN")  un attacco
     DoS di rete. Sfrutta un buco nel modo in cui sono create le
     connessioni TCP. Gli ultimi kernel di Linux (2.0.30 e seguenti)
     hanno diverse opzioni configurabili per evitare che attacchi del
     genere neghino l'accesso alle vostre macchine. Vedi ``Sicurezza del
     Kernel'' a proposito delle opzioni adeguate.

    IIll BBuugg ""FF0000FF"" nneeii PPeennttiiuumm - Si  scoperto recentemente che una
     serie di codici assembly mandati ad un Pentium originale Intel
     riavvierebbero la macchina. Questo bug affligge tutte le macchine
     Pentium (non i cloni, i Pentium Pro o i PII), a prescindere dal
     sistema operativo. I kernel Linux 2.0.32 e successivi contengono un
     rimedio che impedisce alla macchina di bloccarsi. Il kernel 2.0.33
     ha una versione migliore rispetto al 2.0.32. Se usate un Pentium,
     aggiornate subito il kernel!


    PPiinngg FFllooooddiinngg - Il ping flooding ("Inondazione di ping")  un
     attacco DoS basato sulla forza bruta. L'aggressore manda
     un'inondazione di pacchetti ICMP alla vostra macchina. Se lo fa da
     un host con un'ampiezza di banda maggiore della vostra, la vostra
     macchina non potr mandare niente sulla rete. Un variazione di
     questo attacco, chiamato "smurfing", manda ad un host pacchetti
     ICMP con il _v_o_s_t_r_o IP, permettendo loro di attaccarvi in modo quasi
     anonimo. Potete trovare altre informazioni circa lo "smurf" presso
     http://www.quadrunner.com/~chuegen/smurf.txt

     Se venite attaccati in questo modo, usate uno strumento come
     tcpdump per determinare da dove provengono i pacchetti (o da dove
     sembrano venire), quindi contattate il vostro provider con queste
     informazioni. I ping flood possono essere fermati facilmente
     all'altezza del router o usando un firewall.


    PPiinngg ddeellllaa MMoorrttee - Il Ping della Morte manda pacchetti ICMP ECHO
     REQUEST che sono troppo grandi per entrare nelle strutture dati del
     kernel che li dovrebbero contenere. Poich mandare un solo grande
     ping (65,510 byte) causa il blocco o il crash di molti sistemi,
     questo problema fu subito soprannominato "Ping della Morte". Il
     fatto  stato risolto da tempo, e non  pi preoccupante.


    TTeeaarrddrroopp // NNeeww TTeeaarr - Uno dei pi recenti exploit coinvolge un bug
     presente nel codice di frammentazione IP sulle piattaforme Linux e
     Windows.  stato risolto nel kernel 2.0.33 e non richiede la
     selezione di alcuna opzione di compilazione. Linux non sembra
     essere vulnerabile al nuovo exploit "newtear".


     Potete trovare il codice della maggior parte degli exploit e una
     pi approfondita descrizione del loro funzionamento presso
     http://www.rootshell.com usando il loro motore di ricerca.



  88..88..  SSiiccuurreezzzzaa ddeell NNFFSS ((NNeettwwoorrkk FFiillee SSyysstteemm))..

  NFS  un protocollo di condivisione di file molto diffuso. Permette a
  server che eseguano nfsd e mountd di "esportare" interi filesystem
  verso altre macchine usando il supporto per il filesystem NFS
  compilato nel kernel (o qualche altro client se non sono macchine
  Linux).  mountd tiene traccia dei filesystem montati in /etc/mtab, e
  li mostra con showmount.

  Molti siti usano NFS per fornire le home directory agli utenti di modo
  che abbiano i loro file da qualunque macchina si colleghino.

   possibile avere un po' di sicurezza quando si esportano filesystem.
  Potete far mappare a nfsd l'utente root remoto (uid=0) sull'utente
  nobody, negando l'accesso totale ai filesystem esportati. Comunque,
  visto che i singoli utenti hanno accesso ai propri file (o almeno a
  quelli con la stessa uid), l'utente root remoto pu fare un login o su
  con il loro account ed avere accesso totale ai loro file. Questo 
  solo un piccolo ostacolo per un aggressore che ha i privilegi per
  montare i filesystem remoti.

  Se dovete usare NFS, assicuratevi di esportare solo verso quelle
  macchine che lo richiedono. Non esportate mai la vostra intera
  directory root; esportate solo il necessario.

  Leggete il NFS HOWTO per ulteriori informazioni su  NFS, disponibile
  presso http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html



  88..99..  NNIISS ((NNeettwwoorrkk IInnffoorrmmaattiioonn SSeerrvviiccee)) ((ggii YYPP))..

  Network Information service (servizio di informazione di rete)  un
  modo di distribuire informazioni ad un gruppo di macchine. Il master
  NIS tiene le tabelle di informazioni e le converte in file mappa di
  NIS. Queste mappe vengono distribuite nella rete, permettendo ai
  client di ottenere informazioni di login, password, home directory e
  shell (tutte le informazioni che in genere stanno in un normale
  /etc/passwd). Questo permette agli utenti di cambiare la loro password
  una volta per tutte le macchine sul dominio NIS.

  NIS non  affatto sicuro. Non ha mai voluto esserlo. Doveva solo
  essere comodo ed utile. Chiunque possa indovinare il nome del vostro
  dominio NIS (ovunque sia nella rete) pu ottenere una copia del file
  delle password ed usare Crack o John the Ripper contro le password. Se
  dovete usare NIS siate consapevoli dei pericoli.

  Esiste un sostituto molto sicuro di NIS, chiamato NIS+. Controllate il
  NIS HOWTO: http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html



  88..1100..  FFiirreewwaallll

  I Firewall sono un mezzo per controllare quali informazioni vengono
  lasciate entrare ed uscire dalla vostra rete locale. Tipicamente
  l'host firewall  connesso ad Internet e alla LAN locale, ed  l'unico
  accesso ad Internet dalla LAN; in questo modo controlla cosa entra ed
  esce.

  Ci sono molti tipi di firewall e metodi di impostarli. Le macchine
  Linux sono ottimi firewall. Il codice del firewall pu essere
  compilato all'interno dei kernel 2.0 e superiori. Gli strumenti utente
  ipfwadm per i kernel 2.0 e ipchains per i kernel 2.2, vi permettono di
  cambiare al volo i tipi di traffico di rete permessi.

  I firewall sono un'utilissima ed importante tecnica per la sicurezza
  di rete.  Comunque, non pensate mai che solo perch avete un firewall
  non sia necessaria la sicurezza delle macchine che copre. Sarebbe un
  errore fatale.  Controllate l'ottimo Firewall-HOWTO presso l'archivio
  metalab per avere pi informazioni sui firewall e Linux.
  http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html

  Si trovano altre informazioni anche nell'IP-Masquerade mini-howto:
  http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html

  Altre informazioni su ipfwadm (lo strumento per cambiare impostazioni
  al firewall) si trovano presso: http://www.xos.nl/linux/ipfwadm/

  Se non avete esperienza con i firewall e volete metterne su uno per un
  piano di sicurezza che non sia superficiale, leggere "Firewalls" di
  O'Reilly and Associates o qualche altro documento online sui firewall
   obbligatorio.  Troverete altre informazioni su http://www.ora.com.
  Il National Institute of Standards and Technology (Istituto Nazionale
  degli Standard e della Tecnologia) ha scritto un eccellente documento
  sui firewall. Anche se datato 1995,  sempre abbastanza buono.  Potete
  trovarlo anche http://csrc.nist.gov/nistpubs/800-10/main.html.


    Il progetto Freefire -- una lista di strumenti firewall liberi,
     disponibili presso http://sites.inka.de/sites/lina/freefire-
     l/index_en.html

    SunWorld Firewall Design -- scritto dagli autori del libro della
     O'Reilly, d una introduzione di base ai differenti tipi di
     firewall.   disponibile presso
     http://www.sunworld.com/swol-01-1996/swol-01-firewall.html

    Mason - il costruttore automatico di firewall per Linux.  uno
     script di firewall che impara cosa vi serve mentre lo fate. Altre
     informazioni presso: http://www.pobox.com/~wstearns/mason/



  88..1111..  IIPP CChhaaiinnss -- FFiirreewwaallll ppeerr LLiinnuuxx KKeerrnneell 22..22..xx

  IP Firewalling Chains  un aggiornamento dal codice di firewalling del
  kernel 2.0 al 2.2. Ha molte pi caratteristiche delle versioni
  precedenti, inclusi:

    Manipolazioni dei pacchetti pi flessibili.

    Accounting pi complesso.

    Sono istantanei i semplici cambiamenti di impostazioni.

    I frammenti possono essere esplicitamente bloccati, rifiutati ecc.

    I pacchetti sospetti vengono segnati in un log.

    Pu gestire protocolli non ICMP/TCP/UDP.

  Se state usando ipfwadm con il vostro kernel 2.0, sono disponibili
  degli script per convertire il formato di ipfwadm nel formato che usa
  ipchains.

  Assicuratevi di leggere l'IP Chains HOWTO per altre informazioni. 
  disponibile presso http://www.rustcorp.com/linux/ipchains/HOWTO.html



  88..1122..  VVPPNN -- VViirrttuuaall PPrriivvaattee NNeettwwoorrkkss ((RReettii PPrriivvaattee VViirrttuuaallii))

  Le VPN sono un modo per stabilire una rete "virtuale" su una rete
  esistente.  Questa rete virtuale  spesso crittata e passa il traffico
  solo a e da entit conosciute. Le VPN sono spesso usate per connettere
  attraverso Internet qualcuno che lavora a casa a un rete interna di
  una compagnia.

  Se eseguite un firewall/masquerading con Linux dovete passare
  pacchetti di MS PPTP (un prodotto VPN punto-a-punto della Microsoft),
  c' una patch per il kernel di Linux fatta apposta. Leggete: ip-masq-
  vpn.

  Esistono diverse soluzioni VPN per Linux:

    vpnd. Leggete http://sunsite.auc.dk/vpnd/.

    Free S/Wan, disponibile presso http://www.xs4all.nl/~freeswan/

    ssh pu essere usato per costruire una VPN. Leggete il VPN mini-
     howto per altre informazioni.

    vps (virtual private server) presso http://www.strongcrypto.com.

  Controllate anche la sezione su IPSEC per altre bibliografie e
  informazioni.



  99..  PPrreeppaarraazziioonnee ddeellllaa SSiiccuurreezzzzaa ((pprriimmaa ddii eennttrraarree iinn rreettee))

  Bene: avete controllato il sistema,  sicuro per quanto possibile e
  siete pronti a metterlo in rete. Ci sono alcune cose che dovreste fare
  ora per prepararvi ad un'intrusione, in modo da poter mettere fuori
  gioco velocemente l'aggressore e tornare alla piena funzionalit.


  99..11..  FFaattee uunn bbaacckkuupp ccoommpplleettoo ddeellllaa mmaacccchhiinnaa..

  La discussione dei metodi di backup va oltre gli scopi di questo
  documento, ma vanno spese alcune parole su backup e sicurezza:

  Se avete meno di 650mb di dati da salvare su una partizione, un CD-R 
  un'ottima strada (perch difficile da manomettere e molto durevole).
  Nastri e altri media riscrivibili dovrebbero essere protetti dalla
  scrittura non appena il backup  completo e quindi verificati per
  evitare la manomissione. Assicuratevi di lasciare i backup in un'area
  sicura e off-line.  Un buon backup vi dar un buon punto di
  riferimento da cui ripristinare il sistema.



  99..22..  SScceegglliieerree uunnaa BBuuoonnaa TTaabbeellllaa ddii BBaacckkuupp

  Un ciclo di sei nastri  facile da mantenere. Prevede quattro nastri
  per la settimana, uno per i Venerd pari e uno per quelli dispari.
  Eseguite un backup incrementale ogni giorno, e un backup completo sul
  nastro del Venerd. Potreste fare un backup completo anche per dei
  particolari cambiamenti importanti.



  99..33..  FFaattee uunn BBaacckkuupp ddeeii VVoossttrrii DDaattaabbaassee ddii RRPPMM oo DDeebbiiaann

  Nel caso di un'intrusione, potete usare il vostro database di
  pacchetti come usereste tripwire, ma solo se siete sicuri che non 
  stato modificato. Dovreste copiare il database RPM in un floppy e
  tenerlo sempre off-line. Probabilmente la Debian ha qualcosa di
  simile.

  I file /var/lib/rpm/fileindex.rpm e /var/lib/rpm/packages.rpm
  probabilmente non entreranno in un solo floppy, ma se compressi
  dovrebbero entrare in un floppy ciascuno.

  Ora, se il vostro sistema viene compromesso potete usare il comando:



                               root#  rpm -Va



  per verificare ogni file sul sistema. Leggete la pagina man di rpm,
  perch esistono alcune opzioni che possono essere usate per avere un
  output pi: conciso. Ricordate che dovete essere sicuri che anche
  l'eseguibile di RPM non sia stato compromesso.

  Questo significa che ogni volta che viene aggiunto al sistema un RPM,
  il database dovr essere ri-archiviato.  voi decidere i vantaggi
  contro gli svantaggi.



  99..44..  TTeenneettee NNoottaa ddeeii DDaattii ddeeggllii AAccccoouunntt

   molto importante che le informazioni che vengono da syslog non siano
  modificate. Rendendo leggibili e scrivibili file in var/log solo da
  poche persone  un buon inizio.

  Assicuratevi di tenere d'occhio cosa viene scritto l soprattutto in
  auth. La presenza di molti login falliti, per esempio, indica una
  tentata intrusione.

  Dove cercare i log dipende dalla vostra distribuzione. In un sistema
  Linux conforme al "Linux Filesystem Standard", come RedHat, cercherete
  in /var/log e controllerete messages, mail.log, ed altri.

  Potete capire dove il sistema tiene i log leggendo il file
  /etc/syslog.conf.  Questo  il file che dice a syslogd (il demone dei
  log di sistema) dove tenere i messaggi dei log.

  Potreste anche voler configurare lo script o il demone che alterna i
  log per fargli tenere  a lungo i log per avere tutto il tempo di
  esaminarli. Date un'occhiata al pacchetto logrotate su distribuzioni
  RedHat recenti.  Altre distribuzioni hanno probabilmente un processo
  simile.

  Se i vostri log sono stati manomessi, cercate di capire quando 
  iniziata la manomissione e cosa sembra cambiato. Ci sono lunghi
  periodi di tempo che non hanno log? Controllare i nastri di backup in
  cerca di log intatti  un buon inizio.

  Gli intrusi in genere modificano i log per coprire le loro tracce, ma
  dovrebbero comunque essere controllati. Potreste notare l'intruso che
  cerca un accesso o sfrutta un programma per ottenere l'account di
  root. Potreste vedere voci nei log che l'intruso non ha avuto il tempo
  di cambiare.

  Dovreste anche assicurarvi di separare auth dagli altri log, inclusi i
  tentativi di cambiare utente con su, i tentativi di login, e altre
  informazioni sugli account.

  Se possibile, configurate syslog per mandare una copia dei log ad un
  sistema sicuro. Questo eviter che un intruso cancelli le sue tracce
  insieme ai tentativi di login/su/ftp/ecc. Leggete la pagina man di
  syslog.conf e cercate l'opzione @.

  Ci sono diversi altri programmi syslogd pi avanzati. Leggete
  http://www.core-sdi.com/ssyslog/ a proposito di Secure Syslog.  Secure
  Syslog permette di crittare le voci del syslog per essere sicuri che
  nessuno le manometta.

  Un altro syslogd con altre caratteristiche  syslog-ng. Vi permette
  molta flessibilit e critta i flussi remoti di syslog per evitare la
  manomissione.

  In fine, i log sono inutili se nessuno li controlla. Prendetevi del
  tempo ogni tanto per leggere i vostri log e farvi un'idea di come
  devono essere in normali condizioni. Saperlo fa risaltare molte cose
  strane.
  99..55..  AApppplliiccaattee TTuuttttii ii NNuuoovvii AAggggiioorrnnaammeennttii ddii SSiisstteemmaa..

  Molti utenti Linux istallano da un CD-ROM. A causa della natura
  repentina degli aggiornamenti di sicurezza, vengono rilasciati
  continuamente nuovi programmi.  Prima di connettere la vostra macchina
  alla rete  bene controllare sul sito ftp della vostra distribuzione e
  prendere tutti i pacchetti aggiornati da quando avete installato il
  CD-ROM. Spesso questi pacchetti contengono molte soluzioni di
  sicurezza, quindi  una buona idea installarli.



  1100..  CCoossaa FFaarree DDuurraannttee ee DDooppoo uunn''IInnttrruussiioonnee

  Avete seguito alcuni di questi consigli e avete rilevato
  un'intrusione?  La prima cosa da fare  restare calmi. Azioni
  affrettate possono causare pi danni dell'aggressore stesso.



  1100..11..  CCoommpprroommiissssiioonnee ddeellllaa SSiiccuurreezzzzaa iinn CCoorrssoo..

  Rilevare una compromissione in corso  una situazione molto tesa. Come
  reagite avr grandi conseguenze.

  Se la compromissione  fisica probabilmente avete colto qualcuno che
  si  intrufolato in casa vostra, in ufficio o nel laboratorio.
  Dovreste avvisare le autorit competenti. In un laboratorio potreste
  aver visto qualcuno che provava ad aprire un case o riavviare una
  macchina.  A seconda della vostra autorit e delle procedure, potreste
  farli desistere o chiamare direttamente la sicurezza.

  Se avete preso un utente locale che tentava di compromettere la
  sicurezza la prima cosa da fare  confermare che sia davvero chi
  credete. Controllate il posto da cui si connettono.  da dove si
  connettono normalmente? No?  Allora usate un mezzo di comunicazione
  non elettronico. Per esempio, chiamatelo al telefono o andate nel suo
  ufficio/appartamento e parlateci. Se ammette il fatto, chiedetegli
  spiegazioni su quel che sta succedendo. Se non c'entra e non sa di
  cosa stiate parlando, probabilmente dovrete investigare ulteriormente.
  Investigate e procuratevi molte informazioni prima di accusare
  qualcuno.

  Se avete rilevato un attacco di rete la prima cosa da fare (se
  possibile)  disconnettere la rete. Se sono connessi via modem,
  staccate il doppino; se via Ethernet, staccate il cavo Ethernt. Questo
  impedir loro di fare altri danni e peneranno ad un problema di rete
  piuttosto che ad un rilevamento.

  Se non potete staccare la rete (se avete un sito trafficato o non
  avete il controllo fisico sulle vostre macchine), il prossimo miglior
  passo  usare qualcosa come i tcp_wrapper o ipfwadm per negare
  l'accesso dal sito dell'intruso.

  Se non potete rifiutare tutte le connessioni dal sito dell'intruso, vi
  dovete accontentare di disattivare l'account dell'utente. Farlo per
  non  semplice. Dovete tenere a mente i file .rhosts, l'accesso FTP, e
  una montagna di possibili backdoor.

  Una volta preso uno dei provvedimenti sopra (disconnesso la rete,
  negato l'accesso dal suo sito e o disabilitato il suo account), dovete
  uccidere tutti i suoi processi ed espellerli.

  Dovete controllare bene il vostro sito nei minuti seguenti, perch
  l'aggressore tenter di rientrare. Forse usando un account differente,
  o da un altro indirizzo di rete.
  1100..22..  LLaa ssiiccuurreezzzzaa  ggii ssttaattaa ccoommpprroommeessssaa..

  Avete trovato una manomissione gi avvenuta o avete rilevato e chiuso
  fuori (si spera) l'intruso. E ora?



  1100..22..11..  CChhiiuuddeerree iill BBuuccoo

  Se siete capaci di determinare in che modo l'aggressore  entrato,
  dovreste tentare di chiudere quel buco. Per esempio, forse troverete
  diverse voci FTP subito prima del login dell'utente. Disabilitate il
  servizio FTP e controllate se esiste una versione aggiornata o se
  qualche lista conosce un rimedio.

  Controllate tutti i log, e visitate le liste di sicurezza e
  controllate se ci sono exploit che potete riparare. Trovate gli
  aggiornamenti di sicurezza di Caldera presso
  http://www.caldera.com/tech-ref/security/. Red Hat non ha ancora
  separato i propri aggiornamenti di sicurezza da quelli dei bug, ma
  l'errata corrige della loro distribuzione si trova presso
  http://www.redhat.com/errata

  Debian ha ora una mailing list sulla sicurezza e una pagina web.
  Visitate http://www.debian.org/security/ per altre informazioni.

   molto probabile che se un distributore Linux ha rilasciato un
  aggiornamento lo abbiano fatto anche gli altri.

  Esiste un progetto di sondaggio della sicurezza di Linux. Passano
  metodicamente tutti programmi utente e cercano exploit e overflow. Dal
  loro annuncio:


       "Stiamo tentando un sondaggio sistematico dei sorgenti di
       Linux con l'obiettivo di renderlo sicuro come OpenBSD. Abbi
       amo gi scoperto (e riparato) alcuni problemi, ma altro
       aiuto  benvenuto. La lista non  moderata  e rappresenta
       anche una buona fonte di discussioni generiche sulla
       sicurezza. L'indirizzo della lista  security-audit@fer
       ret.lmh.ox.ac.uk Per iscriversi, mandate una e-mail a: secu
       rity-audit-subscribe@ferret.lmh.ox.ac.uk"


  Se non chiudete fuori l'aggressore, probabilmente torner. Non solo
  sulla vostra macchina, ma forse da qualche parte nella vostra rete. Se
  avesse eseguito uno sniffer, ci sono buone probabilit che abbia
  accesso ad altre macchine locali.



  1100..22..22..  SSttiimmaarree iill DDaannnnoo

  La prima cosa  stimare il danno. Cosa  stato compromesso?  Se
  stavate eseguendo un test di integrit come Tripwire, potete usarlo
  per eseguire un controllo; dovrebbe aiutare a capire cosa  stato
  compromesso. Altrimenti dovrete controllare tutti i dati importanti.

  Visto che i sistemi Linux diventano sempre pi semplici da istallare
  potreste considerare di salvare i file di configurazione, vuotare i
  dischi, reinstallare e quindi ripristinare i file degli utenti e di
  configurazione dai backup. Questo vi assicura un sistema nuovo e
  pulito. Se doveste ripristinare dei file dal sistema compromesso siate
  molto cauti con ogni binario che ripristinate, perch potrebbe essere
  un cavallo di Troia messo l dall'intruso.

  La reinstallazione dovrebbe essere considerata obbligatoria se un
  intruso ottenesse l'accesso di root. Inoltre, potreste voler tenere le
  prove lasciate, quindi avere un disco vuoto a disposizione pu essere
  sensato.

  Ora dovete preoccuparvi del tempo passato dalla compromissione e se i
  backup possono contenere lavoro danneggiato. Segue un approfondimento
  sui backup.



  1100..22..33..  BBaacckkuupp,, BBaacckkuupp,, BBaacckkuupp!!

  Avere backup regolari  una manna per i problemi di sicurezza. Se il
  sistema venisse compromesso, potreste ripristinare i dati dai backup.
  Ovvio che alcuni dati hanno valore anche per l'aggressore e non solo
  li distrugger ma li ruber e si far le sue copie; ma per lo meno li
  avrete anche voi.

  Dovreste controllare backup anche molto vecchi, prima di ripristinare
  un file che  stato manomesso. L'intruso potrebbe aver compromesso i
  file molto tempo fa e potreste aver fatto molti backup del file gi
  compromesso!

  Ovviamente, c' una serie di problemi di sicurezza con i backup.
  Assicuratevi di tenerli in un posto sicuro. Sappiate chi vi ha
  accesso. (Se l'aggressore ottiene i vostri backup, ha accesso a tutti
  i vostri dati senza che neanche lo sappiate.)



  1100..22..44..  RRiinnttrraacccciiaarree ll''IInnttrruussoo..

  Bene, avete chiuso fuori l'intruso e ripristinato il sistema, ma non
  avete ancora finito. Anche se  improbabile che l'intruso venga preso,
  dovreste notificare l'attacco.

  Dovreste notificarlo all'amministratore del sito da cui proveniva
  l'attacco.  Potete trovare questo contatto con whois o sul database
  dell'Internic.  Potreste mandare una e-mail con tutte le voci, le date
  e le ore dei log inerenti. Se aveste notato qualcosa di particolare
  nell'intruso dovreste menzionarlo. Dopo aver mandato l'e-mail
  dovreste, se volete, far seguire una telefonata. Se l'amministratore a
  sua volta vedesse l'aggressore potrebbe parlare con l'amministratore
  del sito da cui proviene e via cos.

  I bravi cracker usano spesso diversi sistemi intermedi, alcuni (o
  molti) dei quali non sanno neanche di essere stati compromessi.
  Provare a inseguire un cracker fino al suo sistema base sar
  difficile. Essere gentili con gli amministratori con cui parlate aiuta
  molto ad avere la loro collaborazione.

  Dovreste anche dare notizia anche ad ogni organizzazione di sicurezza
  di cui fate parte (il CERT <http://www.cert.org/> o simili), oltre al
  distributore del vostro sistema Linux.



  1111..  DDooccuummeennttii ssuullllaa SSiiccuurreezzzzaa

  Esistono TANTISSIMI buoni siti per la sicurezza Unix in generale e
  quella Linux specificamente.  molto importante iscriversi ad una (o
  pi) delle mailing list sulla sicurezza per conoscere gli
  aggiornamenti. Molte di queste hanno pochissimo traffico e sono molto
  edificanti.

  1111..11..  SSiittii FFTTPP

  Il CERT  il Computer Emergency Response Team (Squadra di Reazione
  alle Emergenze Informatiche). Spesso diffondono allarmi di nuovi
  attacchi e rimedi.  Visitate ftp://ftp.cert.org per altre
  informazioni.

  ZEDZ (gi Replay) (http://www.zedz.net) ha archivi di molti programmi
  di sicurezza. Visto che sono fuori dagli USA non devono sottostare
  alle restrizioni crittografiche.

  Matt Blaze  l'autore del CFS ed un grande pioniere della sicurezza.
  L'archivio di Matt  disponibile presso
  ftp://ftp.research.att.com/pub/mab
  <ftp://ftp.research.att.com/pub/mab>

  tue.nl  un grande sito FTP Olandese sulla sicurezza.  ftp.win.tue.nl



  1111..22..  SSiittii WWeebb


    The Hacker FAQ  una FAQ sugli hacker: The Hacker FAQ

    L'archivio COAST ha un gran numero di programmi e informazioni per
     la sicurezza di Unix: COAST

    Pagina della Sicurezza di SuSE: http://www.suse.de/security/

    Rootshell.com  un grande sito per capire quali exploit sono usati
     al momento dai cracker: http://www.rootshell.com/

    BUGTRAQ diffonde avvisi su questioni di sicurezza: archivi di
     BUGTRAQ

    Il CERT, Computer Emergency Response Team, diffonde avvisi su
     comuni attacchi a piattaforme Unix: homepage del CERT

    Dan Farmer  l'autore di SATAN e di molti altri strumenti di
     sicurezza.  Il suo sito ha alcune interessanti informazioni oltre
     che strumenti di sicurezza: http://www.trouble.org

    Il Linux security WWW  un buon sito sulla sicurezza di Linux:
     Linux Security WWW

    Infilsec ha un motore di ricerca di vulnerabilit che sa dirvi
     quali punti deboli ha una specifica piattaforma:
     http://www.infilsec.com/vulnerabilities/

    Il CIAC diffonde bollettini di sicurezza periodici su exploit
     comuni: http://ciac.llnl.gov/cgi-bin/index/bulletins

    Un buon punto d'inizio per i Linux Pluggable Authentication Modules
     si trova presso http://www.kernel.org/pub/linux/libs/pam/.

    Il progetto Debian ha una pagina web per i propri fix di sicurezza
     ed altre informazioni.  presso http://www.debian.com/security/.

    La WWW Security FAQ, scritta da Lincoln Stein,  un'ottima guida
     alla sicurezza del web. La trovate presso
     http://www.w3.org/Security/Faq/www-security-faq.html



  1111..33..  MMaaiilliinngg LLiisstt

  Bugtraq:  Per iscrivervi a bugtraq, mandate una mail a
  listserv@netspace.org contenente nel corpo del messaggio subscribe
  bugtraq. (Vedete gli archivi sopra).

  CIAC: mandate una e-mail a majordomo@tholia.llnl.gov. Nel CORPO (non
  nel subject) del messaggio mettete:

  subscribe ciac-bulletin



  La Red Hat ha una serie di mailing list, la pi importante delle quali
   la lista redhat-announce. Potete leggervi di patch di sicurezza (e
  altro) non appena sono disponibili. Mandate una e-mail a redhat-
  announce-list-request@redhat.com con il subject

  Subscribe


  Visitate http://www.redhat.com/mailing-lists/redhat-announce-list/ per
  altri informazioni e archivi.

  Il progetto Debian ha una mailing list di sicurezza che tratta dei
  loro fix.  Visitate http://www.debian.com/security/ per altre
  informazioni.



  1111..44..  LLiibbrrii -- MMaatteerriiaallee SSttaammppaattoo

  Esiste una serie di buoni libri di sicurezza. Questa sezione ne elenca
  alcuni.  Oltre che nei libri sulla sicurezza, si parla di
  quest'argomento in molti altri libri di amministrazione di sistema.

  Building Internet Firewalls di D. Brent Chapman & Elizabeth D. Zwicky

  1ma Edizione Settembre 1995

  ISBN: 1-56592-124-0

  Practical UNIX & Internet Security, 2nd Edition di Simson Garfinkel &
  Gene Spafford

  2nda Edizione Aprile 1996

  ISBN: 1-56592-148-8

  Computer Security Basics di Deborah Russell & G.T. Gangemi, Sr.

  1ma Edizione Luglio 1991

  ISBN: 0-937175-71-4

  Linux Network Administrator's Guide di Olaf Kirch

  1ma Edizione Gennaio 1995

  ISBN: 1-56592-087-2

  PGP: Pretty Good Privacy di Simson Garfinkel

  1ma Edizione Dicembre 1994

  ISBN: 1-56592-098-8

  Computer Crime A Crimefighter's Handbook di David Icove, Karl Seger &
  William VonStorch (Consulting Editor Eugene H. Spafford)

  1ma Edizione Agosto 1995

  ISBN: 1-56592-086-4


  Linux Security di John S. Flowers

  New Riders;

  ISBN: 0735700354

  Marzo 1999


  Maximum Linux Security : A Hacker's Guide to Protecting Your Linux
  Server and Network

  Anonimo

  Edizione economica - 829 pagine

  Sams;

  ISBN: 0672313413

  Luglio 1999


  Intrusion Detection di Terry Escamilla

  Ed. Economica

  416 pagine (Settembre 1998)

  John Wiley and Sons;

  ISBN: 0471290009


  Fighting Computer Crime

  Donn Parker

  Ed. Economica

  526 pagine (Settembre 1998)

  John Wiley and Sons;

  ISBN: 0471163783


  1122..  GGlloossssaarriioo


    aauutteennttiiccaazziioonnee:: Il processo che verifica che i dati ricevuti siano
     uguali a quelli spediti e che il mittente dichiarato sia quello
     effettivo.



    HHoosstt bbaassttiioonnee:: Un sistema che deve essere estremamente sicuro
     perch vulnerabile ad attacchi, in genere a causa del collegamento
     ad Internet e del continuo contatto con gli utenti della rete
     interna. Prende il nome dalle strutture fortificate sulle mura dei
     castelli medioevali. I bastioni sorvegliavano aree difensive
     strategiche ed in genere avevano grandi mura, spazio per truppe
     supplementari e il solito, caro, vecchio pentolone di olio bollente
     per "scoraggiare" gli aggressori.


    bbuuffffeerr oovveerrffllooww:: spesso i programmatori non allocano mai buffer
     abbastanza grandi e si dimenticano di controllare se ci sono
     overflow. Quando un buffer va in overflow, al programma eseguito
     (sia un demone o un programma set-uid) si potrebbe far fare quel
     che non deve. In genere viene sovrascritto l'indirizzo di ritorno
     sullo stack di una funzione in modo che punti ad un'altra
     locazione.


    ddeenniiaall ooff sseerrvviiccee ((nneeggaazziioonnee ddii uunn sseerrvviizziioo)):: un attacco che
     consuma le risorse del computer in cose inutili, bloccando cos il
     loro uso per scopi legittimi.


    HHoosstt dduuaall--hhoommeedd ((aa ddooppppiiaa bbaassee)):: Un computer per uso generico che
     ha almeno due interfacce di rete.


    ffiirreewwaallll:: Un componente o set di componenti che restringe il
     passaggio di dati fra la rete protetta ed Internet, o fra due reti
     qualsiasi.


    hhoosstt:: un sistema che faccia parte di una rete.


    IIPP ssppooooffiinngg:: l'IP Spoofing  un complesso attacco tecnico fatto di
     diversi componenti.  un exploit di sicurezza che agisce facendo
     credere ai computer in una relazione di fiducia di essere qualcuno
     che in verit non . Esiste un esaustivo documento scritto da
     daemon9, route e infinity nel Volume Settimo, numero 48 di Phrack
     Magazine.


    nnoonn--rriippuuddiiaabbiilliitt:: la capacit di un destinatario di provare che il
     mittente di alcuni dati li ha veramente spediti, anche se in
     seguito ha negato di averlo fatto.


    ppaacccchheettttoo:: l'unit fondamentale di comunicazione su Internet.


    ffiillttrraaggggiioo ddeeii ppaacccchheettttii:: l'azione intrapresa da un device per
     controllare selettivamente il flusso di dati per e da una rete. I
     filtri lasciano passare o bloccano i pacchetti, spesso mentre li
     ridirigono da una rete ad un'altra (ancora pi spesso da Internet
     ad una intranet e viceversa). I pacchetti vengono filtrati secondo
     regole che specificano che tipo di pacchetti sono permessi e quali
     sono bloccati.


    rreettee ddii ppeerriimmeettrroo:: una rete inserita fra una rete protetta e una
     esterna, per aggiungere un ulteriore strato di sicurezza. Una rete
     di perimetro viene detta alle volte DMZ.


    sseerrvveerr pprrooxxyy:: un programma che dialoga con server esterni al posto
     dei client interni. I client proxy parlano ai server proxy, che
     passano le richieste dei client approvate ai veri server, e
     consegnano le risposte ai client..


    ssuuppeerruusseerr:: nome informale per root.



  1133..  DDoommaannddee FFrreeqquueennttii


  1.  pi sicuro compilare il supporto dei driver direttamente nel
     kernel, invece che farne un modulo?

     Risposta: Alcune persone ritengono meglio disabilitare il supporto
     dei moduli, perch un intruso potrebbe caricare un Cavallo di Troia
     o un altro modulo pericoloso per la sicurezza.

     Comunque, per caricare i moduli, dovreste essere root. Anche i file
     dei moduli sono scrivibili solo da root. Questo significa che
     l'intruso avrebbe bisogno dell'accesso di root per inserire un
     modulo. Se l'intruso ha accesso di root, ci sono problemi ben pi
     gravi della possibilit che carichi un modulo.

     I moduli servono per caricare dinamicamente il supporto per un
     device che viene usato raramente. Su macchine server, o firewall
     per esempio,  molto difficile che succeda. Per questa ragione,
     avrebbe pi senso compilare il supporto direttamente nel kernel,
     nelle macchine che facciano da server. I moduli inoltre sono meno
     veloci del supporto compilato nel kernel.


  2. Perch fare un login remoto come root ha sempre esito negativo?

     Risposta: Vedi ``Sicurezza di Root''. Questo fatto  intenzionale
     per evitare che utenti remoti tentino di connettersi via telnet
     come root sulla vostra macchina, che  un serio rischio, perch la
     password di root sarebbe trasmessa in chiaro sulla rete. Non
     dimenticate: i potenziali intrusori hanno il tempo dalla loro e
     possono eseguire programmi che trovino la vostra password.


  3. Come abilito le shadow password sulla mia Red Hat 4.2 or 5.x ?

     Risposta:

     Per abilitare le shadow password, eseguite pwconv da root, quindi
     dovrebbe essere creato ed usato dalle applicazioni /etc/shadow. Se
     state usando RH 4.2 o superiore, i moduli PAM si adatteranno
     automaticamente al cambiamento dal normale /etc/passwd alle shadow
     password senza altri cambiamenti.

     Un po' di informazioni di base: le shadow password sono un
     meccanismo per tenere le password in un file diverso dal solito
     /etc/passwd. Questo ha diversi vantaggi. Il primo  che il file
     ombra, /etc/shadow,  leggibile solo da root, a differenza di
     /etc/passwd, che deve essere leggibile a tutti. L'altro vantaggio 
     che come amministratore potete abilitare o disabilitare gli account
     senza che uno sappia dell'altro.

     Quindi il file /etc/passwd viene usato per registrare i nomi degli
     utenti e dei gruppi, usati da programmi come /bin/ls per risalire
     dal ID utente al nome utente nei listati delle directory.

     Il file /etc/shadow contiene solo il nome utente e la password,
     magari informazioni sull'account come la scadenza ecc.

     Visto che volete rendere pi sicure le vostre password, forse
     sareste anche interessati a generare buone password. Per questo
     potete usare il modulo pam_cracklib, che fa parte dei PAM. Prova le
     vostre password contro le librerie di Crack per aiutarvi a decidere
     se sono troppo facili da trovare con programmi del genere.


  4. Come posso abilitare le estensioni SSL di Apache?

     Risposta:


     a. Prendete SSLeay 0.8.0 o successivo da
        <ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL>


     b. Compilatelo, provatelo e installatelo!


     c. Prendete i sorgenti di Apache 1.2.5


     d. Prendete le estensioni SSLeay di Apache da qui
        <ftp://ftp.ox.ac.uk/pub/crypto/SSL/apache_1.2.5+ssl_1.13.tar.gz>


     e. Scompattatele nella directory dei sorgenti di apache-1.2.5 e
        aggiornate Apache seguendo il README


     f. Configuratelo e compilatelo.


     Potreste anche provare su ZEDZ net che ha molti pacchetti
     precompilati ed  collocata fuori dagli USA.


  5. Come posso manipolare gli account, mantenendo la sicurezza?

     Risposta: la distribuzione Red Hat, soprattutto RH5.0, contiene un
     gran numero di strumenti per cambiare le propriet degli account
     utente.


       pwconv e unpwconv possono essere usati per convertire fra
        password normali e shadow.

       pwck e grpck possono essere usati per controllare la giusta
        organizzazione dei file passwd e group.

       useradd, usermod e userdel si possono usare per aggiungere,
        togliere o modificare gli account. groupadd, groupmod, e
        groupdel fanno lo stesso per i gruppi.

       Le password di gruppo possono essere create usando gpasswd.

     Tutti questi programmi riconoscono le shadow password -- quindi, se
     le attivate useranno /etc/shadow per informazioni sulle password,
     altrimenti non lo faranno.

     Leggete le rispettive pagine man per ulteriori informazioni.


  6. Come posso proteggere con una password specifici documenti HTML
     usando Apache?

     Scommetto che non sapevate di http://www.apacheweek.org, sbaglio?

     Potete trovare informazioni sull'autenticazione degli utenti presso
     http://www.apacheweek.com/features/userauth oltre ad altri trucchi
     a proposito di sicurezza dei server web su
     http://www.apache.org/docs/misc/security_tips.html


  1144..  CCoonncclluussiioonnii

  Inscrivendovi alle mailing list di sicurezza e tenendovi aggiornati,
  potete far molto per la sicurezza della vostra macchina. Se fate
  attenzione ai vostri log ed eseguite qualcosa tipo tripwire
  regolarmente, potete fare anche di meglio.

  Non  difficile mantenere un livello ragionevole di sicurezza su una
  macchina casalinga. Serve un maggiore impegno per le macchine di
  lavoro, ma Linux pu essere una piattaforma senz'altro sicura. Grazie
  alla natura dello sviluppo di Linux, i fix alla sicurezza vengono
  spesso diffusi molto prima che per i sistemi operativi commerciali,
  rendendo Linux una piattaforma ideale quando la sicurezza  una
  necessit.



  1155..  RRiinnggrraazziiaammeennttii

  Queste informazioni sono state raccolte da molte fonti. Grazie alle
  seguenti persone, che hanno contribuito direttamente o indirettamente:

       Rob Riggs rob@DevilsThumb.com

       S. Coffin scoffin@netcom.com

       Viktor Przebinda viktor@CRYSTAL.MATH.ou.edu

       Roelof Osinga roelof@eboa.com

       Kyle Hasselbacher kyle@carefree.quux.soltc.net

       David S. Jackson dsj@dsj.net

       Todd G. Ruskell ruskell@boulder.nist.gov

       Rogier Wolff R.E.Wolff@BitWizard.nl

       Antonomasia ant@notatla.demon.co.uk

       Nic Bellamy sky@wibble.net

       Eric Hanchrow offby1@blarg.net

       Robert J. Bergerrberger@ibd.com

       Ulrich Alpers lurchi@cdrom.uni-stuttgart.de

       David Noha dave@c-c-s.com

       Pavel Epifanov. epv@ibm.net

       Joe Germuska. joe@germuska.com


  Franklin S. Werren fswerren@bagpipes.net

  Paul Rusty Russell <Paul.Russell@rustcorp.com.au>

  Christine Gaunt <cgaunt@umich.edu>

  lin bhewitt@refmntutl01.afsc.noaa.gov

  A. Steinmetz astmail@yahoo.com

  Jun Morimoto morimoto@xantia.citroen.org

  Xiaotian Sun sunx@newton.me.berkeley.edu

  Eric Hanchrow offby1@blarg.net

  Queste persone hanno tradotto questo HOWTO in molte altre lingue!

  Un grazie speciale a tutti loro per averci aiutato a diffondere la
  buona novella di Linux...

  Polacco: Ziemek Borowski ziembor@FAQ-bot.ZiemBor.Waw.PL

  Giapponese: FUJIWARA Teruyoshi fjwr@mtj.biglobe.ne.jp

  Indonesiano: Tedi Heriyanto 22941219@students.ukdw.ac.id

  Coreano: Bume Chang Boxcar0001@aol.com

  Spagnolo: Juan Carlos Fernandez piwiman@visionnetware.com

  Olandese: R. Ekkebus reggy@zeelandnet.nl

  Italiano: Matteo Scordino del SienaLUG slug-list@siena.linux.it



