selinux-faq/it selinux-faq-it.xml,NONE,1.1

Paul W. Frields (pfrields) fedora-docs-commits at redhat.com
Sat Feb 4 14:45:49 UTC 2006


Author: pfrields

Update of /cvs/docs/selinux-faq/it
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3796/it

Added Files:
	selinux-faq-it.xml 
Log Message:
Reorganized with 'migrate-lang' script



--- NEW FILE selinux-faq-it.xml ---
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [

<!-- *************** Bring in Fedora entities *************** -->
<!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-it.ent">
%FEDORA-ENTITIES-IT;

<!-- ************** local entities *********** -->
<!ENTITY APACHE "Apache HTTP">
<!ENTITY LOCALVER "5">  <!-- Set value to your choice, when guide version is out -->
<!-- of sync with FC release, use instead of FEDVER or FEDTESTVER  -->
<!ENTITY BUG-URL
"https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Core&op_sys=Linux&version=fc3&component=fedora-docs&component_text=&rep_platform=All&priority=normal&bug_severity=normal&bug_status=NEW&assigned_to=kwade%40redhat.com&cc=&estimated_time=0.0&bug_file_loc=http%3A%2F%2Ffedora.redhat.com%2Fdocs%2Fselinux-faq-fc3%2F&short_desc=SELinux%20FAQ%20-%20%5Bsummarize%20FAQ%20change%20or%20addition%5D&comment=Description%20of%20change%2FFAQ%20addition.%20%20If%20a%20change%2C%20include%20the%20original%0D%0Atext%20first%2C%20then%20the%20changed%20text%3A%0D%0A%0D%0A%0D%0A%0D%0AVersion-Release&percnt!
 ;20of%20FAQ%20%28found%20on%0D%0Ahttp%3A%2F%2Ffedora.redhat.com%2Fdocs%2Fselinux-faq-fc3%2Fln-legalnotice.html%29%2C%0D%0Afor%20example%3A%0D%0A%0D%0A%20%20selinux-faq-1.3-8%20%282005-01-20-T16%3A20-0800%29%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A&keywords=&dependson=&blocked=118757%20%20&maketemplate=Remember%20values%20as%20bookmarkable%20template&form_name=enter_bug">

<!ENTITY DOCNAME "selinux-faq">
<!ENTITY DOCVERSION "1.5-1">
<!ENTITY DOCDATE "2005-12-30">
<!ENTITY DOCID "&DOCNAME;-&DOCVERSION; (&DOCDATE;)">

<!ENTITY FCLOCALVER "5">

 <!ENTITY FDP-INFO  SYSTEM  "fdp-info-it.xml" >
 
]>

<article id="selinux-faq" lang="it">

	&FDP-INFO;

  <section id="s-selinux-faq">
    <title>&SEL; Note e FAQ</title>
    <para>
      Le informazioni in questa FAQ sono pregevoli per coloro che sono nuovi a &SEL;. Il 
      loro valore è apprezzabile anche se siete nuovi alle ultime implementazioni di &SEL; in &FC;,
      poichè alcuni comportamenti potrebbero essere differenti
      da come sapete.
    </para>
    <note>
      <title>Questa FAQ è specifica per &FC; &LOCALVER;</title>
      <para>
        Se state cercando le FAQ per &FC; 2, fate riferimento a <ulink
          url="http://fedora.redhat.com/docs/selinux-faq-fc2/" /> o <ulink
          url="http://fedora.redhat.com/docs/selinux-faq-fc3/" />, rispettivamente.
      </para>
    </note>
    <para>
      Per maggiori informazioni su come funziona &SEL;, come usare &SEL; su
      distribuzioni Linux generiche e specifiche, e come scrivere policy, queste sono 
      risorse utili:
    </para>
    <itemizedlist id="external-link-list">
      <title>Lista Link Esterni</title>
      <listitem>
        <para>
          NSA &SEL; main website — <ulink
	    url="http://www.nsa.gov/selinux/" />
        </para>
      </listitem>
      <listitem>
        <para>
          NSA &SEL; FAQ — <ulink
	    url="http://www.nsa.gov/selinux/info/faq.cfm" />
        </para>
      </listitem>
      <listitem>
	<para>
	  &SEL; community page — <ulink
	    url="http://selinux.sourceforge.net" />
	</para>
      </listitem>
      <listitem>
        <para>
          UnOfficial FAQ — <ulink
	    url="http://www.crypt.gen.nz/selinux/faq.html" />
        </para>
      </listitem>
      <listitem>
        <para>
          Writing traditional SE Linux policy HOWTO — <ulink
	    url="https://sourceforge.net/docman/display_doc.php?docid=21959&group_id=21266"
	    />
        </para>
      </listitem>
      <listitem>
        <para>
          Reference Policy (the new policy found in &FC; 5) — <ulink
	    url="http://serefpolicy.sourceforge.net/"
	    />
        </para>
      </listitem>
      <listitem>
        <para>
          SELinux policy development training courses — <ulink
	    url="http://tresys.com/services/training.shtml"
	    /> and <ulink
	    url="https://www.redhat.com/training/security/courses/rhs429.html"
	    />
        </para>
      </listitem>
      <listitem>
        <para>
          Getting Started with SE Linux HOWTO: the new SE Linux (Debian) —
	  <ulink
	    url="https://sourceforge.net/docman/display_doc.php?docid=20372&group_id=21266" />
        </para>
      </listitem>
      <listitem>
        <para>
          List of SELinux object classes and permissions —
	  <ulink
	    url="http://tresys.com/selinux/obj_perms_help.shtml" />
        </para>
      </listitem>
      <listitem>
        <para>
          On IRC — irc.freenode.net, #fedora-selinux
        </para>
      </listitem>
      <listitem>
        <para>
          &FED; mailing list — <ulink
	    url="mailto:fedora-selinux-list at redhat.com" />;
	  leggi gli archivi o sottoscriviti su <ulink
	    url="http://www.redhat.com/mailman/listinfo/fedora-selinux-list" />
        </para>
      </listitem>
    </itemizedlist>
    <tip>
      <title>Fare cambiamenti/aggiunte alla &FED; &SEL; FAQ</title>
      <para>
        Questa FAQ è disponibile su <ulink
          url="http://fedora.redhat.com/docs/selinux-faq-fc5/">http://fedora.redhat.com/docs/selinux-faq-fc5/</ulink>.
      </para>
      <para>
        Per modifiche o aggiunte alle &FED; &SEL; FAQ, usate questo <ulink
          url="&BUG-URL;">bugzilla template</ulink>, che precompila la maggior parte del
        rapporto d'errore. Le patches dovranno essere un <command>diff -u</command> rispetto
	all'XML, disponibile dal CVS (fate riferimento a <ulink
          url="http://fedora.redhat.com/projects/docs/" /> per dettagli su come 
        ottenere il modulo fedora-docs/selinux-faq via CVS anonimo; puoi avere
        solo il modulo <filename>fedors-docs/selinux-faq</filename> se non vuoi
        l'intero albero <filename>fedora-dcs</filename>.) Altrimenti,
        semplice testo che mostri prima e dopo è sufficiente.
      </para>
      <para>
	Per avere una lista completa delle segnalazioni d'errore inerenti questa FAQ, fate riferimento a <ulink
	  url="https://bugzilla.redhat.com/bugzilla/showdependencytree.cgi?id=118757">https://bugzilla.redhat.com/bugzilla/showdependencytree.cgi?id=118757</ulink>.
      </para>
    </tip>

    <qandaset defaultlabel="qanda" id="selinux-faq-list">
      <?dbhtml toc="1"?>  
      <qandadiv id="faq-div-understanding-selinux">
        <title>Comprendere &SEL;</title>
        <qandaentry>
          <question>
            <para>
              Cos'è &SEL;?
            </para>
          </question>
          <answer>
            <para>
              &SEL; (<firstterm>Security-Enhanced Linux</firstterm>) in &FC; è
	      un implementazione del <firstterm>mandatory access
                control</firstterm> nel kernel di Linux che usa il
              <firstterm>Linux Security Modules</firstterm>
	      (<abbrev>LSM</abbrev>) framework. La sicurezza standard di Linux è basata su un modello
	      definito come <firstterm>discretionary access control</firstterm>.
            </para>
            <itemizedlist>
              <listitem>
                <para>
                  Discretionary access control (<abbrev>DAC</abbrev>) —
                  questo è il modello base della sicurezza di Linux, e non fornisce protezione
                  da software corrotto o malevolo eseguito come utente normale o
                  root. Gli utenti possono assegnare rischiosi livelli di accesso ai files
                  che possiedono.
                </para>
              </listitem>
              <listitem>
                <para>
                  Mandatory access control (<abbrev>MAC</abbrev>) — pieno
                  controllo su tutte le iterazioni del software. Policy definite
                  amministrativamente controllano da vicino le iterazioni fra utenti e processi
                  con il sistema, e forniscono protezione da software
                  corrotto o malevolo eseguito sotto qualsiasi utente.
                </para>
              </listitem>
            </itemizedlist>
            <para>
              In un modello DAC, i file e le risorse decisionali sono basate solamente
	      sull'identità utente e il proprietario degli oggetti.  Ogni utente e programma
	      eseguito da quell'utente ha completa discrezione sugli oggetti dell'utente.
              Software malizioso o difettoso può fare qualsiasi cosa con i files e
              le risorse controllate attraverso l'utente che ha avviato i processi.
              Se l'utente è il super-user o l'applicazione è
              <command>setuid</command> o <command>setgid</command> root,
              il processo può avere un livello di controllo root sull'intero file
              system.
            </para>
            <para>
              Un sistema MAC non soffre di questi problemi.  Primo, puoi
              definire-amministrativamente una policy di sicurezza su tutti i processi ed
              oggetti.  Secondo, puoi controllare tutti i processi e gli oggetti, nel
              caso di &SEL; mediante il kernel.  Terzo, le decisioni sono basate su
              tutte le informazioni di sicurezza rilevanti disponibili, e non solo sulla
              identità utente autenticata.
            </para>
            <para>
              Il MAC sotto &SEL; permette di fornire permessi granulari per tutti i
	      <firstterm>soggetti</firstterm> (utenti, programmi, processi) ed
	      <firstterm>oggetti</firstterm> (files, devices). In pratica,
	      pensa ai soggetti come processi, ed gli oggetti come lo scopo di un
	      operazione di un processo. Puoi garantire con sicurezza ad un processo solo i
	      permessi che gli occorrono per eseguire la sua funzione, e niente di più.
            </para>
            <para>
              L'implementazione di &SEL; usa un <firstterm>role-based access
                control</firstterm> (<abbrev>RBAC</abbrev>), che fornisce
	      un astrazione di controllo a livello-utente basata su ruoli, e sui
	      <firstterm><trademark class="registered">Type
                  Enforcement</trademark></firstterm> (<abbrev>TE</abbrev>). TE
              usa una tabella (matrice) per manipolare i controlli di accesso, applicando le regole
	      della policy basate sui tipi di processi ed oggetti.  I tipi di processo
	      sono chiamati domini, ed un riferimento incrociato sulla matrice dei
	      domini dei processi e del tipo degli oggetti definisce la loro interazione.
	      Questo può fornire un controllo estremamente granulare per gli attori in un sistema
	      Linux.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
               Cos'è una policy &SEL;?
            </para>
          </question>
          <answer>
            <para>
              La policy &SEL; descrive i permessi di accesso per tutti i soggetti
	      e gli oggetti, esempio, l'intero sistema degli utenti, programmi, e
	      processi ed i files ed i devices su cui agiscono. La policy di  &FC; è
	      contenuta in un pacchetto, con una pacchetto sorgente associato. Attualmente
	      i pacchetti che contengono le policy sono:
            </para>
	    <itemizedlist>
	      <listitem>
                <para><filename>selinux-policy-<replaceable><version></replaceable>.noarch.rpm</filename> 
		</para>
	      </listitem>
	    </itemizedlist>
	    <para>
	      Questo pacchetto è comune a tutti i tipi di policy e contiene files di 
	      configurazione/pagine man.
	    </para>
	    <itemizedlist>
	      <listitem>
                <para><filename>selinux-policy-devel-<replaceable><version></replaceable>.noarch.rpm</filename> 
		</para>
	      </listitem>
	    </itemizedlist>
	    <para>
	      Questo è l'ambiente di sviluppo. Questo sostituisce il 
	      vecchio pacchetto -sources. Questo pacchetto contiene i files di interfaccia
	      usati nella policy reference assieme ad un Makefile ed un piccolo tool
	      usato per generate il file template della policy. I files di interfaccia
	      risiedono nella directory /usr/share/selinux/refpolicy/headers .
	    </para>
            <itemizedlist>
              <listitem>
                <para><filename>selinux-policy-strict-<replaceable><version></replaceable>.noarch.rpm</filename>
                </para>
              </listitem>
              <listitem>
                <para>
                  <filename>selinux-policy-targeted-<replaceable><version></replaceable>.noarch.rpm</filename> 
                </para>
              </listitem>
              <listitem>
                <para>
                  <filename>selinux-policy-mls-<replaceable><version></replaceable>.noarch.rpm</filename> 
                </para>
              </listitem>
            </itemizedlist>
            <para>
	      I files binari della policy sono in /etc/selinux/policyname. La policy per i
	      tipi ed i domini è configurata separatamente dai contesti di sicurezza per i
	      soggetti ed oggetti.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
<!-- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133403 thanks to -->
<!-- dwalsh for supplying the source FAQs -->
          <question>
            <para>
              Cos'è la policy targeted di &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Inizialmente, quando &SEL; fu incluso in Fedora Core, la policy strict di NSA
	      fu applicata. A scopo di prova, ciò aiutò a trovare
	      centinaia di problemi nella strict policy. In seguito, è divenne
	      ovvio che applicare una singola strict policy ai molti ambienti
	      degli utenti &FED; non era fattibile. Amministrare una singola
	      strict policy per qualsiasi cosa diversa dall'installazione standard
	      avrebbe richiesto un esperienza locale superiore.
            </para>
            <para>
              A questo punto, gli sviluppatori &SEL; rividero le loro scelte, e
	      decisero di adottare una strategia differente. Fu deciso di creare una
	      policy che puntasse a bloccare specifici demoni, specialmente
	      quelli più vulnerabili agli attacchi o più devastanti per il sistema se corrotti o
	      compromessi. Al resto del sistema è consentita l'esecuzione come fosse sotto
	      la sicurezza standard di Linux, esempio, funzionare lo stesso se &SEL; è abilitato o
	      meno.
            </para>
            <para>
              Sotto la policy targeted, molti processi sono eseguiti nel
	      dominio <computeroutput>unconfined_t</computeroutput>. Come implica
	      il nome, questi processi non sono per lo più confinati dalla
	      policy &SEL;. Questi sono comunque ancora governati dalla sicurezza
	      standard di Linux/UNIX.
            </para>
            <para>
              Specifici demoni di rete hanno policy scritte per loro, e la
	      policy <computeroutput>unconfined_t</computeroutput> transita
	      su queste policies quando l'applicazione viene avviata. Per esempio, al
	      boot del sistema, <command>init</command> viene eseguito sotto la
	      policy <computeroutput>unconfined_t</computeroutput>, ma quando viene
	      avviato <command>named</command>, è transitato sotto il dominio
	      <computeroutput>named_t</computeroutput> ed è bloccato
	      dalla policy appropriata.
            </para>
            <para>
	      Per maggiori informazioni sull'abilitazione e disabilitazione delle policy targeted
	      per ogni demone specifico, fate riferimento a <xref
	      linkend="using-s-c-securitylevel"/>.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
<!-- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133403 thanks to -->
<!-- dwalsh for supplying the source FAQs -->
          <question>
            <para>
              Che demoni sono protetti dalla targeted policy?
            </para>
          </question>
          <answer>
            <para>
	      Attualmente, la lista dei demoni è <command>dhcpd</command>,
              <command>httpd</command> (<filename>apache.te</filename>),
              <command>named</command>, <command>nscd</command>,
              <command>ntpd</command>, <command>portmap</command>,
              <command>snmpd</command>, <command>squid</command>, and
	      <command>syslogd</command>. I files di policy per questi demoni si
              trovano in
              <filename>/etc/selinux/targeted/src/policy/domains/program</filename>.
            </para>
            <para>
              In futuro, molti demoni saranno aggiunti alla policy di protezione
	      targeted.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Che demoni aggiungerete alla targeted policy? Che ne dite
	      di Sendmail, Postfix, MySQL, o PostgreSQL?
            </para>
          </question>
          <answer>
            <para>
              Gli sviluppatori di &SEL; vorrebbero aggiungere eventualmente ftp e gli agenti di
	      posta elettronica alla targeted policy. Ad esempio, <command>vsftpd</command> potrebbe
	      funzionare in modo simile a <command>login</command>: dopo il log-in, un nuovo
	      processo è eseguito sotto il contesto dell'utente
	      (contesto utente reale o anonimo).
            </para>
            <para>
              Un problema con gli agenti di posta elettronica è che hanno spesso hanno bisogno di
	      manipolare files nelle home directory utente. Un obbiettivo della targeted policy
	      è quello di evitare problemi di etichettatura nelle home directory degli utenti.
	      Ci si sta ancora lavorando su.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              E la policy strict? Funzionerà comunque?
            </para>
          </question>
          <answer>
            <para>
              La policy strict su  &FC; <emphasis>funziona</emphasis>. La sfida è
	      con gli ambienti unici di utenti differenti. Per farla funzionare
	      nel tuo ambiente, avrai bisogno di aggiustare sia la policy
	      che i tuoi sistemi.
            </para>
            <para>
              Per aiutare a rendere semplice l'uso della strict policy, gli sviluppatori di  &SEL;
	      hanno lavorato sul rendere il cambiamento da un policy all'altra
	      semplice. Per esempio,
	      <command>system-config-securitylevel</command> fa una rietichettatura
	      negli scripts di avvio.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Cos'è la policy mls?  A che serve?
            </para>
          </question>
          <answer>
            <para>
              La policy mls è simile alla policy strict, ma aggiunge ulteriori
	      campi ai contesti di sicurezza per separarne i livelli.  Questi livelli possono
	      essere usati per separare dati in un ambiente che richieda una stretta
	      separazione gerarchica.  L'esempio più comune che si può fare è l'ambiente
	      militare dove i dati ad un certo livello sono classificati.  Questa policy è
	      gestita attraverso questa sorta di utenti, e probabilmente non ti è utile
	      a meno che tu non ricada in questa categoria.
            </para>
          </answer>
        </qandaentry>
        <qandaentry id="faq-entry-whatis-refpolicy" xreflabel="Reference Policy">
          <question>
            <para>
              Cos'è la policy reference?
            </para>
          </question>
          <answer>
            <para>
	      La policy reference
	      è un nuovo progetto disegnato per riscrivere l'intera policy SELinux in modo tale
	      che sia più facile da usare e comprendere.  Per questo, usa
	      i concetti di modularità, astrazione, ed interfacce ben-definite.
	      Vedi <ulink
	      url="http://serefpolicy.sourceforge.net/">la pagina del suo progetto</ulink>
	      per maggiori informazioni.
            </para>
	    <para>
	      Le policy Fedora nella versione 1.x sono basate sull'esempio tradizionale
	      di policy.  Le policy version 2.x (usate in &FC; &LOCALVER;) sono basate
	      sulla policy reference.
	    </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Cosa sono i file contexts?
            </para>
          </question>
          <answer>
            <para>
              I file contexts sono usati dal comando <command>setfiles</command>
	      per rendere persistenti le etichette che descrivono il contesto di sicurezza
	      per un file o una directory.
            </para>
            <para>
              &FC; è rilasciato con lo script <command>fixfiles</command> che
	      supporta tre opzioni: <option>check</option>,
	      <option>restore</option>, e <option>relabel</option>. Questo
	      permette agli utenti di rietichettare il file system senza aver installato il
	      pacchetto <filename>selinux-policy-targeted-sources</filename>.
	      L'uso della linea di comando è molto più amichevole rispetto
	      al comando <command>setfiles</command> standard.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come posso vedere il contesto di sicurezza di un file, un utente, o un processo?
            </para>
          </question>
          <answer>
            <para>
              La nuova opzione <option>-Z</option> è il metodo più immediato per
	      mostrare il contesto di un soggetto o di un oggetto:
            </para>
<screen>
<command>ls -alZ <replaceable>file.foo</replaceable> 
id -Z 
ps -eZ</command>
</screen>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Che differenza c'è fra un <firstterm>dominio</firstterm> ed
              un <firstterm>tipo</firstterm>?
            </para>
          </question>
          <answer>
            <para>
              Non c'è differenza fra un dominio ed un tipo, comunque
	      il dominio è qualche volta usato per riferirsi ad un tipo di processo.
	      L'uso del dominio in questo modo discende dal modello
	      Domain and Type Enforcement (DTE), dove i domini ed i tipi sono separati.
            </para>
          </answer>
        </qandaentry>
      </qandadiv>
      <qandadiv id="faq-div-controlling-selinux">
        <title>Controllare &SEL;</title>
        <qandaentry>
          <question>
            <para>
              Come installo o non installo &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Il programma di installazione si comporta basandosi sulle scelte che fai nella
	      schermata di <guilabel>Configurazione del Firewall</guilabel>. Di base
	      la policy applicata è la targeted, che per scelta predefinita è attiva.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come cambio la policy che sto usando?
            </para>
          </question>
          <answer>
            <caution>
              <title>Cambiare policy non è una cosa da prendere alla leggera.</title>
              <para>
                A meno che tu non stia provando una nuova policy su una macchina test a
		scopo di ricerca, dovresti seriamente considerare la situazione
		prima di cambiare policy su un sistema in produzione.
              </para>
              <para>
                Il modo di cambiare policy è semplice. Questo è un metodo abbastanza
		sicuro, ma deve prima essere provato su un sistema test.
              </para>
            </caution>
            <para>
              Un metodo è quello di usare
	      <command>system-config-securitylevel</command> per cambiare la
	      policy e impostare il filesystem da rietichettare.
            </para>
            <para>
              La seguente è la procedura manuale:
            </para>
            <procedure>
              <step>
                <para>
                  Edita <filename>/etc/selinux/config</filename> e cambia il
                  tipo di policy in
                  <computeroutput>SELINUXTYPE=<replaceable>policyname</replaceable></computeroutput>.
                </para>
              </step>
              <step>
                <para>
                  Per essere sicuri che tu possa avere un sistema funzionante dopo un reboot, setta
		  il modo a <computeroutput>SELINUX=permissive</computeroutput>. In questo modo
		  SELinux sarà eseguito sotto la corretta policy, ma ti permetterà di fare
		  il login se c'è qualche problema, tipo il contesto di un file non correttamente
		  etichettato.
                </para>
              </step>
              <step>
                <para>
                  Di agli init scripts di rietichettare il sistema al riavvio con il
                  comando <command>touch /.autorelabel</command>.
                </para>
              </step>
              <step>
                <para>
                  Riavvia il sistema.  Un riavvio pulito sotto la nuova policy
                  permetterà a tutti i processi del sistema di avviarsi nel contesto
                  appropriato, e rivelare qualsiasi problema nel cambiamento di policy.
                </para>
              </step>
              <step>
                <para>
                  Conferma che i tuoi cambiamenti abbiano effetto con il comando
                  <command>sestatus -v</command>.  Con il nuovo sistema avviato
                  in modalità <computeroutput>permissive</computeroutput>, controlla
                  <filename>/var/log/messages</filename> per i messaggi
                  <computeroutput>avc:  denied</computeroutput>.  Questi
                  possono indicare un problema che deve essere risolto affinchè il sistema
                  possa funzionare senza difficoltà sotto la nuova policy.
                </para>
              </step>
              <step>
                <para>
                  Quando sei soddisfatto che il sistema sia stabile sotto la
                  nuova policy, abilita l'enforcing cambiando
                  <computeroutput>SELINUX=enforcing</computeroutput>.  Puoi
                  sia riavviare che eseguire <command>setenforce 1</command> per passare
                  in enforcing in tempo reale.
                </para>
              </step>
            </procedure>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come eseguo il back up dei files da un file system &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Puoi usare l'utilità <command>star</command>, che supporta
              gli attributi estesi che contengono le etichette dei contesti di sicurezza.
              Specifica il formato <option>-xattr</option> e <option>exustar</option>
              quando creai gli archivi.
            </para>
<screen>
<command>ls -Z /var/log/maillog</command>
-rw-------  root   root    system_u:object_r:var_log_t   /var/log/maillog
<command>cd /var/log
star -xattr -H=exustar -c -f maillog.star ./maillog*</command>
</screen>
            <caution>
              <title>I percorsi assoluti possono sovrascrivere i dati esistenti</title>
              <para>
                Se usi un percorso assoluto, come
                <filename>/var/log/maillog</filename>, quando decompatti l'archivio
                con <command>star -c
                -f</command>, i files verranno ripristinati nello stesso percorso in
                cui erano stati archiviati.  Il file <filename>maillog</filename> tenterà
                di scriverli in <filename>/var/log/maillog</filename>.  Potresti
                ricevere un avviso da <command>star</command> se i
                files che stanno per essere sovrascritti hanno una data più recente, ma non potrai
                contare su questo comportamento.
              </para>
              <para>
                Considera attentamente come costruire gli argomenti d'archiviazione.
              </para>
            </caution>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come posso installare la policy strict per default con il kickstart?
            </para>
          </question>
          <answer>
            <procedure>
              <step>
                <para>
                  Sotto la sezione <computeroutput>%packages</computeroutput>,
                  aggiungete <filename>selinux-policy-strict</filename>.
                </para>
              </step>
              <step>
                <para>
                  Sotto la sezione <computeroutput>%post</computeroutput>,
                  aggiungete quanto segue:
                </para>
<screen>
<computeroutput>lokkit -q --selinuxtype=strict
touch /.autorelabel</computeroutput>
</screen>
              </step>
            </procedure>
          </answer>
        </qandaentry>
        <qandaentry id="using-s-c-securitylevel" xreflabel="How to use system-config-securitylevel">
          <question>
            <para>
              Come abilito/disabilito la protezione &SEL; per uno specifico demone sotto
	      la policy targeted?
            </para>
          </question>
          <answer>
            <para>
              Usa <command>system-config-securitylevel</command> per controllare i
	      valori Booleani di specifici demoni. Per esempio, se ritieni
	      di aver bisogno di disabilitare &SEL; per Apache per eseguirlo correttamente nel tuo
	      ambiente, puoi disabilitare il valore in
	      <command>system-config-securitylevel</command>. Questo disattiva la
	      transizione della policy definita in
	      <filename>apache.te</filename>, lasciando rimanere <command>httpd</command>
	      sotto la regolare sicurezza Linux.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come faccio funzionare una directory utente <filename>public_html</filename>
              sotto &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Questo processo presume che hai abilitato le directories HTML pubbliche per gli utenti
              nella configurazione HTTP di Apache
              (<filename>/etc/httpd/conf/httpd.conf</filename>).  Questo processo
              copre solo il servizio di contenuti Web statici.  Per maggiori informazioni
              su &APACHE; e &SEL;, riferitevi a <ulink
                url="http://fedora.redhat.com/docs/selinux-apache-fc3/" />.
            </para>
            <procedure>
              <step>
                <para>
                  Se non l'hai già, avrai necessità di creare la
                  directory <filename>public_html</filename> e popolarla con
                  i files e le cartelle che dovranno essere servite.
                </para>
<screen>
<command>cd ~
mkdir public_html
cp /path/to/content ~/public_html</command>
</screen>
              </step>
              <step>
                <para>
                  A questo punto, <command>httpd</command> è configurato per servire
                  i contenuti, ma tu continuerai a ricevere un errore <computeroutput>403
                    forbidden</computeroutput>.  Questo poichè ad
                  <command>httpd</command> non è consentito di leggere i tipi
                  di sicurezza per le directory ed i files che vengono creati nelle
                  directory home degli utenti.  Per risolvere questo, cambiate i contesti
                  di sicurezza della cartella e dei suoi contenuti ricorsivamente usando
                  l'opzione <option>-R</option>:
                </para> 
<screen>
<command>ls -Z -d public_html/</command>
<computeroutput>drwxrwxr-x  auser    auser    user_u:object_r:user_home_t      public_html</computeroutput>
<command>chcon -R -t httpd_user_content_t public_html/
ls -Z -d public_html/</command>
<computeroutput>drwxrwxr-x  auser    auser    user_u:object_r:httpd_user_content_t public_html/</computeroutput>
<command>ls -Z public_html/</command>
<computeroutput>-rw-rw-r--  auser    auser    user_u:object_r:httpd_user_content_t bar.html
-rw-rw-r--  auser    auser    user_u:object_r:httpd_user_content_t baz.html
-rw-rw-r--  auser    auser    user_u:object_r:httpd_user_content_t foo.html</computeroutput>
</screen>
                <para>
                  Potrai notare qualche tempo dopo che il campo user, impostato
                  a <computeroutput>user_u</computeroutput>, è cambiato in
                  <computeroutput>system_u</computeroutput>.  Ciò non
                  avrà effetto su come funziona la policy targeted; il campo che conta
                  è il campo tipo.
                </para>
              </step>
              <step>
                <para>
                  Adesso sarai in grado di servire pagine web statiche. Se
                  continuerai ad avere errori, controlla di vedere che la Booleana che
                  abilita le home directories utente sia abilitata.  Questo può essere impostato
                  usando <application>system-config-securitylevel</application>,
                  sotto il tab <guilabel>&SEL;</guilabel> all'interno dell'area 
		  <guilabel>Modifica la Policy &SEL;</guilabel>, abilitando <computeroutput>Permetti
                  ad HTTPD di leggere le home directory</computeroutput>.  I cambiamenti avranno
                  effetto immediato.
                </para>
              </step>
            </procedure>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come disabilito &SEL; all'avvio?
            </para>
          </question>
          <answer>
            <para>
              Aggiungi <option>selinux=0</option> alla linea di comando del tuo kernel.
            </para>
            <caution>
              <title>Sta attento quando disabiliti &SEL;</title>
              <para>
                Sta veramente attento nell'usare questa opzione.  Se esegui l'avvio con
		<option>selinux=0</option>, ogni file che hai creato mentre &SEL; è
		disabilitato non avrà le informazioni di contesto &SEL;. Dovrai come minimo
		rietichettare il file system, ed è possibile che
                non sarai in grado di avviare il sistema con <option>selinux=1</option>,
                necessitando un avvio in modalità single-user per il ripristino.
              </para>
              <para>
                Come alternativa a <option>selinux=0</option>, prova ad usare
                <computeroutput>SELINUX=disabled</computeroutput> in
                <filename>/etc/selinux/config</filename>.
              </para>
            </caution>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come pongo l'enforcing on/off all'avvio?
            </para>
          </question>
          <answer>
            <para>
              Puoi specificare la modalità &SEL; usando il file di configurazione
	      <filename>/etc/sysconfig/selinux</filename>.
            </para>
<screen>
<computeroutput># This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=<replaceable>enforcing</replaceable>
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=<replaceable>targeted</replaceable>
</computeroutput>
</screen>
            <para>
              Impostando il valore su <computeroutput>enforcing</computeroutput> è
              uguale ad aggiungere <option>enforcing=1</option> alla linea di comando
	      quando avvii il kernel per attivare l'enforcing, mentre impostando
              il valore su <computeroutput>permissive</computeroutput> è come
              aggiungere <option>enforcing=0</option> per disattivare l'enforcing.
              Nota che il <emphasis role="bold">parametro della linea di comando del kernel
                prevarica il file di configurazione</emphasis>.
            </para>
            <para>
              Comunque, impostare il valore su
              <computeroutput>disabled</computeroutput> non è lo stesso di
              <option>selinux=0</option> nel parametro di avvio del kernel.  Invece di
              disabilitare pienamente &SEL; nel kernel, l'impostazione
	      <computeroutput>disabled</computeroutput> disabilita l'enforcing
	      e salta il caricamento della policy.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come disabilito temporaneamente la modalità di enforcing senza dover
	      riavviare?
            </para>
          </question>
          <answer>
            <para>
              Questa situazione solitamente insorge quando non puoi eseguire un operazione
              che viene prevenuta dalla policy.  Esegui il comando
              <command>setenforce 0</command> per disabilitare la modalità di enforcing in
	      tempo reale.  Quando hai terminato, esegui <command>setenforce 1</command>
              per riattivare l'enforcing.
            </para>
            <note>
              <title>E' richiesto il ruolo <computeroutput>sysadm_r</computeroutput>
	      </title>
              <para>
                Devi lanciare il comando <command>setenforce</command> con
		il ruolo <computeroutput>sysadm_r</computeroutput>; per farlo,
                usa il comando <command>newrole</command>. Alternativamente, se
                cambi su root usando <command>su -</command>, otterrai il ruolo
                <computeroutput>sysadm_r</computeroutput> automaticamente.
              </para>
            </note>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come pongo l'auditing alle system-call on/off all'avvio?
            </para>
          </question>
          <answer>
            <para>
              Aggiungi <option>audit=1</option> alla linea di comando del kernel per attivare
              l'auditing alle system-call.  Aggiungi <option>audit=0</option> alla
              linea di comando del kernel per disattivare l'auditing alle system-call.
            </para>
            <para>
              L'auditing alle system-call è attivo per impostazione predefinita. Quando è attivato,
	      fornisce informazioni sulle system-call che erano in esecuzione quando SELinux
	      genera un messaggio <computeroutput>denied</computeroutput>.  Questo
	      può essere d'aiuto quando fai il debugging della policy.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come disabilito temporaneamente l'auditing alle system-call senza dover
	      riavviare?
            </para>
          </question>
          <answer>
            <para>
	      Per farlo, eseguite <command>auditctl -e 0</command>.  Nota che non
	      non avrà effetto sull'auditing dei dinieghi SELinux AVC.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come ottengo informazioni sullo status della mia installazione &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Come root, esegui il comando <command>/usr/sbin/sestatus
                -v</command>.  Per maggiori informazioni, fa riferimento alla
	      pagina di manuale di <filename>sestatus(8)</filename>.
            </para>
          </answer>
        </qandaentry>
      </qandadiv>
      <qandadiv id="faq-div-resolving-problems">
        <title>Risoluzione dei problemi</title>
        <qandaentry>
          <question>
            <para>
              La mia applicazione non funziona come mi aspettavo e sto vedendo
	      dei messaggi <computeroutput>avc: denied</computeroutput>, come
	      risolvo?
            </para>
          </question>
          <answer>
            <para>
              Questo messaggio vuol dire che l'attuale policy SELinux non permette
	      all'applicazione di fare qualcosa. C'è un numero di ragioni
	      per cui ciò può succedere.
            </para>
            <para>
              Primo, uno dei files a cui l'applicazione prova ad accedere potrebbe
	      essere etichettato male.  Se il messaggio AVC si riferisce ad un file specifico,
	      controlla la sua etichetta corrente con <command>ls -alZ
                <replaceable>/path/to/file</replaceable></command>.  Se vi sembra
	      sbagliata, potrete provare ad usare <command>restorecon -v
                <replaceable>/path/to/file</replaceable></command>. Se hai
	      un gran numero di dinieghi relativi a files, potresti voler usare
              <command>fixfiles relabel</command>, o eseguire
              <command>restorecon</command> con l'opzione <option>-R</option>
              per rietichettare recursivamente il percorso di una directory.
            </para>
            <para>
              Altre volte, i dinieghi possono essere dovuti ad un cambiamento nella
	      configurazione del programma non ammesso dalla policy. Per esempio, se
	      vuoi far si che Apache ascolti anche sulla port 8800, questo richiederà un
	      cambiamento nella policy di sicurezza, <filename>apache.te</filename>. Vedi
	      <xref linkend="external-link-list"/> per maggiori informazioni sulla
	      scrittura delle policy.
            </para>
            <para>
	      Se hai difficoltà nel far funzionare un'applicazione specifica
	      come Apache, vedi <xref linkend="using-s-c-securitylevel"/> per
	      sapere come disabilitare l'enforcement solo per quell'applicazione.
            </para>
          </answer>
        </qandaentry>
<!--	<qandaentry>
	  <question>
	    <para>
	      I'm trying to upgrade from &FC; &FCVER; to &FC; &LOCALVER;, and
	      the installer keeps crashing with an &SEL; error.
	    </para>
	  </question>
	  <answer>
	    <para>
	      This occurs because Anaconda finds an existing
	      <filename>/selinux</filename> directory.  This problem has been
	      fixed in the latest version of the installer.
	    </para>
	    <para>
	      To work around this bug, either remove the directory just prior to
	      upgrading, <command>rm -rf /selinux</command>, or during an
	      install, switch to tty2 before packages start being upgraded, and
	      do <command>rm -rf /mnt/sysimage/selinux</command>.
	    </para>
	  </answer>
	</qandaentry>
-->
        <qandaentry>
          <question>
            <para>
              Ho installato &FC; su un sistema con una partizione
	      <filename>/home</filename> già esistente, ed ora non posso fare il log in.
            </para>
          </question>
          <answer>
            <para>
              La tua partizione <filename>/home</filename> non è etichettata
              correttamente.  Puoi facilmente risolvere questo problema in due modi.
            </para>
            <para>
              Se vuoi solamente rietichettare <filename>/home</filename>
	      ricorsivamente:
            </para>
<screen>
<command>/sbin/restorecon -v -R /home</command>
</screen>
            <para>
	      Se vuoi essere sicuro che non ci siano altri files non correttamente
	      rietichettati, puoi rietichettare l'intero filesystem:
            </para>
<screen>
<command>/sbin/fixfiles relabel</command>
</screen>
            <para>
              Dovrai avere installato il pacchetto <filename>policycoreutils</filename>
	      per usare <command>fixfiles</command>.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Dopo aver rietichettato la mia <filename>/home</filename> usando
	      <command>setfiles</command> o <command>fixfiles</command>, sarò
	      ancora in grado di leggere <filename>/home</filename> con un
	      sistema con &SEL; non abilitato?
            </para>
          </question>
          <answer>
            <para>
              Puoi leggere i files da una distribuzione senza &SEL;, o una con
	      &SEL; disabilitato. Comunque, i files creati dal sistema privo di &SEL;
	      non avranno un contesto di sicurezza, nemmeno l'avrà qualsiasi files che
	      rimuoverai e ricreerai. Questo potrebbe essere un problema con files tipo
	      <filename>~/.bashrc</filename>. Dovrai rietichettare la tua
	      <filename>/home</filename> quando ritornerai a &FC;.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come posso condividere directories usando NFS tra &FC; e sistemi
	      non-&SEL;
            </para>
          </question>
          <answer>
            <para>
              NFS supporta in modo trasparente molti tipi di file system, e può
	      essere usato per condividere directories tra sistemi &SEL; e non-&SEL;.
            </para>
            <para>
              Quando monti un file system non-&SEL; via NFS, per impostazione predefinita &SEL;
	      tratterà tutti i files nella condivisione come avessero contesto
	      <computeroutput>nfs_t</computeroutput>. Potrai prevaricare il contesto predefinito
	      impostandolo manualmente usando l'opzione
	      <option>context=</option>.  Ad esempio, questo farà
	      apparire i files nella directory NFS montata con un contesto di 
	      <computeroutput>system_u:object_r:tmp_t</computeroutput> in &SEL;:
            </para>
<screen>
<command>mount -t nfs -o context=system_u:object_r:tmp_t server:/shared/foo /mnt/foo</command>
</screen>

            <para>
              Quando &SEL; esporta un file system via NFS, i files creati avranno
	      il contesto della directory dove sono stati creati. In altre
	      parole, la presenza di &SEL; sul sistema remoto che ha montato la condivisione non ha
	      effetto sui contesti di sicurezza locali.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come posso creare un nuovo account utente Linux con la home directory utente
	      avente il contesto appropriato?
            </para>
          </question>
          <answer>
	    <!-- wtf was I trying to say here?
	    <para>
	      This depends on the policy you are running.  A very restrictive
	      policy requires you to change
	    </para>
	    -->
            <para>
              Puoi creare il nuovo utente con il comando standard
	      <command>useradd</command>. Prima dovrai diventare root;
	      sotto la policy strict avrai bisogno di cambiare al ruolo
	      <computeroutput>sysadm_r</computeroutput> usando
	      <computeroutput>newrole -r sysadm_r</computeroutput>
              Per la policy targeted, non avrai bisogno
	      di cambiare ruolo, rimanendo in
              <computeroutput>unconfined_t</computeroutput>:
            </para>
<screen>
<command>su - root
id -Z
root:system_r:unconfined_t
useradd auser
ls -Z /home
drwx------  auser   auser   root:object_r:user_home_dir_t /home/auser</command>  
</screen>
            <para>
              Il contesto iniziale per una nuova directory utente ha un identità di
              <computeroutput>root</computeroutput>.  In seguito la rietichettatura del
              file system cambierà l'identità a
              <computeroutput>system_u</computeroutput>.  Queste sono funzionalmente
              le stesse poichè il ruolo ed il tipo sono identici
              (<computeroutput>object_r:user_home_dir_t</computeroutput>.)
            </para>
          </answer>
        </qandaentry>
<!--        <qandaentry>
          <question>
            <para>
              Tutte le altre documentazioni su &SEL; affermano che il
              comando <command>su</command> cambierà solamente l'identità Linux
              e <emphasis>non</emphasis> il ruolo di sicurezza.
            </para>
          </question>
          <answer>
            <para>
              Il team di sviluppo di &FC; ha preso una direzione leggermente differente
              rispetto alla pratica di &SEL; esistente.  Le transizioni del contesto di
	      sicurezza adesso sono integrate in <command>su</command> via
              <computeroutput>pam_selinux</computeroutput>.  Questo semplifica
              enormemente l'uso del sistema.
            </para>
            <para>
              In pratica, è come combinare il tradizionale
	      <command>su</command> con il <command>newrole</command> di &SEL;,
              in un singolo passo invece di due.
            </para>
            <para>
              Altre forme di cambio d'identità di Linux/<trademark
                class="registered">UNIX</trademark>, per esempio
              <command>setuid(2)</command>, non causano un cambio d'identità
	      &SEL;.
            </para>
          </answer>
        </qandaentry>-->
        <qandaentry>
          <question>
            <para>
              Sto avendo alcune difficoltà con errori <command>avc</command> che riempiono
	      i miei logs per un programma in particolare. Come scelgo escluderne l'audit
	      d'accesso?
            </para>
          </question>
          <answer>
            <para>
              Per esempio, se volevi escludere l'audit di
	      <command>dmesg</command>,
	      potresti inserire questa riga nel tuo file
              <filename>/etc/selinux/targeted/src/policy/dmesg.te</filename>
            </para>
<screen>
<computeroutput>dontaudit dmesg_t userdomain:fd { use };</computeroutput>
</screen>
            <para>
              Questo eliminerà l'output d'errore dal terminale per tutti
	      gli userdomains (<varname>user</varname>, <varname>staff</varname>  e
	      <varname>sysadm</varname>).
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Anche avviando in modalità permissive, ho un gran numero di
	      messaggi <computeroutput>avc denied</computeroutput>.
            </para>
          </question>
          <answer>
            <para>
              In modalità non-enforcing, avrai
	      <emphasis>più</emphasis> messaggi che in modalità enforcing. Ciò
	      avviene poichè il kernel sta loggando ogni diniego di accesso come fossi
	      in modalità enforcing. Siccome non hai restrizioni, puoi
	      fare più cose, che danno come risultato più log di
	      diniego.
            </para>
            <para>
              Per esempio, se un applicazione eseguita sotto la modalità enforcing ha
	      il divieto provare a leggere un certo numero di files in una directory, essa
	      verrà fermata all'inizio dell'azione. In
	      modalità non-enforcing, l'applicazione non viene fermata dal traversare
	      l'albero della directory, e riceverà un messaggio di diniego per ogni
	      file letto nella directory.
            </para>
          </answer>
        </qandaentry>
	<!-- Need to modify this to work with new policy sources, or find
	a better method than modifying all source
        <qandaentry>
          <question>
            <para>
              Ho un particolare diniego di premesso solo quando &SEL; è in modalità
	      enforcing, ma non vedo nessun messaggio di audit in
	      <filename>/var/log/audit/audit.log</filename>. Come posso identificare la
	      causa di questi dinieghi silenziosi?
            </para>
          </question>
          <answer>
            <para>
              La ragione più comune per un diniego silenzioso è quando la policy
	      contiene un esplicita regola di <computeroutput>dontaudit</computeroutput>
	      per sopprimere i messaggi di audit. La
	      regola di <computeroutput>dontaudit</computeroutput> è spesso usata
	      quando un segnale di diniego benigno riempie gli audit logs.
            </para>
            <para>
              Per vedere il tuo particolare diniego, dovrai abilitare
	      l'auditing di tutte le regole <computeroutput>dontaudit</computeroutput>:
            </para>
<screen>
<command>cd /etc/selinux/targeted/src/policy 
make enableaudit
make load</command>
</screen>
            <caution>
              <title>Abilitare l'output di <computeroutput>dontaudit</computeroutput>
                è verboso</title>
              <para>
                Abilitare l'auditing di tutte
		le regole <computeroutput>dontaudit</computeroutput> produrrà
		un gran numero di informazioni audit, molte delle quali
		irrilevanti per il tuo diniego.
              </para>
              <para>
                Usa questa tecnica solo se stai cercando un
		messaggio di diniego che sembra avvenire silenziosamente.
		Probabilmente desidererai ri-abilitare
		le regole <computeroutput>dontaudit</computeroutput> il più presto
		possibile.
              </para>
            </caution>
            <para>
              Per ri-abilitare le regole <computeroutput>dontaudit</computeroutput>,
	      fai così:
            </para>
<screen>
<command>cd /etc/selinux/targeted/src/policy
make clean 
make load</command>
</screen> -->
<!-- commented out just in case it needs to be rewritten and included:
         <para>
           Another reason for getting silent denials is on an
           <function>exec</function> when a domain transition would
           normally occur, but the new domain is not authorized for
           the current role.
         </para>
         <para>
           At present, these errors are only logged when &SEL; is
           running in permissive mode.  This has been fixed in the
           upstream Linux kernel so that it will log an audit message.
           The current &FC; test kernel does not yet include this
           change.
         </para>
from ssmalley:

The Fedora kernel now includes the change, so the transition failures
now show up as security_compute_sid messages (also handled via the audit
framework).  Example message below for a policy that failed to authorize
sysadm_r for system_chkpwd_t (an error from an earlier policy that has
been fixed):

audit(1083674459.837:0): security_compute_sid:  invalid context root:sysadm_r:system_chkpwd_t for scontext=root:sysadm_r:newrole_t tcontext=system_u:object_r:chkpwd_exec_t tclass=process

          </answer>
        </qandaentry>
-->
        <qandaentry>
          <question>
            <para>
              Perchè non vedo l'output quando eseguo certi demoni in modalità
	      debug o interattiva?
            </para>
          </question>
          <answer>
            <para>
              &SEL; disabilita intenzionalmente l'accesso ai dispositivi tty per impedire
              ai demoni la comunicazione verso il terminale di controllo.
              Questa comunicazione è un potenziale buco nella sicurezza poichè questi
              demoni possono inserire comandi nei terminali di controllo.  Un
	      programma bacato o compromesso potrebbe causare seri problemi con
	      questo.
            </para>
            <para>
              Ci sono alcuni modi per permetterti di catturare lo STDOUT da questi demoni.  Un
              metodo è quello di eseguire il pipe dell'output al comando cat.
            </para>
<screen>
<command>snmpd -v | cat</command>
</screen>
            <para>
              Quando fai il debug di un demone, potresti voler disattivare la transizione
              del demone al suo dominio specifico.  Puoi farlo usando
              <application>system-config-securitylevel</application> o
              <command>setsebool</command> dalla linea di comando.
            </para>
            <para>
              Un opzione finale è quella di disattivare la modalità di enforcing durante il debug.
	      Puoi farlo con <command>setenforce 0</command>, usando
              <command>setenforce 1</command> per ri-abilitare &SEL; quando hai
              terminato il debug.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Quando eseguo un upgrade del pacchetto delle policy (per esempio, usando
	      <command>yum</command>), cosa succede con la policy; è
	      automaticamente aggiornata?
            </para>
          </question>
          <answer>
            <para>
              Le policy si ricaricano da sole quando il pacchetto è aggiornato. Questo sostituisce
	      il comando manuale <command>make load</command>.
            </para>
            <para>
              In certe situazioni, può essere necessario rietichettare il file
	      system. Questo potrebbe accadere per fissare gli errori di &SEL; qualora i
	      contesti dei files divenissero invalidi, o quando l'update della policy
	      fa dei cambiamenti ai <varname>file_contexts</varname>.
            </para>
            <para>
              Dopo aver rietichettato il filesystem, un <command>reboot</command> non
	      è necessario, ma è utile per assicurare che ogni processo e programma
	      sia eseguito nel dominio appropriato. Questo è altamente dipendente dai
	      cambiamenti nella policy aggiornata.
            </para>
            <para>
              Per rietichettare, usa il
	      comando <command>fixfiles</command> o avvantaggiati del
	      meccanismo <filename>/.autorelabel</filename>:
            </para>
<screen>
<command>fixfiles relabel
reboot</command>
</screen>
<screen>
<command>touch /.autorelabel
reboot</command>
</screen>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Se la policy rilasciata con il pacchetto di un applicazione cambia in
	      modo da richiedere la rietichettatura, potrà RPM gestire la rietichettatura dei files
	      posseduti dal pacchetto?
            </para>
          </question>
          <answer>
            <para>
              Si. I contesti di sicurezza per i files posseduti dal pacchetto sono
	      immagazzinati nei dati dell'header del pacchetto. I contesti dei files
	      sono impostati direttamente dopo la copia <command>cpio</command>, appena i
	      files del pacchetto sono poggiati sul disco.
            </para>
          </answer>
        </qandaentry>
	<!-- Source package doesn't exist any more
	Is there something similar now?
        <qandaentry>
          <question>
            <para>
              Che relazioni intercorrono fra il pacchetto policy e policy 
	      source?
            </para>
          </question>
          <answer>
	  -->
            <!--
              thanks to "Gene C." <czar czarc net> for authoring the
              original answer in
              http://www.redhat.com/archives/fedora-test-list/2004-April/msg00755.html
            -->
	    <!--
            <para>
              Un pacchetto policy come
	      <filename>selinux-policy-targeted</filename> è un requisito per
	      un installazione &SEL; funzionante, mentre un pacchetto sorgente come
	      <filename>selinux-policy-targeted-sources</filename> è
	      richiesto se vuoi modificare la policy predefinita.
            </para>
            <para>
              Il pacchetto policy ha i files minimi necessari per definire
	      la policy di sicurezza di &SEL;. Viene tenuto di ridotte dimensioni
	      per avere minimi requisiti di installazione.
            </para>
            <para>
              Il pacchetto dei sorgenti della policy contiene le definizioni sorgente in
	      <filename>/etc/selinux/<replaceable>policyname</replaceable>/src/policy</filename>
	      che sono richiesti per creare i files
	      <filename>/etc/selinux/<replaceable>policyname</replaceable>/contexts/*</filename>
	      e
	      <filename>/etc/selinux/<replaceable>policyname</replaceable>/policy/policy.<replaceable>version</replaceable></filename>.
	      <replaceable>version</replaceable> è il numero di versione della
	      policy. </para>
            <para>
              La scelta di quali pacchetti installare è basata sul tipo di
	      installazione. Se intendi usare solo la configurazione di sicurezza predefinita
	      dagli sviluppatori  &FC;, avrai bisogno solo del pacchetto
	      policy. Se vorrai adattare la tua policy di sicurezza in qualsiasi
	      modo, o vorrai eseguire <command>setools</command>, avrai bisogno
	      di installare il pacchetto di sorgenti della policy.
            </para>
            <para>
              Installando o aggiornando i pacchetti della policy, la nuova policy
	      verrà caricata non appena installati i nuovi files. In modo analogo,
	      installando o aggiornando il pacchetto di sorgenti della policy ricreerà sia
	      il file <filename>policy.<replaceable>version</replaceable></filename>
	      che il file <filename>file_contexts</filename>, quindi
	      verranno ricaricati come policy attuale effettiva.
            </para>
	    -->

            <!-- not sure if currently still an issue, or how to rephrase
                 <caution>
                 <title>Caution</title>
                 <para>
                 If you have locally modified any of the policy sources, you want to be cautious about updating <filename>policy</filename> or <filename>policy-sources</filename>.  Make 
                 updating policy and/or policy-sources can have
                 interesting (but not particularly desirable)
                 effects. See
                 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=118604
                 </para>
                 </caution>
            -->
	  <!--
          </answer>
        </qandaentry>
	-->
        <qandaentry>
          <!-- 
            http://www.redhat.com/archives/fedora-selinux-list/2004-May/msg00061.html
          -->
          <question>
            <para>
              Perchè le policy binarie (es.
              <filename>/etc/selinux/<replaceable>policyname</replaceable>/policy/policy.<<replaceable>version</replaceable>></filename> 
	      distribuite con Fedora e quelle compilate da me hanno differenti dimensioni
	      e md5sums?
            </para>
          </question>
          <answer>
            <para>
              Quando installi un pacchetto policy, i files binari pre-compilati della policy
	      sono inseriti direttamente in <filename>/etc/selinux</filename>.
	      I differenti ambienti di compilazione creeranno files finali che hanno
	      differenti dimensioni, md5sums.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
               I nuovi pacchetti policy potranno disabilitare il mio sistema?
            </para>
          </question>
          <answer>
            <para>
              C'è la possibilità che cambiamenti nei pacchetti della policy o nella
	      policy rilasciata con un pacchetto applicativo possano causare errori,
	      più dinieghi, o altri comportamenti sconosciuti. Per rimediare, puoi
	      scoprire quale pacchetto causa il problema ripristinando policy e pacchetti
	      applicativi uno alla volta. Se non vuoi tornare
	      ad una pacchetto precedente, i files di configurazione della vecchia
	      versione sono salvati con l'estensione di <filename>.rpmsave</filename>.
	      Assicurati di consultare le mailing lists, bugzilla, ed IRC per aiutarti
	      ad uscire dal problema. Se sei capace, scrivi un fix o una policy
	      per risolvere il problema.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come posso aiutare a scrivere una policy?
            </para>
          </question>
          <answer>
            <para>
              Il tuo aiuto è veramente apprezzato.
	      <itemizedlist>
                <listitem>
		  <para>
	            Puoi cominciare partecipando alla
                    &FED; &SEL; mailing list, <ulink
                      url="mailto:fedora-selinux-list at redhat.com">fedora-selinux-list at redhat.com</ulink>; 
                    puoi sottoscriverti e leggere gli archivi su <ulink
                      url="http://www.redhat.com/mailman/listinfo/fedora-selinux-list">http://www.redhat.com/mailman/listinfo/fedora-selinux-list</ulink>. 
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Le UnOfficial FAQ hanno alcune informazioni generiche su come scrivere
		    le policy (<ulink
                      url="http://sourceforge.net/docman/display_doc.php?docid=14882&group_id=21266#BSP.1">http://sourceforge.net/docman/display_doc.php?docid=14882&group_id=21266#BSP.1</ulink>). 
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Un'altra nuova risorsa è il Writing SE Linux policy HOWTO (<ulink
                      url="https://sourceforge.net/docman/display_doc.php?docid=21959&group_id=21266">https://sourceforge.net/docman/display_doc.php?docid=21959&group_id=21266</ulink>).
                  </para>
                </listitem>
              </itemizedlist>
	      Inoltre, da &FC; &LOCALVER; la policy è basata sulla <xref linkend="faq-entry-whatis-refpolicy"/>,
	      potresti dare un occhiata alla documentazione sulla sua pagina di progetto.
            </para>
            <para>
              Il meglio su cui puoi puntare è osservare i files della policy in
              <filename>/usr/share/doc/selinux-policy-<replaceable>>version<</replaceable></filename> 
	      che ti mostrano un esempio di policy.
            </para>
	    <para>
	      Se vuoi scrivere un nuovo dominio di policy, dovrai installare il
	      pacchetto selinux-policy-devel. Questo porrà i files d'interfaccia 
	      della reference policy nella directory
	      <filename>/usr/share/selinux/refpolicy</filename>.
            </para>
	    <para>
	      C'è anche uno strumento li che potrà aiutarti a cominciare. Usa lo
	      strumento <command>policygentool</command> per generare i tuoi files
	      <filename>te</filename>, <filename>fc</filename>
	      ed <filename>if</filename>.
	      Questo strumento accetta due parametri: il nome del modulo della policy
	      (mydaemon) ed il percorso completo dell'eseguibile
	      (<filename>/usr/sbin/mydaemon</filename>). Ciò creerà tre
	      files <filename>mydaemon.te</filename>,
	      <filename>mydaemon.fc</filename> e
	      <filename>mydaemon.if</filename>.
	      Dopo aver generato i files diella policy,
	      usa il Makefile fornito,
	      <filename>/usr/share/selinux/refpolicy/Makefile</filename>,
	      e compila un pacchetto policy (<filename>mydaemon.pp</filename>). Ora
	      puoi caricare il modulo della
	      policy, usando <command>semodule</command>, e rietichettando
	      l'eseguibile usando
	      <filename>restorecon</filename>. Siccome hai una policy
	      estremamente limitata per il tuo
	      eseguibile, SELinux ti impedirà di farci molto. Così sarà necessario
	      attivare la modalità permissive, quindi usare l'init script per avviare
	      il daemon. Ora potrai cominciare a collezzionare i messaggi avc. Potrai usare
	      <command>audit2allow</command> per tradurre i messaggi avc in
	      regole allow e cominciare ad
	      aggiornare il tuo file <filename>mydaemon.te</filename>. Dovrai
	      cercare quindi le macro
	      di interfaccia nella directory <filename>/etc/selinux/refpolicy/include</filename>
	      ed usarle direttamente, quando possibile, al posto di
	      allow rules.
	      Se vuoi ulteriori esempi di polcy, puoi sempre installare il
	      selinux-policy src rpm, che contiene tutte i
	      files policy te per la policy reference.
	    </para>
<screen>
<command># /usr/share/selinux/refpolicy/policygentool mydaemon /usr/sbin/mydaemon
# make -f /usr/share/selinux/refpolicy/Makefile
m4 /usr/share/selinux/refpolicy/include/all_perms.spt /usr/share/selinux/refpolicy/include/loadable_module.spt /usr/share/selinux/refpolicy/include/misc_macros.spt 
...
/usr/share/selinux/refpolicy/include/obj_perm_sets.spt mydaemon.fc > tmp/mydaemon.mod.fc
Creating targeted mydaemon.pp policy package
/usr/bin/semodule_package -o mydaemon.pp -m tmp/mydaemon.mod -f tmp/mydaemon.mod.fc
rm tmp/mydaemon.mod.fc tmp/mydaemon.mod
# semodule -i mydaemon.pp
# restorecon -v /usr/sbin/mydaemon
restorecon reset /usr/sbin/mydaemon context user_u:object_r:sbin_t->system_u:object_r:mydaemon_exec_t
# setenforce 1
# service mydaemon restart</command>
</screen>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              La mia console è inondata da messaggi, come li fermo?
            </para>
          </question>
          <answer>
            <para>
              Per riottenere il controllo, disattiva i messaggi del kernel nella console
	      usando <command>dmesg -n 1</command>.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Posso provare la policy predefinita senza installare il pacchetto
	      di sorgenti della policy?
            </para>
          </question>
          <answer>
            <para>
              Puoi provare la policy predefinita di &SEL; installando solamente
	      i pacchetti <filename>selinux-policy-<replaceable>policyname</replaceable></filename>
	      e <filename>policycoreutils</filename>. Senza il
	      pacchetto dei sorgenti della policy installato, il comando <command>fixfiles</command>
	      automatizzerà la rietichettatura del file system.
            </para>
            <para>
              Il comando <command>fixfiles relabel</command> è l'equivalente
	      di <command>make relabel</command>. Durante la rietichettatura,
	      cancellerà tutti i files in <filename>/tmp</filename>,
	      ripulendo i files che potrebbero avere vecchie etichette di contesto.
            </para>
            <para>
              Altri comandi sono <command>fixfiles check</command>, che controlla
	      i files con etichette errate, e <command>fixfiles restore</command>,
	      che fissa i files mal etichettati ma non cancella i files in
	      <filename>/tmp</filename>.  <command>fixfiles</command> non
	      accetta una lista di directories come argomento, il suo scopo è
	      rietichettare l'intero filesystem.  Se hai bisogno di rietichettare
	      un percorso specifico di directory, usa <command>restorecon</command>.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Sto avendo difficoltà nel far funzionare un applicazione KDE sotto &SEL;.
            </para>
          </question>
          <answer>
            <para>
              Gli eseguibili KDE appaiono sempre come <command>kdeinit</command>, che
	      limita ciò che può essere fatto con la policy di &SEL;. Questo perchè ogni
	      applicazione KDE viene eseguita nel dominio per <command>kdeinit</command>.
            </para>
            <para>
              I problemi spesso vengono fuori quando si installa &SEL; perchè non è
	      possibile rietichettare <filename>/tmp</filename> e
	      <filename>/var/tmp</filename>.  Non c'è un buon metodo di
	      determinare quale file dovrebbe avere quale contesto.
            </para>
            <para>
              La soluzione è quella di eseguire un pieno log out da KDE e rimuovere tutti i files
	      temporanei di KDE:
            </para>
<screen>
<command>rm -rf	/var/tmp/kdecache-<replaceable><username></replaceable>
rm -rf /var/tmp/<replaceable><other_kde_files></replaceable></command>
</screen>
            <para>
              Al prossimo login, il problema dovrebbe essere risolto.
            </para>
          </answer>
        </qandaentry>
	<qandaentry>
	  <question>
	    <para>
	      Perchè <computeroutput>SELINUX=disabled</computeroutput> non
	      funziona per me?
	    </para>
          </question>
          <answer>
            <para>
              Fa attenzione agli spazi vuoti nel file
              <filename>/etc/sysconfig/selinux</filename>.  Il codice è molto
              sensibile agli spazi vuoti, anche ai tabulatori.
            </para>
          </answer>
        </qandaentry>
      </qandadiv>
      <qandadiv id="faq-div-deploying-selinux">
        <title>Implementare &SEL;</title>
        <qandaentry>
          <question>
            <para>
              Che file systems posso usare per &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Il file system deve supportare le etichette
              <computeroutput>xattr</computeroutput> nel giusto
              namespace <parameter>security.*</parameter>.  Oltre a
	      ext2/ext3, XFS ha recentemente aggiunto il supporto per le necessarie
	      etichette.
            </para>
	    <para>
	      Nota che il supporto SELinux XFS non funziona nella serie di kernel
	      2.6.14 e 2.6.15, ma è stato ripristinato (un work-around)
	      nella 2.6.16.  Perciò, assicurati che il tuo kernel includa questo fix se
	      scegli di usare XFS.
	    </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Come incide &SEL; sulle prestazioni del sistema?
            </para>
          </question>
          <answer>
            <para>
              Questa è una variabile difficile da quantificare, ed è pesantemente
	      dipendente dalla grandezza del sistema su cui &SEL; sta girando. L'ultima
	      volta che le prestazioni sono state misurate, l'incidenza era circa del 7% per
	      codice completamente non raffinato. I cambiamenti da allora sembrerebbero essere
	      peggiorati in alcuni casi, tipo nel networking. Le performance
	      e l'affinamento di SELinux sono una priorità del team di sviluppo.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Di che tipo di implementazioni/applicazioni/sistemi, etc. dovrò tener conto
	      per l'uso con  &SEL;?
            </para>
          </question>
          <answer>
            <para>
              Inizialmente, &SEL; servirà ai server affacciati su Internet che eseguono
	      poche, funzioni specializzate, dove è critico mantenere
	      una sicurezza estremamente stretta. Una simile macchina è tipicamente
	      priva di software extra e servizi, ed esegue un servizio
	      molto mirato od un gruppo di servizi, come un Web server o un mail
	      server.
            </para>
            <para>
              In questi servers di nicchia, potrai bloccare la policy molto strettamente.
	      Questo sarà facilitato dal piccolo numero di interazioni con
	      gli altri componenti. In modo simile, una macchina dedicata che
	      esegue un applicazione specialistica di terze parti sarà un buon candidato.
            </para>
            <para>
              In futuro, &SEL; è orientato a tutti gli ambienti. Per questo,
	      la comunità e gli <abbrev>ISV</abbrev>s
	      (<firstterm>independent software vendors</firstterm>) dovranno
	      lavorare con gli sviluppatori &SEL; per produrre le policy necessarie. Finora,
	      è stata scritta una <firstterm>strict policy</firstterm> molto restrittiva,
	      analogamente ad una <firstterm>targeted policy</firstterm> che mira
	      a specifici, demoni vulnerabili.
            </para>
          </answer>
        </qandaentry>
        <qandaentry>
          <question>
            <para>
              Che effetto ha &SEL; sulle applicazioni di terze parti?
            </para>
          </question>
          <answer>
            <para>
              Uno degli scopi nell'implementare la policy targeted di &SEL; in &FC; è
	      quello di permettere ad applicazioni di terze parti di funzionare senza modifiche. Questo
	      funziona perchè la targeted policy è trasparente a quelle
	      applicazioni che non prova a controllare e che ricadono
	      nella sicurezza di Linux standard.  Queste applicazioni non saranno
	      eseguite in maniera extra sicura.  Una policy deve essere scritta per
	      far si che queste applicazioni siano protette dal MAC.
            </para>
            <para>
              Ci sono talmente tante variazioni nelle applicazioni di terze parti che è
	      impossibile predire come si comporterebbero con &SEL;, anche
	      eseguendo la targeted policy. Le problematiche insorgenti possono talvolta essere
	      fissate nella policy.  Puoi capitare che &SEL; ti mostri problemi
	      di sicurezza con la tua applicazione che non sapevi di avere, richiedendo
	      una modifica dell'applicazione per poter funzionare sotto  &SEL;.
            </para>
            <para>
              Un importante valore che i testers ed utenti di &FC; porteranno alla
	      comunità è l'estensivo testing di applicazioni di terze parti. Tenendo
	      questo a mente, sei pregato di riportare le tue esperienze sull'appropriata
	      mailing list (<ulink
                url="mailto:fedora-selinux-list at redhat.com">fedora-selinux-list at redhat.com</ulink>)
	      per discuterne.
            </para>
	    <!-- Add policy modules section -->
	    <!-- Add managed policy section -->
          </answer>
        </qandaentry>
      </qandadiv>
    </qandaset>
  </section>
</article>




More information about the Fedora-docs-commits mailing list