Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > dca483b59ba61f3fa092de932ddd570e > files > 127

nuface-2.0.14-2mdv2009.1.i586.rpm

<?xml version='1.0' encoding='iso-8859-1'?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book><title>NuFace : Manuel de l'administrateur</title>
  <bookinfo>
    <author>
      <firstname>Vincent</firstname>
      <surname>Deffontaines</surname>
      <email>vincent.deffontaines@inl.no_spam.fr</email>
    </author>
    <copyright>
      <year>2005</year>
      <holder>INL</holder>
    </copyright>
    <revhistory>
       <revision>
	<revnumber>0.1</revnumber>
	<date>2005/03/22</date>
	<revdescription>
	  <para>Première version</para>
	</revdescription>
      </revision>
       <revision>
	<revnumber>0.1.1</revnumber>
	<date>2005/08/10</date>
	<revdescription>
	  <para>Ajout des champs "Modified" et "Comment". Quelques corrections.
          Première traduction complète en anglais.</para>
	</revdescription>
      </revision>
       <revision>
	<revnumber>0.1.2</revnumber>
	<date>2005/12/31</date>
	<revdescription>
	  <para>Ajout de la notion de groupe d'Acls</para>
	</revdescription>
      </revision>
      <revision>
	<revnumber>0.1.3</revnumber>
	<date>2006/02/10</date>
	<revdescription>
	  <para>Ajout des règles de nat</para>
	</revdescription>
      </revision>
      <revision>
        <revnumber>0.2.1</revnumber>
        <date>2007/02/15</date>
        <revdescription>
          <para>Documentation complétée pour nuface 1.2 et L7-filter</para>
        </revdescription>
      </revision>
     <revision>
        <revnumber>0.2.2</revnumber>
        <date>2007/03/06</date>
        <revdescription>
          <para>Documentation du mode standard et des implications d'une acl sans réseau</para>
        </revdescription>
      </revision>
     <revision>
        <revnumber>0.3</revnumber>
        <date>2007/08/07</date>
        <revdescription>
          <para>Adaptation de la documentation au schéma d'architecture de Nuface 2.0</para>
        </revdescription>
      </revision>
    </revhistory>
    <legalnotice>
      <para>
       Cette documentation est distribuée selon les termes de la Free Documentation
      Licence. Avant de lire/copier/utiliser cette documentation, veuillez lire
      la Licence et l'accepter. Voir <ulink url="http://www.gnu.org/licenses/licenses.html#FDL"><citetitle>http://www.gnu.org/licenses/licenses.html#FDL</citetitle></ulink>
      </para>
    </legalnotice>
  </bookinfo>
    <chapter><title>Présentation générale de Nuface</title>
    <para>
L'interface Nuface permet de configurer intuitivement et efficacement un firewall disposant des extensions de filtrage NuFW (EdenWall).
La philosophie de travail utilise les objets suivants :
<itemizedlist>
  <listitem><para>auths : Les objets d'authentification qui peuvent être utilisés pour caractériser l'utilisateur à la source d'une connexion, avec NuFW.
  </para> </listitem>
  <listitem><para>ressources : L'ensemble des objets réseaux (sources et destinations) gérés par le pare-feu. Par défaut, lorsque vous ouvrez un fichier dans Nuface, l'interface crée quelques objets par défaut, qui correspondent à la topologie du réseau.</para> </listitem>
  <listitem><para>protocoles : Servent à définir divers paramètres techniques caractérisant une connexion.</para> </listitem>
  <listitem><para>acls : chaque acl utilise un élément de chaque classe définie ci-dessus. Une seule acl peut permettre de générer une ou plusieurs règles de filtrage sur le firewall.</para> </listitem>
  <listitem><para>applications : ces éléments ne sont disponibles que pour un
  pare-feu NuFW. Ces objets permettent de réaliser un filtrage selon
  l'application utilisée par le sujet de la connexion.</para></listitem>
  <listitem><para>os : ces éléments ne sont disponibles que pour un
  pare-feu NuFW. Très semblables aux objets de type <computeroutput>applications</computeroutput>, ils
  permettent de réaliser un filtrage selon le système d'exploitation utilisé.</para></listitem>
  <listitem><para>durées : Permet de préciser des restrictions
  temporelles dans les ACLs, portant sur la durée maximale d'une connexion. Utilisable uniquement sur un pare-feu NuFW, avec
  des règles authentifiées.</para></listitem>
  <listitem><para>periodicités : Permet de préciser des restrictions
  temporelles dans les ACLs, portant sur l'heure et le jour autorisés pour réaliser la connexion. Utilisable uniquement
  sur un pare-feu NuFW, avec des règles authentifiées.</para></listitem>
  <listitem><para>règles l7 : permet de réaliser une inspection des flux, au
  moyen de l7-filter, un patch pour le noyau Linux, disponible à l'URL <ulink
  url="http://l7-filter.sourceforge.net"><citetitle>http://l7-filter.sourceforge.net</citetitle></ulink>.
  Si votre pare-feu supporte cette fonctionnalité, positionnez
  <screen>$l7_firewall=true;</screen> dans le fichier de configuration de
  nuface.</para></listitem>
  <listitem><para>éléments de travail : des éléments temporaires, utilisés pour manipuler et copier facilement les entités gérées par l'interface.</para> </listitem>
</itemizedlist>


</para>
  </chapter>
  <chapter><title>Les éléments de l'interface</title>
    <para>L'interface de configuration du parefeu est constituée de plusieurs
    sections, dont la fonction est décrite ici.</para>
    <section><title>Index</title>
      <para>La page nommée Index permet de gérer les fichiers de configuration
      générés avec Nuface, et de réaliser plusieurs tâches systèmes :
        <itemizedlist>
          <listitem><para>Charger un fichier de configuration existant</para></listitem>
          <listitem><para>Sauver la configuration dans un fichier, en écrasant
          un fichier existant ou en créant un nouveau fichier</para></listitem>
          <listitem><para>Supprimer un fichier de configuration</para></listitem>
          <listitem><para>Nettoyer la session : cette option vide toutes les
          modifications réalisées. Tous les objets créés sont effacés.</para></listitem>
          <listitem><para>Règles de filtrage : Permet de générer les fichiers
          des règles de filtrage</para></listitem>
          <listitem><para>Recharger les règles du parefeu : met en production
          les règles générées par l'option précédente. Deux options sont
          proposées :
            <itemizedlist>
              <listitem><para>nufw : charge les règles authentifiantes</para></listitem>
              <listitem><para>standard : charge les règles de secours
              (non-authentifiantes)</para></listitem>
            </itemizedlist>
          </para></listitem>
        </itemizedlist>
	<remark>Le mode standard est obtenu en substituant les règles authentifiés par des règles d'acceptation.</remark>
      </para>
    </section>
    <section><title>Acls</title>
      <para>La page de gestion des droits d'accès et permissions, qui exploite
      des objets générés par les autres pages :
        <itemizedlist>
          <listitem><para>protocoles : la page de définition des protocoles</para></listitem>
          <listitem><para>auths : la page de définition des objets authentifiants à la source des connexions</para></listitem>
          <listitem><para>sujets : la page de gestion des objets réseaux, à la source
          des connexions. Depuis Nuface 2.0, cette page est la même que la page des ressources.</para></listitem>
          <listitem><para>ressources : la page de gestion des objets réseaux
          protégés par le parefeu</para></listitem>
          <listitem><para>applications : pour un pare-feu authentifiant
          uniquement, et pour une ACL avec un sujet comportant un groupe NuFW,
          permet de filtrer par application.</para></listitem>
          <listitem><para>OS : pour un pare-feu authentifiant
          uniquement, et pour une ACL avec un sujet comportant un groupe NuFW,
          permet de filtrer par système d'exploitation.</para></listitem>
          <listitem><para>durée : pour un pare-feu authentifiant
          uniquement, et pour une ACL avec un sujet comportant un groupe NuFW,
          permet de limiter la durée de vie d'une connexion.</para></listitem>
          <listitem><para>périodicité : pour un pare-feu authentifiant
          uniquement, et pour une ACL avec un sujet comportant un groupe NuFW,
          permet de spécifier des critères (heure, jour de la semaine) sur laquelle
          faire porter la semaine.</para></listitem>
        </itemizedlist>
        Cette page ne fonctionne que si un fichier valide d'acls a été
        préalablement chargé au moyen de la page d'Index.
      </para>
      <para>Cette page permet :
        <itemizedlist>
          <listitem><para>De modifier l'ordre des acls. Dans la vue par réseaux, plus une acl est
          haute, plus cette acl a la primeur sur celles qui suivent. En
          d'autres termes, si deux acls se contredisent, celle qui est le plus
          haut est appliquée.</para></listitem>
          <listitem><para>D'éditer les acls, en changeant :
            <itemizedlist>
              <listitem><para>Le nom de l'acl (champ informatif)</para></listitem>
              <listitem><para>Le (groupe de) protocole(s) sur lequel l'acl porte</para></listitem>
              <listitem><para>Le (groupe de) sujet(s) concerné par l'acl</para></listitem>
              <listitem><para>Le (groupe de) ressource(s) protégé par l'acl</para></listitem>
              <listitem><para>La décision appliquée à l'acl. Les décisions
              possibles sont :
                <itemizedlist>
                  <listitem><para>Accept : accepter les connexions correspondant
                  aux critères de cette acl.</para></listitem>
                  <listitem><para>Drop : bloquer tout paquet correspondant aux
                  critère de cette acl. Faire comme si on ne l'avait jamais
                  reçu.</para></listitem>
                  <listitem><para>Reject : même chose que Drop, mais en
                  renvoyant un message de refus à l'envoyeur.</para></listitem>
                  <listitem><para>Ulog : journalisation avancée du paquet (par
                  exemple, dans une base de données).</para></listitem>
                  <listitem><para>Log : journalisation standard (démon syslog)</para></listitem>
                </itemizedlist>
                Dans le cas d'une connexion authentifiée, seules les deux
                premières décisions sont applicables.
                Le choix de Log ou Ulog ne correspond pas à une décision. Le
                paquet est journalisé, mais une décision doit être statuée sur
                ce paquet par une autre acl.
              </para></listitem>
            </itemizedlist>
          </para></listitem>
        </itemizedlist>
      </para>
      <para>
        Attention aux problèmes d'ordres sur vos ACLs. D'une manière générale,
        essayez toujours de positionner en premier les ACLs particulières, et en
        dernier les ACLs plus générales. Par exemple, si vous voulez autoriser
        le traffic HTTP depuis l'adresse IP 10.2.3.4 (acl 1), et autoriser le
        traffic HTTP depuis les utilisateurs authentifiés sur le réseau
        10.0.0.0/8 (acl 2), il est important que l'ACL 1 soit ordonnée avant
        l'ACL 2, sans quoi l'ACL 2 ne sera jamais appliquée.
      </para>
    </section>
    <section><title>Protocoles</title>
      <para>La page de définition des protocoles, qui liste tous les protocoles
      définis par l'interface. Comme pour tous les objets gérés par l'interface,
      il est possible de créer des objets abstraits, résultant du regroupement
      d'objets de base.</para>
      <para>Par exemple, en terme de protocole, on peut regrouper les protocoles
      HTTP et HTTPS dans une entité que l'on nommerait
      <computeroutput>Websurf</computeroutput>, et utiliser par la suite
      cette entité pour générer des règles qui concerneront l'un ou l'autre des
      protocoles.</para>
      <para>Cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
      <para>Les objets élémentaires définis pour les protocoles disposent des
      champs de données suivants:
        <itemizedlist>
          <listitem><para>name : le nom de l'élément (champ indicatif)</para></listitem>
          <listitem><para>proto : le protocole concerné. Les valeurs possibles
          pour ce champ sont:
            <itemizedlist>
              <listitem><para>tcp</para></listitem>
              <listitem><para>udp</para></listitem>
              <listitem><para>icmp</para></listitem>
            </itemizedlist> </para></listitem>
          <listitem><para>dport : port destination (activé uniquement si le protocole choisi est
          <computeroutput>tcp</computeroutput> ou
          <computeroutput>udp</computeroutput>)</para></listitem>
          <listitem><para>sport : port source (activé uniquement si le protocole choisi est
          <computeroutput>tcp</computeroutput> ou
          <computeroutput>udp</computeroutput>)</para></listitem>
          <listitem><para>icmptype (activé uniquement si le protocole choisi est
          <computeroutput>icmp</computeroutput>)</para></listitem>
          <listitem><para>l7rule : une règle de filtrage de niveau 7 pour
          examiner le protocole. Cette option n'est présente que si vous
          avez positionné
          <computeroutput>$l7_firewall=true;</computeroutput> dans le fichier de
          configuration de nuface.  </para></listitem>
          <listitem><para>ID : un identifiant interne à l'interface, non
          modifiable</para></listitem>
        </itemizedlist>
      </para>
      <para>Des éléments de type "lien" peuvent également être créés sur cette
      page</para>
    </section>
    <section><title>Auths</title>
      <para>La page de définition des objets authentifiants, qui liste tous les groupes
      d'utilisateurs gérés par l'interface. Comme pour tous les objets gérés par l'interface,
      il est possible de créer des objets abstraits, résultant du regroupement
      d'objets de base.
      </para>
      <para>Comme pour les protocoles, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
      <para>Les objets élémentaires définis pour les ressources disposent des
      champs de données suivants :
        <itemizedlist>
          <listitem><para>name : le nom de l'élément (champ indicatif)</para></listitem>
          <listitem><para>group : l'adresse réseau (peut être aussi bien une seule
          adresse IP qu'un adresse de réseau)</para></listitem>
          <listitem><para>ID : un identifiant interne à l'interface, non
          modifiable</para></listitem>
        </itemizedlist>
      </para>
      <para>Des éléments de type "lien" peuvent également être créés sur cette
      page</para>
    </section>
    <section><title>Ressources</title>
      <para>La page de définition des ressources, qui liste tous les objets
      réseaux gérés par l'interface. Comme pour tous les objets gérés par l'interface,
      il est possible de créer des objets abstraits, résultant du regroupement
      d'objets de base.
      </para>
      <para>Comme pour les protocoles, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
      <para>Les objets élémentaires définis pour les ressources disposent des
      champs de données suivants :
        <itemizedlist>
          <listitem><para>name : le nom de l'élément (champ indicatif)</para></listitem>
          <listitem><para>net : l'adresse réseau (peut être aussi bien une seule
          adresse IP qu'un adresse de réseau)</para></listitem>
          <listitem><para>ID : un identifiant interne à l'interface, non
          modifiable</para></listitem>
        </itemizedlist>
      </para>
      <para>Des éléments de type "lien" peuvent également être créés sur cette
      page</para>
    </section>
    <section><title>Applications</title>
      <para>Le filtrage par Applications ne peut être utilisé qu'avec des ACLs
      qui traitent des sujets NuFW. Les applications permettent de positionner
      un filtrage selon :
       <itemizedlist>
        <listitem><para>applicationpath : Le nom complet d'une application, tel
        qu'annoncé par le client NuFW.
        Par exemple : "C:\Program Files\Firefox\firefox.exe"</para></listitem>
       </itemizedlist>
       </para>
       <para>Ce menu ne s'affiche pas si vous avez <screen>$nufw_firewall =
       false</screen> dans le fichier de configuration de nuface.</para>
      <para>Comme pour les protocoles et les sujets, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
    </section>
    <section><title>OS</title>
      <para>Le filtrage par système d'exploitation ne peut être utilisé qu'avec des ACLs
      qui traitent des sujets NuFW. Les OS permettent de positionner
      un filtrage selon :
       <itemizedlist>
        <listitem><para>OSName : Le nom d'un système d'exploitation, tel
        qu'annoncé par le client NuFW.
        Par exemple : "Windows Server 2003"</para></listitem>
        <listitem><para>OSVersion : La version d'un système d'exploitation, tel
        qu'annoncée par le client NuFW.
        Par exemple : "3790-Service Pack 1"</para></listitem>
       </itemizedlist>
       </para>
       <para>Ce menu ne s'affiche pas si vous avez <screen>$nufw_firewall =
       false</screen> dans le fichier de configuration de nuface.</para>
      <para>Comme pour les protocoles et les sujets, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
    </section>
    <section><title>Durées</title>
      <para>Le filtrage par durées ne peut être utilisé qu'avec des ACLs
      qui traitent des sujets NuFW. Les durées permettent de positionner
      un filtrage selon :
       <itemizedlist>
        <listitem><para>duration : en précisant un nombre de secondes qui sera la durée maximum de la connexion choisie.</para></listitem>
       </itemizedlist>
       </para>
       <para>Ce menu ne s'affiche pas si vous avez <screen>$nufw_firewall =
       false</screen> dans le fichier de configuration de nuface.</para>
      <para>Comme pour les protocoles et les sujets, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
    </section>
    <section><title>Périodicités</title>
      <para>Le filtrage par périodicités ne peut être utilisé qu'avec des ACLs
      qui traitent des sujets NuFW. Les durées permettent de positionner
      un filtrage selon :
       <itemizedlist>
        <listitem><para>startday : en précisant le jour de la semaine (lundi à dimanche) concerné par le début de la prise en compte de la règle.</para></listitem>
        <listitem><para>stopday : en précisant le jour de la semaine (lundi à dimanche) concerné par la fin de la prise en compte de la règle.</para></listitem>
        <listitem><para>starthour : en précisant l'heure du jour (0h à 24h) concernée par le début de la prise en compte de la règle.</para></listitem>
        <listitem><para>stophour : en précisant l'heure du jour (0h à 24h) concernée par la fin de la prise en compte de la règle.</para></listitem>
       </itemizedlist>
       </para>
       <para>Ce menu ne s'affiche pas si vous avez <screen>$nufw_firewall =
       false</screen> dans le fichier de configuration de nuface.</para>
      <para>Comme pour les protocoles et les sujets, cette page définit des conteneurs, qui sont par essence des objets
      sans caractéristique autre qu'un nom. Chaque conteneur détient un ou
      plusieurs objets élémentaires, qui peuvent définir des données eux-mêmes,
      ou bien constituer des liens vers d'autres conteneurs. De la sorte, on
      peut combiner les objets à volonté sans avoir à redéfinir des données déja
      entrées.</para>
    </section>
    <section><title>Règles l7</title>
      <para>Les règles L7 ne peuvent être positionnées que si vous disposez de :
       <itemizedlist>
        <listitem><para>un noyau patché par l7-filter. Voir <ulink
        url="http://l7-filter.sourceforge.net"><citetitle>http://l7-filter.sourceforge.net</citetitle></ulink></para></listitem>
        <listitem><para> <screen>$l7_firewall=true;</screen>
        dans le fichier de configuration de nuface.</para></listitem>
       </itemizedlist>
       </para>
      <para>Les règles L7 sont des objets particuliers, qui contiennent leurs
      propres actions :
      <itemizedlist>
      <listitem><para><computeroutput>accept</computeroutput> : laisser passer
      la connexion, par défaut</para></listitem>
      <listitem><para><computeroutput>ulogaccept</computeroutput> : même chose
      que accept, mais en journalisant la connexion dans ULOG</para></listitem>
      <listitem><para><computeroutput>ulogdrop</computeroutput> : rejeter la
      connexion, et journaliser l'évennement dans ULOG.</para></listitem>
      <listitem><para><computeroutput>logaccept</computeroutput> : même chose
      que accept, mais en journalisant la connexion dans
      SYSLOG</para></listitem>
      <listitem><para><computeroutput>logdrop</computeroutput> : rejeter la
      connexion, et journaliser l'évennement dans SYSLOG.</para></listitem>
      </itemizedlist>
      </para>
      <para>
        Les objets L7Rule disposent également d'un attribut
        <computeroutput>logprefix</computeroutput> , qui devrait contenir le
        texte que vous voulez ajouter quand la règle l7 sera appliquée.
      </para>
      <para>
        Les objets L7rule contiennent des éléments
        <computeroutput>l7proto</computeroutput>, qui doit préciser les
        correspondances de protocole, ainsi que des décisions. En général, la
        décision d'un objet l7proto est contraire à la décision par défaut du
        conteneur l7rule.
      </para>
      <para>Les éléments L7proto mettent à disposition les attributs suivants :
        <itemizedlist>
          <listitem><para><computeroutput>name</computeroutput> : un nom textuel
          au choix</para></listitem>
          <listitem><para><computeroutput>ID</computeroutput> : un identifiant
          numérique, positionné par nuface, qui ne peut être changé.</para></listitem>
          <listitem><para><computeroutput>l7proto</computeroutput> : un
          protocole, connu par l7-filter. La liste des protocoles reconnus par
          l7-filter est disponible à l'adresse
 <ulink
 url="http://l7-filter.sourceforge.net/protocols"><citetitle>http://l7-filter.sourceforge.net/protocols</citetitle></ulink>.
 À noter que la liste par défaut fournie par nuface n'est qu'un sous ensemble de
 la liste en ligne : ce sous-ensemble a été choisi par l'équipe de développement
 de Nuface. Vous pouvez l'étendre en éditant le fichier texte
 <computeroutput>include/l7-protos</computeroutput>.
</para></listitem>
          <listitem><para><computeroutput>action</computeroutput> : que faire
          quand le protocole
          <computeroutput>l7proto</computeroutput> est détecté. Les actions
          possibles sont :
          <itemizedlist><listitem><para>accept</para></listitem><listitem><para>ulogaccept</para></listitem><listitem><para>ulogdrop</para></listitem><listitem><para>logaccept</para></listitem><listitem><para>logdrop</para></listitem></itemizedlist>
          </para>
          </listitem>
          <listitem><para><computeroutput>prefix</computeroutput> : si l'
          <computeroutput>action</computeroutput> comporte de la journalisation
          ("log"), le préfixe que nuface doit ajouter au log.
          Ce champ est, bien entendu, un champ au format texte.</para>
          </listitem>
          <listitem><para><computeroutput>modified</computeroutput> : date de
          dernière modification de cet objet ; cet attribut est positionné
          automatiquement par Nuface.  </para></listitem>
          <listitem><para><computeroutput>comment</computeroutput> : un champ de
          commentaire, à utiliser à votre guise.  </para></listitem>
        </itemizedlist>
      </para>
      <para><screen>Note : les décisions liées aux règles L7 sont orthogonales
      aux décisions positionnées au niveau des ACL. Par exemple, une ACL
      d'acceptation de HTTP peut comporter un protocole "tcp_80" où une règle L7
      serait positionnée avec le protocole 'HTTP'. La règle L7 peut bloquer la
      connexion si celle-ci fait transiter un protocole non HTTP, même si l'ACL
      a comme décision ACCEPT.
      </screen></para>
    </section>
    <section><title>Nat</title>
      <para>La page de gestion des règles de translation d'adresses, permet de définir trois types de règles:
        <itemizedlist>
          <listitem><para>SNAT: règles permettant de redéfinir l'adresse de destination de la connexion.</para></listitem>
          <listitem><para>DNAT: permet de traduire l'adresse source.</para></listitem>
          <listitem><para>PNAT: permet de changer le port destination de la connexion.</para></listitem>
        </itemizedlist>
      </para>
      <para>
      Les objets élémentaires définis pour les règes de nat disposent tous des champs de données suivants:
        <itemizedlist>
          <listitem><para>name : le nom de l'élément (champ indicatif)</para></listitem>
          <listitem><para>Adresse source: adresse source de la connexion</para></listitem>
          <listitem><para>Adresse Dest.: adresse de destination de la connexion</para></listitem>
          <listitem><para>Protocole : le protocole de la connexion. Les valeurs possibles
          pour ce champ sont:
            <itemizedlist>
              <listitem><para>tcp</para></listitem>
              <listitem><para>udp</para></listitem>
              <listitem><para>icmp</para></listitem>
            </itemizedlist> </para></listitem>
            <listitem><para>Sport: port source de la connexion (activé uniquement si le protocole choisi est
          <computeroutput>tcp</computeroutput> ou
          <computeroutput>udp</computeroutput>)</para></listitem>
            <listitem><para>Dport: port destination de la connexion (activé uniquement si le protocole choisi est
          <computeroutput>tcp</computeroutput> ou
          <computeroutput>udp</computeroutput>)</para></listitem>
          <listitem><para>Type icmp  (activé uniquement si le protocole choisi est
          <computeroutput>icmp</computeroutput>)</para></listitem>
        </itemizedlist>
        Les adresses sources et destination peuvent aussi bien être une seule adresse IP qu'une adresse de réseau.
      </para>
      <para>
      Pour les règles DNAT, le champ <emphasis>Réécrire destination en</emphasis> permet d'indiquer la nouvelle adresse et le nouveau port.</para>
      <para>Le champ <emphasis>Réécrire source en</emphasis> des règles SNAT permet de spécifier la nouvelle adresse source qui doit être appliquée.</para>
      <para>Pour les règles PNAT, c'est le champ <emphasis>Réécrire port en</emphasis> qui spécifie le nouveau port de destination de la connexion.</para>
    </section>
    <section><title>Suivi des modifications</title>
      <para>Depuis la version 0.9.3 de Nuface, toutes les entités de
      l'interface, conteneurs et éléments, disposent de deux champs
      supplémentaires : <emphasis>Comment</emphasis> et
      <emphasis>modified</emphasis>.</para>
      <section><title>Le champ Comment</title>
        <para>Ce champ permet à l'administrateur d'indiquer des informations
        afin de faciliter la vie des objets de l'interface et leur suivi. Ce champ n'est pas
        utilisé par le moteur de l'interface, et sert uniquement aux
        utilisateurs de l'interface.
        </para>
      </section>
      <section><title>Le champ Modified</title>
        <para>Ce champ est positionné par Nuface, pour chaque entité de
        l'interface. Il est mis à jour quand l'entité fait l'objet d'une
        modification. L'administrateur ne peut pas changer lui-même la valeur de
        ce champ.
        </para>
      </section>
    </section>
  </chapter>
  <chapter><title>Les objets utilisés par l'interface</title>
    <section><title>Conteneurs</title>
      <section><title>Définition</title>
	  <para> Les sujets, les ressources et les protocoles sont organisés par conteneurs. Un conteneur est une coquille, qui contient un ou plusieurs éléments.  Les conteneurs servent à structurer les acls, et ne contiennent jamais eux-même de données. Il existe trois types de conteneurs:
          <itemizedlist>
            <listitem><para>sujets : contiennent des éléments qui définissent la source d'une connexion.</para></listitem>
            <listitem><para>ressources : les éléments de ces conteneurs servent à définir les objets réseaux destination des connexions gérées par le pare-feu.</para></listitem>
            <listitem><para>protocoles : les conteneurs de ce groupes définissent des protocoles.</para></listitem>
          </itemizedlist>
          </para>
      </section>
      <section><title>Fonctionnement</title>
        <para>On essaye toujours de créer des conteneurs qui correspondent à une entité cohérente. Par exemple, on peut assembler dans un conteneur deux adresses de réseaux sources, qui constituent à elles deux l'adresse de notre Intranet. On peut faire la même chose avec les protocoles, afin de créer un "groupe" de protocoles qui correpondrait à un ensemble de flux à ouvrir pour le bon fonctionnement d'une application.</para>
      </section>
    </section>
    <section><title>Éléments</title>
      <section><title>Définition</title>
        <para>Les éléments sont les briques de bases d'un jeu d'acls. Chaque élément correpond à une entité, par exemple, une adresse IP destination, ou bien un protocole. Il existe plusieurs types d'éléments :
          <itemizedlist>
            <listitem><para>ipv4 : utilisables dans les conteneurs ressources, ils servent à définir des entités réseaux.</para></listitem>
            <listitem><para>proto : utilisables uniquement dans les conteneurs de protocoles</para></listitem>
            <listitem><para>nufw : utilisables uniquement dans les conteneurs auths, les éléments de ce type définissent des groupes d'utilisateurs authentifiés par NuFW.</para></listitem>
            <listitem><para>link : utilisables dans tous les conteneurs, les objets de ce type servent à agglomérer plusieurs conteneurs en un seul pour construire un groupe plus complexe.</para></listitem>
          </itemizedlist>
        </para>
      </section>
      <section><title>Exemples</title>
        <para>Si l'on veut construire une acl autorisant les accès depuis Internet sur notre serveur de mails en DMZ, nous devrons manier les éléments suivants:
          <itemizedlist>
            <listitem><para>Une ressource que nous nommerons "Internet", qui définira le réseau 0.0.0.0/0</para></listitem>
            <listitem><para>Un protocole nommé "SMTP", qui définira le protocole TCP, port destination 25, port source supérieur à 1024</para></listitem>
            <listitem><para>Une deuxième ressource, en l'occurence l'adresse IP de notre serveur de mails.</para></listitem>
          </itemizedlist>
          Chacun de ces éléments sera stocké dans un conteneur de son type, et ce sont les conteneurs qui seront agencés avec une décision ("accept") par une acl.
        </para>
        <para>Dans un exemple plus complexe, on peut souhaiter autoriser un réseau à surfer sur internet, en HTTP ou HTTPS. Un tel cas justifie l'utilisation d'un lien dans un conteneur de protocoles. En effet, les protocoles HTTP et HTTPS sont définis par défaut et disposent chacun de leur propre conteneur. Nous allons créer un conteneur nommé "websurf" et qui contiendra deux liens, vers les conteneurs HTTP et HTTPS. Ainsi, l'acl construite avec le conteneur de protocoles "websurf" concernera toute connexion HTTP ou HTTPS.
        </para>
        <para>Les liens peuvent être utilisés dans chacun des conteneurs, et permettent comme nous l'avons vu de générer des conteneurs plus complexes.
        </para>
      </section>
    </section>
    <section><title>Acls</title>
      <section><title>Définition</title>
        <para>Une ACL est un agglomérat d'un conteneur auths, de ressources, et éventuellement de protocoles. L'ACL comporte également une décision. Les ACLs fonctionnant à base des conteneurs définis ci-avant, elles sont en général construites en dernier, en utilisant les objets authentifiants, protocoles et ressources définis au préalable. L'ordre des ACLs est également important : les premières ACLs seront appliquées en premier sur les objets les concernant, et leur décision sera prioritaire sur une ACL avec une décision différente concernant la même connexion, mais définie plus bas.</para>
      </section>
      <section><title>Groupes</title>
        <para>Les groupes sont une entité qui permettent d'activer ou de
        désactiver en masse un ensemble d'Acls. Par défaut, toutes les Acls
        appartiennent au groupe par défaut, qui est également activé par défaut.
        Pour créer un groupe, se positionner dans la page de gestion des Acls et
        utiliser le formulaire en haut de la page. Pour changer une Acl de
        groupe, il suffit d'éditer cette Acl et de lui associer le groupe voulu.
        Les Acls appartenant à des groupes désactivés sont affichées en gris
        dans la page Acl. Elles ne seront pas prises en compte lors de la
        prochaine génération des règles de filtrage.</para>
        <para>Les Acls sont affichées avec un symbole géomètrique qui désigne
        leur groupe.</para>
        <para>Note : Une Acl donnée ne peut appartenir qu'à un seul groupe.</para>
      </section>
    </section>
  </chapter>
  <chapter><title>Détails sur les éléments</title>
    <section><title>Les types d'élements</title>
      <section><title>Le type ipv4</title>
         <para>Les éléments de type IPv4 contiennent un
         attribut net, qui doit contenir un object réseau. Un objet réseau est
         soir une adresse IP (192.168.33.1), ou une adresse de réseau (telle
         que 10.0.0.0/255.0.0.0 ou au format CIDR 10.0.0.0/8). Internet est
         toujours définie en tant que 0.0.0.0/0 et est auto-générée par Nuface
         si l'objet n'existe pas à l'ouverture du jeu de règles. Après avoir
         créé ou modifié un objet réseau, Nuface affiche le nom du Network
         auquel le nouvel élément appartient, selong la topologie du
         réseau.</para>
      </section>
      <section><title>Le type nufw</title>
        <para>Uniquement utilisé dans les conteneurs <computeroutput>auths</computeroutput>, ce type sert à spécifier un groupe d'utilisateurs NuFW. Les acls utilisant ce conteneur concerneront alors seulement les utilisateurs NuFW appartenant à ce groupe. Les variables définies pour ce type sont <computeroutput>group</computeroutput>, qui contient l'identifiant de groupe à utiliser.
        </para>
      </section>
      <section><title>Le type proto</title>
        <para>Réservé au conteneur <computeroutput>protocols</computeroutput>, ce type d'élément définit un protocole, et comporte donc les variables suivantes: <computeroutput>proto</computeroutput> qui prend l'une des valeurs <computeroutput>tcp</computeroutput>, <computeroutput>udp</computeroutput> ou <computeroutput>icmp</computeroutput>. Selon les cas les variables <computeroutput>dport</computeroutput> (port destination), <computeroutput>sport</computeroutput> (port source) et <computeroutput>icmptype</computeroutput> (type icmp) peuvent également être utilisées. En ce qui concerne les définitions de numéros de ports, des plages peuvent bien sûr être spécifiées, comme par exemple <computeroutput>1024:65535</computeroutput>, qui définit tous les ports entre 1024 et 65535 inclus.
        </para>
      </section>
      <section><title>le type period</title>
        <para>Ce type d'élement ne peut être utilisé que dans des conteneurs
        <computeroutput>periods</computeroutput>. Il définit une période de
        temps (plage de temps), et dispose des attributs :
        <computeroutput>periodtype</computeroutput> qui peut être  <computeroutput>dates</computeroutput>, <computeroutput>days</computeroutput>, <computeroutput>hours</computeroutput> ou <computeroutput>duration</computeroutput>.
        Selon le periodtype choisi, les champs
        <computeroutput>start</computeroutput>,
        <computeroutput>end</computeroutput> and
        <computeroutput>duration</computeroutput> peuvent également être
        positionnés.
        </para>
      </section>
      <section><title>Le type app</title>
        <para>Ce type d'élement ne peut être utilisé que dans des conteneurs
        <computeroutput>applications</computeroutput>. Il définit une
        application, et dispose des attributs :
        <computeroutput>ApplicationPath</computeroutput>, le nom complet de
        l'application utilisée par le sujet, tel qu'annoncé par le client NuFW.
        </para>
      </section>
      <section><title>Le type link</title>
        <para>Disponible pour tous les conteneurs, ce type permet de créer un lien vers un autre conteneur du même type. Utiliser ce lien revient à utiliser tout le contenu dudit conteneur, ce qui permet donc d'agglomérer des données dans un seul conteneur.
        </para>
      </section>
    </section>
    <section><title>Comment créer un élément</title>
      <section><title>Copie d'un élément existant</title>
        <para>Il est facile de copier un élément d'un conteneur vers un autre,
        ou d'une page vers une autre (par exemple, copie d'un objet de type ipv4
        depuis la page ressources vers la page de sujets). Pour ce faire, il
        suffit de sélectionner l'élément à copier, et d'utiliser le bouton
        <computeroutput>Copier dans la liste des éléments de
        travail</computeroutput>. Ensuite, se positionner dans le conteneur
        cible, et utiliser le bouton <computeroutput>Ajouter</computeroutput>
        pour réaliser la copie.</para>
        <para>Les éléments de travail sont uniquement des éléments temporaires
        à la session, qui servent à la copie et à la création des briques
        élémentaires utilisées par l'interface.</para>
      </section>
      <section><title>Création d'un élément à partir de rien</title>
        <para>Pour créer un élément, il suffit de choisir la page
        <computeroutput>Éléments de travail</computeroutput> et d'utiliser le
        bouton <computeroutput>Nouvel élément</computeroutput>. À noter que le
        type d'un élément ne peut jamais être modifié. Chaque élément garde son
        type à vie.</para>
        <para>Une bonne pratique de travail consiste à créer dans les éléments
        de travail un élément vide de chaque type, et d'utiliser selon les
        besoins chacun des éléments en les copiants dans les pages de
        protocoles, sujets ou ressources.</para>
      </section>
    </section>
  </chapter>
</book>