Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:solaris:10:junior:l121 [2020/01/05 16:56] – modification externe 127.0.0.1elearning:workbooks:solaris:10:junior:l121 [2020/01/30 03:28] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
 +
 +Version : **2020.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======SO215 - Gestion de la sécurité======+======SO215 - Gestion des Serveurs de Base======
  
-====Surveillance Sécuritaire====+=====LAB #1 - Installation et Configuration du Serveur DNS bind=====
  
 +Le principe du DNS est basé sur l'équivalence entre un **FQDN** ( Fully Qualified Domain Name ) et une adresse IP. Les humains retiennent plus facilement des noms tels www.ittraining.center, tandis que les ordinateurs utilisent des chiffres. 
  
-===La commande who===+Le **DNS** ( Domain Name Service ) est né peu après l'introduction des FQDN en 1981. 
  
-La commande **who** indique qui est connecté au système :+Lorque un ordinateur souhaite communiquer avec un autre par le biais de son nom, par exemple avec www.ittraining.center, il envoie une requête à un server DNS. Si le serveur DNS a connaissance de la correspondance entre le nom demandé et le numéro IP, il répond directement. Si ce n'est pas le cas, il démarre un processus de **Recursive Lookup**
  
-<code> +Ce processus tente d'identifier le serveur de domaine responsable pour le **SLD** Second Level Domain afin de lui passer la reqûete. Dans notre exemple, il tenterait d'identifier le serveur de domaine responsable de **ittraining.center**.
-# who +
-root       console      mars 19 11:43   (:0) +
-root       pts/       mars 19 13:18   (:0.0) +
-</code>+
  
 +Si cette tentative échoue, le serveur DNS cherche le serveur de domaine pour le **TLD** ( Top Level Domain ) dans son cache afin de lui demander l'adresse du serveur responsable du SLD. Dans notre cas il tenterait trouver l'enregistrement pour le serveur de domaine responsable de **.org**
  
-===La commande whodo===+Si cette recherche échoue, le serveur s'adresse à un **Root Name Server** dont il y en a peu. Si le Root Name Server ne peut pas répondre, le serveur DNS renvoie une erreur à la machine ayant formulé la demande. 
  
-La commande **whodo** indique qui fait quoi sur le système à l'instant **t**. L'information provient des fichiers **/var/adm/utmpx** et **/proc/<pid>** :+Le serveur DNS sert à faire la résolution de noms. Autrement dit de traduire une adresse Internet telle **www.ittraining.center **en **numéro IP**.
  
-<code> +Le serveur DNS peut être configuré de trois façons différentes:
-# whodo +
-jeudi 19 mars 2009 17 h 20 CET +
-unknown+
  
-console      root     11:43 +  * **Serveur DNS Primaire ou Maitre** 
-      ?            800    0:00 Xsession +    * Ce type de serveur est dit maitre **d'une ou de plusieurs zones** et peut répondre aux requêtes des clients
-    pts/2          875    0:00 sdt_shell +  * **Serveur DNS Secondaire** 
-    pts/2          893    0:00 sh +    * Ce type de serveur est une copie d'un serveur DNS primaire et peut répondre aux requêtes des clients. 
-    pts/2          905    0:00 Xsession2.jds +  * **Serveur DNS Cache** 
-    pts/         907    0:04 gnome-session +    * Ce type de serveur ne peut pas répondre aux requêtes des clients. Le requêtes sont transférés à un autre serveur DNS. Les réponses sont mises en cache pour une utilisation ultérieure.
-    pts/2          930    0:22 xscreensaver +
-    pts/2          928    0:00 gnome-keyring-+
-    pts/         925    1:43 gconfd-2 +
-      ?            876    0:04 dsdm +
-      ?           1022   17:54 java+
  
-pts/3        root     13:18 +Le serveur DNS nécessite à ce que la machine sur laquelle il est installé possède un nom FQDN et une adresse IP fixe. Il est également important à noter que le service de bind ne démarrera **pas** dans le cas où le fichier **/etc/hosts** comporte une anomalieDeux étapes préparatoires sont donc nécessaires :
-      ?           1162    1:25 gnome-terminal +
-    pts/3         1165    0:00 sh +
-    pts/3         2689    0:00 whodo +
-      ?           1163    0:00 gnome-pty-helpe +
-      ?           1117    0:00 run-mozilla.sh +
-      ?           1123   11:39 firefox-bin +
-      ?           1102    0:00 firefox +
-</code>+
  
 +  * Modification de l'adresse IP de la machine en adresse IP fixe
 +  * Définition d'un nom FQDN (Fully Qualified Domain Name)
  
 +Afin d'étudier ce dernier cas, nous prenons en tant qu'exemple la machine suivante :
  
-===La commande last===+  * **FQDN** - solaris.i2tch.loc 
 +  * **Adresse IP** - 10.0.2.15
  
-Cette commande indique les dates et heures des dernières connexions des utilisateurs lues à partir du fichier  binaire  **/var/adm/wtmpx** :+<WRAP center round important 60%> 
 +**Important** - Il est important de noter que la configuration du serveur DNS dépend du nom de votre machine. Dans le cas où vous changeriez ce nom, vous devez re-configurer votre serveur DNS en éditant les fichiers de configuration directement. 
 +</WRAP> 
 + 
 +====Installation==== 
 + 
 +Les deux paquets nécessaires pour la mise en place d'un serveur DNS sont :
  
 <code> <code>
-last +pkginfo | grep -i SUNWbind 
-root      pts/3        :0.0             Thu Mar 19 13:18   encore connecté +system      SUNWbind                         BIND DNS Name server and tools 
-root      pts/3        :0.0             Thu Mar 19 11:44 11:47  (00:02) +system      SUNWbindr                        BIND Name server Manifest
-root      console      :0               Thu Mar 19 11:43   encore connecté +
-reboot    system boot                   Thu Mar 19 11:41 +
-reboot    system down                   Wed Mar 18 00:17 +
-root      pts/3        :0.0             Tue Mar 17 18:57 - arrêté  (1+16:44 +
-root      pts/4        :0.0             Tue Mar 17 17:47 - arrêté  (1+17:54 +
-root      pts/3        :0.0             Tue Mar 17 15:23 - 17:50  (02:26) +
-root      console      :0               Tue Mar 17 09:25 - arrêté  (2+02:16 +
-reboot    system boot                   Tue Mar 17 09:23 +
-reboot    system down                   Fri Mar  6 16:06 +
-root      console      :0               Fri Mar  6 15:54 - arrêté  (10+17:2 +
-reboot    system boot                   Fri Mar  6 15:51 +
-reboot    system down                   Sat Feb 28 13:49 +
-root      pts/3        :0.0             Sat Feb 28 13:29 - 13:49  (00:19) +
-root      pts/3        :0.0             Sat Feb 28 13:13 - 13:29  (00:15) +
-root      console      :0               Sat Feb 28 13:05 - arrêté  (6+02:46 +
-reboot    system boot                   Sat Feb 28 13:03 +
-reboot    system down                   Sat Feb 28 13:01 +
-reboot    system boot                   Sat Feb 28 12:05 +
-reboot    system down                   Sat Feb 28 11:58 +
-root      console      :0               Sat Feb 28 11:51 - arrêté   (00:13) +
-reboot    system boot                   Sat Feb 28 11:36+
 </code> </code>
  
-<WRAP center round important 60%> +Par défaut, le service **svc:/network/dns/server:default** est désactivé.
-Consultez les manuels de ces trois commandes afin de vous familiariser avec les options disponibles. +
-</WRAP>+
  
-====Types de Sécurité====+<code> 
 +# svcs -a | grep dns 
 +disabled        3:56:19 svc:/network/dns/client:default 
 +disabled        3:56:19 svc:/network/dns/server:default 
 +</code>
  
-Les différentes approches à la sécurité sont les suivantes :+====Les fichiers de configuration génériques====
  
-^ Type de Sécurité ^ Nom ^ Description ^ +  * /var/run/named.pid 
-| DAC |  //Discretional Access Control//  | L'accès aux objets est en fonction de l'identité (utilisateur,groupe). Un utilisateur peut rendre accessible aux autres ses propres objets| +  /var/named/named.ca  
-| MAC |  //Mandatory Access Control//  | L'accès aux objets est en fonction de la classification de l'objet (Très secret, Secret, Confidentiel, Public)L'administrateur définit la politique de sécurité et les utilisateurs s'y conforment. | +  /etc/named.conf 
-| RBAC |  //Role Based Access Control//  | Un utilisateur a un ou plusieurs rôlesLes droits sont attribués aux rôles. | +  /etc/rndc.key
-| TE |  //Type enforcement//  | Chaque objet a une étiquette appelé //type// pour un fichier et //domaine// pour un processus. La politique de sécurité définit l'interaction entre les types et les domaines. | +
-| MLS |  //Multi-Level Security//  | Les politiques de sécurité imposent que qu'un sujet doit dominer un objet pour pouvoir le lire tandis que l'objet doit dominer le sujet pour que ce dernier puisse y écrire|+
  
-Dans sa conception de base, Unix utilise une approche sécurité de type **DAC**. Cette approche est maintenue dans Solaris, complimentée par la mise en place et l'utilisation du **RBAC**.+===/var/run/named.pid===
  
 +Ce fichier contiendra le numéro du processus de named. 
  
-====PAM====+===/var/named/named.ca===
  
-===pam.conf===+Ce fichier se trouve dans /var/named. Il est aussi appelé le fichier **root.hints** car il contient les adresses des serveurs DNS root de l'Internet.
  
-**PAM** ( //Pluggable Authentification Modules// ou Modules d'Authentification Enfichables ) est une architecture modulaire permettant à l'administrateur système de définir une politique d'authentification pour les logiciels prenant en charge PAM.+Pour créer ce fichier, il convient d'utiliser la commande **dig** :
  
-Le fichier de configuration est **/etc/pam.conf** :+<code> 
 +# mkdir /var/named 
 +# cd /var/named 
 +# /usr/sbin/dig @192.36.148.17 . ns > named.ca 
 +# cat named.ca 
 + 
 +; <<>> DiG 9.6-ESV-R8 <<>> @192.36.148.17 . ns 
 +; (1 server found) 
 +;; global options: +cmd 
 +;; Got answer: 
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46290 
 +;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 
 +;; WARNING: recursion requested but not available 
 + 
 +;; QUESTION SECTION: 
 +;.                              IN      NS 
 + 
 +;; ANSWER SECTION: 
 +.                       518400  IN      NS      d.root-servers.net. 
 +.                       518400  IN      NS      j.root-servers.net. 
 +.                       518400  IN      NS      l.root-servers.net. 
 +.                       518400  IN      NS      h.root-servers.net. 
 +.                       518400  IN      NS      m.root-servers.net. 
 +.                       518400  IN      NS      a.root-servers.net. 
 +.                       518400  IN      NS      b.root-servers.net. 
 +.                       518400  IN      NS      g.root-servers.net. 
 +.                       518400  IN      NS      i.root-servers.net. 
 +.                       518400  IN      NS      c.root-servers.net. 
 +.                       518400  IN      NS      k.root-servers.net. 
 +.                       518400  IN      NS      e.root-servers.net. 
 +.                       518400  IN      NS      f.root-servers.net. 
 + 
 +;; ADDITIONAL SECTION: 
 +a.root-servers.net.     3600000 IN      A       198.41.0.4 
 +a.root-servers.net.     3600000 IN      AAAA    2001:503:ba3e::2:30 
 +b.root-servers.net.     3600000 IN      A       199.9.14.201 
 +b.root-servers.net.     3600000 IN      AAAA    2001:500:200::
 +c.root-servers.net.     3600000 IN      A       192.33.4.12 
 +c.root-servers.net.     3600000 IN      AAAA    2001:500:2::
 +d.root-servers.net.     3600000 IN      A       199.7.91.13 
 +d.root-servers.net.     3600000 IN      AAAA    2001:500:2d::
 +e.root-servers.net.     3600000 IN      A       192.203.230.10 
 +e.root-servers.net.     3600000 IN      AAAA    2001:500:a8::
 +f.root-servers.net.     3600000 IN      A       192.5.5.241 
 +f.root-servers.net.     3600000 IN      AAAA    2001:500:2f::
 +g.root-servers.net.     3600000 IN      A       192.112.36.4 
 + 
 +;; Query time: 111 msec 
 +;; SERVER: 192.36.148.17#53(192.36.148.17) 
 +;; WHEN: Fri Jan 17 03:58:54 2020 
 +;; MSG SIZE  rcvd: 508 
 +</code> 
 + 
 +===/etc/named.conf=== 
 + 
 +Le fichier de configuration principal du serveur DNS Bind est **/etc/named.conf** :
  
 <code> <code>
-cat /etc/pam.conf +vi /etc/named.conf 
-# +cat /etc/named.conf 
-#ident  "@(#)pam.conf   1.31    07/12/07 SMI+options { 
-+    directory "/var/named"; 
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved. +    pid-file "/var/named/named.pid"; 
-# Use is subject to license terms. +    allow-query { any; }; 
-+    allow-transfer { any; }; 
-# PAM configuration +        forwarders { 10.0.2.3; }; 
-+}; 
-# Unless explicitly defined, all services use the modules + 
-# defined in the "other" section. +zone "localhost" { 
-+    type master; 
-# Modules are defined with relative pathnames, i.e., they are +    file "zone/db.localhost"; 
-# relative to /usr/lib/security/$ISAAbsolute path names, as +}; 
-# present in this file in previous releases are still acceptable. + 
-# +zone "0.0.127.in-addr.arpa" { 
-# Authentication management +    type master; 
-+    file "zone/db.127.0.0.1"; 
-# login service (explicit because of pam_dial_auth) +}; 
-+ 
-login   auth requisite          pam_authtok_get.so.+zone "." { 
-login   auth required           pam_dhkeys.so.1 +    type hint; 
-login   auth required           pam_unix_cred.so.1 +    file "named.ca"; 
-login   auth required           pam_unix_auth.so.1 +}; 
-login   auth required           pam_dial_auth.so.1 + 
-# +zone "2.0.10.in-addr.arpa" { 
-# rlogin service (explicit because of pam_rhost_auth) +    type master; 
-+    file "zone/db.2.0.10.hosts"; 
-rlogin  auth sufficient         pam_rhosts_auth.so.1 +    forwarders { }; 
-rlogin  auth requisite          pam_authtok_get.so.1 +}; 
-rlogin  auth required           pam_dhkeys.so.1 + 
-rlogin  auth required           pam_unix_cred.so.+zone "i2tch.loc" { 
-rlogin  auth required           pam_unix_auth.so.1 +    type master; 
-# +    file "zone/db.i2tch.loc.hosts"; 
-# Kerberized rlogin service +    forwarders { }; 
-+};
-krlogin auth required           pam_unix_cred.so.+
-krlogin auth required           pam_krb5.so.1 +
-# +
-# rsh service (explicit because of pam_rhost_auth, +
-# and pam_unix_auth for meaningful pam_setcred) +
-+
-rsh     auth sufficient         pam_rhosts_auth.so.1 +
-rsh     auth required           pam_unix_cred.so.1 +
-+
-# Kerberized rsh service +
-# +
-krsh    auth required           pam_unix_cred.so.1 +
-krsh    auth required           pam_krb5.so.1 +
-# +
-# Kerberized telnet service +
-+
-ktelnet auth required           pam_unix_cred.so.+
-ktelnet auth required           pam_krb5.so.1 +
-+
-# PPP service (explicit because of pam_dial_auth) +
-+
-ppp     auth requisite          pam_authtok_get.so.1 +
-ppp     auth required           pam_dhkeys.so.1 +
-ppp     auth required           pam_unix_cred.so.1 +
-ppp     auth required           pam_unix_auth.so.1 +
-ppp     auth required           pam_dial_auth.so.1 +
-+
-# Default definitions for Authentication management +
-# Used when service name is not explicitly mentioned for authentication +
-+
-other   auth requisite          pam_authtok_get.so.1 +
-other   auth required           pam_dhkeys.so.1 +
-other   auth required           pam_unix_cred.so.1 +
-other   auth required           pam_unix_auth.so.1 +
-+
-# passwd command (explicit because of a different authentication module) +
-+
-passwd  auth required           pam_passwd_auth.so.1 +
-+
-# cron service (explicit because of non-usage of pam_roles.so.1) +
-# +
-cron    account required        pam_unix_account.so.+
-+
-# Default definition for Account management +
-# Used when service name is not explicitly mentioned for account management +
-+
-other   account requisite       pam_roles.so.1 +
-other   account required        pam_unix_account.so.1 +
-# +
-# Default definition for Session management +
-# Used when service name is not explicitly mentioned for session management +
-+
-other   session required        pam_unix_session.so.1 +
-# +
-# Default definition for Password management +
-# Used when service name is not explicitly mentioned for password management +
-+
-other   password required       pam_dhkeys.so.+
-other   password requisite      pam_authtok_get.so.1 +
-other   password requisite      pam_authtok_check.so.1 +
-other   password required       pam_authtok_store.so.1 +
-+
-# Support for Kerberos V5 authentication and example configurations can +
-# be found in the pam_krb5(5) man page under the "EXAMPLES" section. +
-#+
 </code> </code>
  
-Le contenu de ce fichier fait appel à des modules qui se trouvent dans le répertoire **/usr/lib/security** :+Vérifiez le fichier **/etc/named.conf** :
  
 <code> <code>
-ls /usr/lib/security +# /usr/sbin/named-checkconf 
-64                           pam_deny.so                  pam_sample.so.1 +#
-amd64                        pam_deny.so.1                pam_smartcard.so +
-audit_binfile.so             pam_dhkeys.so                pam_smartcard.so.1 +
-audit_binfile.so.1           pam_dhkeys.so.1              pam_tsol_account.so +
-audit_syslog.so              pam_dial_auth.so             pam_tsol_account.so.1 +
-audit_syslog.so.1            pam_dial_auth.so.1           pam_unix_account.so +
-crypt_bsdbf.so               pam_krb5_migrate.so          pam_unix_account.so.1 +
-crypt_bsdbf.so.1             pam_krb5_migrate.so.1        pam_unix_auth.so +
-crypt_bsdmd5.so              pam_krb5.so                  pam_unix_auth.so.1 +
-crypt_bsdmd5.so.1            pam_krb5.so.1                pam_unix_cred.so +
-crypt_sunmd5.so              pam_ldap.so                  pam_unix_cred.so.1 +
-crypt_sunmd5.so.1            pam_ldap.so.1                pam_unix_session.so +
-kmf_nss.so.1                 pam_passwd_auth.so           pam_unix_session.so.1 +
-kmf_openssl.so.1             pam_passwd_auth.so.1         pam_winbind.so +
-kmf_pkcs11.so.1              pam_projects.so              pam_winbind.so.1 +
-pam_authtok_check.so         pam_projects.so.1            pkcs11_kernel.so +
-pam_authtok_check.so.1       pam_rhosts_auth.so           pkcs11_kernel.so.1 +
-pam_authtok_get.so           pam_rhosts_auth.so.1         pkcs11_softtoken_extra.so +
-pam_authtok_get.so.1         pam_roles.so                 pkcs11_softtoken_extra.so.1 +
-pam_authtok_store.so         pam_roles.so.1               pkcs11_softtoken.so +
-pam_authtok_store.so.1       pam_sample.so                pkcs11_softtoken.so.1+
 </code> </code>
  
-Chaque section dans /etc/pam.conf contient les règles PAM utilisées pour le service indiqué. Par exemple :+Dans ce fichier on trouve des sections ayant la forme suivante :
  
 <file> <file>
-# +section { 
-# PPP service (explicit because of pam_dial_auth) +   variable1  valeur1; 
-# +   variable2  valeur2;   
-ppp     auth requisite          pam_authtok_get.so.1 +};
-ppp     auth required           pam_dhkeys.so.1 +
-ppp     auth required           pam_unix_cred.so.1 +
-ppp     auth required           pam_unix_auth.so.1 +
-ppp     auth required           pam_dial_auth.so.1+
 </file> </file>
  
-Tout autre service non-indiqué utilise la section **other** :+Il existe différentes sections dont une des plus importantes est **options**. C'est dans cette section que nous définissons les options globales:
  
 <file> <file>
-+options {
-# Default definitions for Authentication management +
-# Used when service name is not explicitly mentioned for authentication +
-+
-other   auth requisite          pam_authtok_get.so.1 +
-other   auth required           pam_dhkeys.so.1 +
-other   auth required           pam_unix_cred.so.1 +
-other   auth required           pam_unix_auth.so.1+
 </file> </file>
  
-Chaque ligne comporte cinq champs séparés par un espace dont les quatre premiers champs sont obligatoires.+D'abord nous définissons le chemin des fichiers des **zones**:
  
-Le **premier champs** est le nom du service.+<file> 
 +directory "/var/named"; 
 +</file>
  
-Le **deuxième champs** est le **type de règle**. Il en existe quatre :+Ensuite le fichier pid :
  
-^ Type ^ Description ^ +<file> 
-| **auth** | Utilisé pour authentifier un utilisateur ou les pré-requis système | +pid-file "/var/named/named.pid"; 
-| **account** | Utilisé pour vérifier si l'utilisateur peut s'authentifier | +</file>
-| **password** | Utilisé pour vérifier si l'utilisateur dispose des droits pour mettre le mécanisme d'authentification à jour | +
-| **session** | Utilisé pour gérer la session après l'authentification |+
  
-Le **troisème champs** est le //**Control-flag**//Il en existe quatre :+Afin de limiter les machines qui peuvent et qui ne peuvent pas utiliser notre DNS, nous utilisons la valeur **allow-query**. Dans notre cas les requêtes sont permises en provenance de tous les clients:
  
-^ Control-flag ^ Description ^ +<file> 
-| **required** | La réussite de ce module est indispensable. L'échec d'un module //required// n'est communiqué à l'application qu'après la vérification de tous les modules ayant un //control-flag// de **required**| +allow-query { any; }; 
-| **requisite** | La réussite de ce module est indispensable. L'échec d'un module //requisite// est immédiatement communiqué à l'application | +</file>
-| **sufficient** | La réussite de ce module est suffisant pour authoriser l'authentification. Si aucun test //required// précédent est en échec, la vérification s'arrête. Si un test //required// précédent était en échec, le test //sufficient// est ignoré. L'échec d'un test //sufficient// n'a pas de conséquence si tous les tests //required// réussissent. +
-| **optional** | La réussite ou l'échec de ce module est sans importance, **sauf** s'il s'agit du seul module à exécuter |+
  
-Le **quatrième champs** stipule le **module** associé à la règleSans chemin absolu, le fichier est supposé être dans le répertoire **/usr/lib/security**Pour inclure un module en dehors de ce répertoire il convient donc de stipuler son chemin absolu.+Dans l'**exemple** qui suit nous autorisons toutes les machines de notre réseau sauf la machine 10.0.2.5, ainsi que la machine locale :
  
-Le **cinquième champs** contient des options éventuelles.+<file> 
 +     allow-query { 
 +          127/8; 
 +          10.0.2/24; 
 +          !10.0.2.5; 
 +     }; 
 +</file>
  
-Par exemple, considérez la section **rlogin** :+La valeur **allow-transfer** autorise les transferts de requête de zones pour tous les clients. La valeur allow-transfer peut également se trouver dans chaque section de zone ( voir ci-dessous ) :
  
 <file> <file>
-+allow-transfer { any;};
-# rlogin service (explicit because of pam_rhost_auth) +
-+
-rlogin  auth sufficient         pam_rhosts_auth.so.1 +
-rlogin  auth requisite          pam_authtok_get.so.1 +
-rlogin  auth required           pam_dhkeys.so.1 +
-rlogin  auth required           pam_unix_cred.so.1 +
-rlogin  auth required           pam_unix_auth.so.1+
 </file> </file>
  
-Dans cette sectionsi la règle **sufficient** réussit, les modules suivants ne sont pas invoqués.+Dernièrementnous définissons l'adresse du serveur DNS auquel seront envoyées des requêtes inconnues :
  
-===Modules===+<file> 
 +  forwarders { 10.0.2.3; };  
 +}; 
 +</file>
  
-Certains modules de PAM peuvent être configurés grâce aux options. Le format de l'appel du module est :+La valeur "type" dans une section de zone peut prendre plusieurs valeurs:
  
-**/usr/lib/security/pam_<nom du service>_<nom du module>.so.x <options>**+  * **master** 
 +    * Ce type définit le serveur DNS comme serveur maître ayant **autorité** sur la zone concernée. 
 +  * **slave** 
 +    * Ce type définit le serveur DNS comme serveur esclave pour la zone concernéeCeci implique que la zone est une replication d'une zone maître. Un type de zone esclave contiendra aussi une directive **masters** indiquant les adresses IP des serveurs DNS maîtres. 
 +  * **stub** 
 +    * Ce type définit le serveur DNS comme serveur esclave pour la zone concernée mais uniquement pour les **enregistrements** de type **NS**. 
 +  *  **forward** 
 +    * Ce type définit le serveur DNS comme serveur de transit pour la zone concernée. Ceci implique que toute requête est re-transmise vers un autre serveur. 
 +  * **hint**  
 +    * Ce type définit la zone concernée comme une zone racine. Ceci implique que lors du démarrage du serveur, cette zone est utilisée pour récupérer les adresses des serveurs DNS racine.
  
-Les options sont détaillées dans le manuel de chaque module. Par exemple pour pam_rhosts_auth.so.1 :+La valeur "notify" est utilisée pour indiquer si non ( no ) ou oui ( yes ) les autres serveurs DNS sont informés de changements dans la zone.
  
-<code> +La deuxième directive dans une section de zone comporte la valeur **file**Il indique l'emplacement du fichier de zone.
-# man pam_rhosts_auth +
-Mise en page en cours Veuillez patienter... terminé+
  
-StandardsEnvironments, and Macros            pam_rhosts_auth(5)+Chaque section de zoneà l'exception de la zone "." est associée avec une section de zone inversée.
  
-NAME +<file> 
-     pam_rhosts_auth - authentication management PAM module using +zone "." { 
-     ruserok()+    type hint; 
 +    file "named.ca"; 
 +}; 
 +</file>
  
-SYNOPSIS +La section de zone fait correspondre un nom avec une adresse IP tandis que la section de zone inversée fait l'inverseLa section inversée a un nom d'un syntaxe spécifique :
-     /usr/lib/security/pam_rhosts_auth.so.1+
  
-DESCRIPTION +<file> 
-     The             rhosts              PAM              module, +adresse_réseau_inversée.in-addr.arpa
-     /usr/lib/security/pam_rhosts_auth.so.1, authenticates a user +</file>
-     via    the    rlogin    authentication    protocol    Only +
-     pam_sm_authenticate()  is  implemented  within  this module. +
-     pam_sm_authenticate()  uses  the  ruserok(3SOCKET)   library +
-     function   to   authenticate   the   rlogin   or  rsh  user. +
-     pam_sm_setcred() is a null function.+
  
-     /usr/lib/security/pam_rhosts_auth.so.1  is  designed  to  be +Par exemple, la zone suivante correspond à notre domaine, ici appelée "i2tch.loc"Une valeur de {!*} interdirait tout transfert de requête de zoneCelui-ci fait correspondre le nom de la machine avec son adresse IP:
-     stacked   on  top  of   the  /usr/lib/security/pam_unix.so.1 +
-     module for both the rlogin and rsh services. This module  is +
-     normally configured as sufficient so that subsequent authen- +
-     tication    is    performed    only    on     failure     of +
-     pam_sm_authenticate(). The following option may be passed in +
-     to this service module:+
  
-     debug           syslog(3C)    debugging    information    at +<file> 
-                     LOG_DEBUG level.+zone "i2tch.loc"
 +    type master; 
 +    file "zone/db.i2tch.loc.hosts"; 
 +    forwarders { }; 
 +}; 
 +</file>
  
-ATTRIBUTES +La zone suivante est également celle de notre machine mais dans le sens inverse. Le fichier **zone/db.2.0.10.hosts** fait correspondre notre adresse IP avec le nom de la machine.
-     See attributes(5) for descriptions of the  following  attri- +
-     butes:+
  
-     ____________________________________________________________ +<file> 
-    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       | +zone "2.0.10.in-addr.arpa" { 
-    | MT Level                    | MT-Safe with exceptions     | +    type master; 
-    |_____________________________|_____________________________|+    file "zone/db.2.0.10.hosts"; 
 +    forwarders { }; 
 +}; 
 +</file>
  
-SEE ALSO +Cette zone est la zone créée pour le réseau loopback :
-     pam(3PAM),     pam_authenticate(3PAM),     ruserok(3SOCKET), +
-     syslog(3C), libpam(3LIB), pam.conf(4), attributes(5)+
  
-NOTES +<file> 
-     The interfaces in  libpam() are MT-Safe only if each  thread +zone "localhost" { 
-     within the multi-threaded application uses its own  PAM han- +    type master; 
-     dle.+    file "zone/db.localhost"; 
 +}; 
 +</file>
  
-SunOS 5.10          Last change: 28 Oct 1996                    1 +La zone suivante est la zone créée pour le réseau loopback mais dans le sens inverseLe fichier **zone/db.127.0.0.1** fait correspondre l'adresse IP 127.0.0.1 avec le nom localhost:
-</code>+
  
-Ce manuel indique l'utilisation de l'option **debug**. +<file
- +zone "0.0.127.in-addr.arpa"
-<WRAP center round important 60%+    type master; 
-Passez en revue les manuels des autres modules PAM appelés par le fichier pam.conf+    file "zone/db.127.0.0.1"; 
-</WRAP>+}; 
 +</file>
  
 +====Les fichiers de configuration des zones====
  
-====RBAC====+  * /var/named/zone/db.127.0.0.1  
 +  * /var/named/zone/db.localhost  
 +  * /var/named/zone/db.2.0.10.hosts  
 +  * /var/named/zone/db.i2tch.loc.hosts
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-Si ce n'est pas déjà fait, créez deux utilisateurs **user1** et **user2**.+**Important** - Chacun de ses fichiers a besoin d'être créé.
 </WRAP> </WRAP>
  
-Le service **RBAC** (**R**ole **B**ased **A**ccess **C**ontrol) permet à un utilisateur autorisé à exécuter une commande en tant que **root**.+Les fichiers de zone sont composées de lignes d'une forme:
  
-L'implémentation est basée sur des **autorisations** ou **//authorisations//**.+|  nom  |  TTL  |  classe  |  type  |  donnée  |
  
-Des autorisations et des commandes sont regroupés dans des **profils** ou **//rights//**.+
  
-Un **rôle** est un pseudo-compte que l'utilisateur peut atteindre via la commande su.+  * **nom*
 +    * Le nom DNS. 
 +  * **TTL** 
 +    * La durée de vie en cache de cet enregistrement. 
 +  * **classe** 
 +    * Le réseau de transport utilisé. Dans notre cas, le réseau est du TCP. La valeur est donc IN. 
 +  * **type** 
 +    * Le type d'enregistrement: 
 +      * SOA Start of Authority - se trouve au début du fichier et contient des informations générales 
 +      * NS - Name Server  - le nom du serveur de nom 
 +      * A - Address - indique une résoltuion de nom vers une adresse IP. Ne se trouve que dans les fichiers **.hosts** 
 +      * PTR - %%PoinTeR%% - indique une résoltuion d'une adresse IP vers un nomNe se trouve que dans les fichiers inversés. 
 +      * MX - Mail eXchange - le nom d'un serveur de mail. 
 +      * CNAME - Canonical Name - un alias d'une machine. 
 +      * HINFO - Hardware Info - fournit des informations sur le matériel de la machine      
 +  * **donnée** 
 +    * La donnée de la ressource: 
 +      * Une adresse IP pour un enregistrement de type A 
 +      * Un nom de machine pour un eregistrement de type PTR
  
-Les autorisations sont définies dans le fichier **/etc/security/auth_attr** :+Créez le répertoire **/var/named/zone** :
  
-<file+<code
-cat /etc/security/auth_attr +mkdir /var/named/zone 
-+</code>
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved. +
-# Use is subject to license terms. +
-+
-# /etc/security/auth_attr +
-+
-# execution attributes for profiles. see auth_attr(4) +
-+
-#ident  "@(#)auth_attr  1.1     07/01/31 SMI" +
-+
-+
-::::: +
-solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html +
-solaris.admin.dcmgr.:::OS Server Manager::help=AuthDcmgrHeader.html +
-solaris.admin.dcmgr.admin:::Manage OS Services and Patches::help=AuthDcmgrAdmin.html +
-solaris.admin.dcmgr.clients:::Manage Diskless Clients::help=AuthDcmgrClients.html +
-solaris.admin.dcmgr.read:::View OS Services, Patches and Diskless Clients::help=AuthDcmgrRead.html +
-solaris.admin.diskmgr.:::Disk Manager::help=AuthDiskmgrHeader.html +
-solaris.admin.diskmgr.read:::View Disks::help=AuthDiskmgrRead.html +
-solaris.admin.diskmgr.write:::Manage Disks::help=AuthDiskmgrWrite.html +
-solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html +
-solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html +
-solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html +
-solaris.admin.logsvc.:::Log Viewer::help=AuthLogsvcHeader.html +
-solaris.admin.logsvc.purge:::Remove Log Files::help=AuthLogsvcPurge.html +
-solaris.admin.logsvc.read:::View Log Files::help=AuthLogsvcRead.html +
-solaris.admin.logsvc.write:::Manage Log Settings::help=AuthLogsvcWrite.html +
-solaris.admin.patchmgr.:::Patch Manager:: +
-solaris.admin.patchmgr.read:::View Patches::help=AuthPatchmgrRead.html +
-solaris.admin.patchmgr.write:::Add and Remove Patches::help=AuthPatchmgrWrite.html +
-solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html +
-solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinterDelete.html +
-solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html +
-solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.html +
-solaris.admin.privilege.:::Privileges::help=AuthPrivilegeHeader.html +
-solaris.admin.privilege.write:::Manage Privileges::help=AuthPrivilegeWrite.html +
-solaris.admin.procmgr.:::Process Manager::help=AuthProcmgrHeader.html +
-solaris.admin.procmgr.admin:::Manage All Processes::help=AuthProcmgrAdmin.html +
-solaris.admin.procmgr.user:::Manage Owned Processes::help=AuthProcmgrUser.html +
-solaris.admin.serialmgr.:::Serial Port Manager::help=AuthSerialmgrHeader.html +
-solaris.admin.serialmgr.delete:::Delete Serial Ports::help=AuthSerialmgrDelete.html +
-solaris.admin.serialmgr.modify:::Manage Serial Ports::help=AuthSerialmgrModify.html +
-solaris.admin.serialmgr.read:::View Serial Ports::help=AuthSerialmgrRead.html +
-solaris.admin.usermgr.:::User Accounts::help=AuthUsermgrHeader.html +
-solaris.admin.usermgr.audit:::Audit Controls::help=AuthUserMgrAudit.html +
-solaris.admin.usermgr.labels:::Label and Clearance Range::help=AuthUserMgrLabels.html +
-solaris.admin.usermgr.pswd:::Change Password::help=AuthUserMgrPswd.html +
-solaris.admin.usermgr.read:::View Users and Roles::help=AuthUsermgrRead.html +
-solaris.admin.usermgr.write:::Manage Users::help=AuthUsermgrWrite.html +
-solaris.admin.volmgr.:::Logical Volume Manager:: +
-solaris.admin.volmgr.read:::View Logical Volumes::help=AuthVolmgrRead.html +
-solaris.admin.volmgr.write:::Manage Logical Volumes::help=AuthVolmgrWrite.html +
-solaris.audit.:::Audit Management::help=AuditHeader.html +
-solaris.audit.config:::Configure Auditing::help=AuditConfig.html +
-solaris.audit.read:::Read Audit Trail::help=AuditRead.html +
-solaris.compsys.:::Computer System Information::help=AuthCompSysHeader.html +
-solaris.compsys.read:::View Computer System Information::help=AuthCompSysRead.html +
-solaris.compsys.write:::Manage Computer System Information::help=AuthCompSysWrite.html +
-solaris.device.:::Device Allocation::help=DevAllocHeader.html +
-solaris.device.allocate:::Allocate Device::help=DevAllocate.html +
-solaris.device.cdrw:::CD-R/RW Recording Authorizations::help=DevCDRW.html +
-solaris.device.config:::Configure Device Attributes::help=DevConfig.html +
-solaris.device.grant:::Delegate Device Administration::help=DevGrant.html +
-solaris.device.revoke:::Revoke or Reclaim Device::help=DevRevoke.html +
-solaris.dhcpmgr.:::DHCP Service Management::help=DhcpmgrHeader.html +
-solaris.dhcpmgr.write:::Modify DHCP Service Configuration::help=DhcpmgrWrite.html +
-solaris.file.:::File Operations::help=FileHeader.html +
-solaris.file.chown:::Change File Owner::help=FileChown.html +
-solaris.file.owner:::Act as File Owner::help=FileOwner.html +
-solaris.grant:::Grant All Solaris Authorizations::help=PriAdmin.html +
-solaris.jobs.:::Job Scheduler::help=JobHeader.html +
-solaris.jobs.admin:::Manage All Jobs::help=AuthJobsAdmin.html +
-solaris.jobs.grant:::Delegate Cron & At Administration::help=JobsGrant.html +
-solaris.jobs.user:::Manage Owned Jobs::help=AuthJobsUser.html +
-solaris.label.:::Label Management::help=LabelHeader.html +
-solaris.label.file.downgrade:::Downgrade File Label::help=LabelFileDowngrade.html +
-solaris.label.file.upgrade:::Upgrade File Label::help=LabelFileUpgrade.html +
-solaris.label.print:::View Printer Queue at All Labels::help=LabelPrint.html +
-solaris.label.range:::Set Label Outside User Accred Range::help=LabelRange.html +
-solaris.label.win.downgrade:::Downgrade DragNDrop or CutPaste Info::help=LabelWinDowngrade.html +
-solaris.label.win.noview:::DragNDrop or CutPaste without viewing contents::help=LabelWinNoView.html +
-solaris.label.win.upgrade:::Upgrade DragNDrop or CutPaste Info::help=LabelWinUpgrade.html +
-solaris.login.:::Login Control::help=LoginHeader.html +
-solaris.login.enable:::Enable Logins::help=LoginEnable.html +
-solaris.login.remote:::Remote Login::help=LoginRemote.html +
-solaris.mail.:::Mail::help=MailHeader.html +
-solaris.mail.mailq:::Mail Queue::help=MailQueue.html +
-solaris.network.hosts.:::Computers and Networks::help=NetworkHostsHeader.html +
-solaris.network.hosts.read:::View Computers and Networks::help=NetworkHostsRead.html +
-solaris.network.hosts.write:::Manage Computers and Networks::help=NetworkHostsWrite.html +
-solaris.print.:::Printer Management::help=PrintHeader.html +
-solaris.print.admin:::Administer Printer::help=PrintAdmin.html +
-solaris.print.cancel:::Cancel Print Job::help=PrintCancel.html +
-solaris.print.list:::List Jobs in Printer Queue::help=PrintList.html +
-solaris.print.nobanner:::Print without Banner::help=PrintNoBanner.html +
-solaris.print.ps:::Print Postscript::help=PrintPs.html +
-solaris.print.unlabeled:::Print without Label::help=PrintUnlabeled.html +
-solaris.profmgr.:::Rights::help=ProfmgrHeader.html +
-solaris.profmgr.assign:::Assign All Rights::help=AuthProfmgrAssign.html +
-solaris.profmgr.delegate:::Assign Owned Rights::help=AuthProfmgrDelegate.html +
-solaris.profmgr.execattr.write:::Manage Commands::help=AuthProfmgrExecattrWrite.html +
-solaris.profmgr.read:::View Rights::help=AuthProfmgrRead.html +
-solaris.profmgr.write:::Manage Rights::help=AuthProfmgrWrite.html +
-solaris.project.:::Solaris Projects:: +
-solaris.project.read:::View Projects::help=AuthProjmgrRead.html +
-solaris.project.write:::Manage Projects::help=AuthProjmgrWrite.html +
-solaris.role.:::Roles::help=RoleHeader.html +
-solaris.role.assign:::Assign All Roles::help=AuthRoleAssign.html +
-solaris.role.delegate:::Assign Owned Roles::help=AuthRoleDelegate.html +
-solaris.role.write:::Manage Roles::help=AuthRoleWrite.html +
-solaris.smf.:::SMF Management::help=SmfHeader.html +
-solaris.smf.manage.:::Manage All SMF Service States::help=SmfManageHeader.html +
-solaris.smf.manage.autofs:::Manage Automount Service States::help=SmfAutofsStates.html +
-solaris.smf.manage.bind:::Manage DNS Service States::help=BindStates.html +
-solaris.smf.manage.cde.:::Manage CDE Service States::help=ManageCDEHeader.html +
-solaris.smf.manage.cde.calendar:::Manage Calendar Service States::help=ManageCDECalendar.html +
-solaris.smf.manage.cde.printinfo:::Manage Printinfo Service States::help=ManageCDEPrintinfo.html +
-solaris.smf.manage.cde.spc:::Manage Spc Service States::help=ManageCDESpc.html +
-solaris.smf.manage.cde.tooltalk:::Manage Tooltalk Service States::help=ManageCDETooltalk.html +
-solaris.smf.manage.cron:::Manage Cron Service States::help=SmfCronStates.html +
-solaris.smf.manage.dt.:::Manage Desktop Service States::help=ManageDtHeader.html +
-solaris.smf.manage.dt.login:::Manage Desktop Login Service States::help=ManageDtLogin.html +
-solaris.smf.manage.font:::Manage Font Service States:: +
-solaris.smf.manage.inetd:::Manage inetd and inetd managed services States::help=SmfIntedStates.html +
-solaris.smf.manage.labels:::Manage label server::help=LabelServer.html +
-solaris.smf.manage.name-service-cache:::Manage Name Service Cache Daemon Service States::help=SmfNscdStates.html +
-solaris.smf.manage.postgres:::Manage Postgres service states:: +
-solaris.smf.manage.power:::Manage Power Management Service States::help=SmfPowerStates.html +
-solaris.smf.manage.routing:::Manage Routing Service States::help=SmfRoutingStates.html +
-solaris.smf.manage.rpc.bind:::Manage RPC Program number mapper::help=SmfRPCBind.html +
-solaris.smf.manage.sendmail:::Manage Sendmail Service States::help=SmfSendmailStates.html +
-solaris.smf.manage.servicetags:::Manage Service Tags Service States::help=StStates.html +
-solaris.smf.manage.ssh:::Manage Secure Shell Service States::help=SmfSshStates.html +
-solaris.smf.manage.system-log:::Manage Syslog Service States::help=SmfSyslogStates.html +
-solaris.smf.manage.tnctl:::Manage Refresh of Trusted Network Parameters::help=TNctl.html +
-solaris.smf.manage.tnd:::Manage Trusted Network Daemon::help=TNDaemon.html +
-solaris.smf.manage.x11:::Manage X11 Service States:: +
-solaris.smf.modify.:::Modify All SMF Service Properties::help=SmfModifyHeader.html +
-solaris.smf.modify.application:::Modify Application Type Properties::help=SmfModifyAppl.html +
-solaris.smf.modify.dependency:::Modify Service Dependencies::help=SmfModifyDepend.html +
-solaris.smf.modify.framework:::Modify Framework Type Properties::help=SmfModifyFramework.html +
-solaris.smf.modify.method:::Modify Service Methods::help=SmfModifyMethod.html +
-solaris.smf.value.:::Change Values of SMF Service Properties::help=SmfValueHeader.html +
-solaris.smf.value.cde.:::Change CDE Service Property Values::help=ValueCDEHeader.html +
-solaris.smf.value.cde.calendar:::Change Calendar Service Property Values::help=ValueCDECalendar.html +
-solaris.smf.value.cde.login:::Change dtlogin Service Property Values::help=ValueCDELogin.html +
-solaris.smf.value.cde.printinfo:::Change Printinfo Service Property Values::help=ValueCDEPrintinfo.html +
-solaris.smf.value.cde.spc:::Change Spc Service Property Values::help=ValueCDESpc.html +
-solaris.smf.value.cde.tooltalk:::Change Tooltalk Service Property Values::help=ValueCDETooltalk.html +
-solaris.smf.value.inetd:::Change values of SMF Inetd configuration paramaters::help=SmfValueInted.html +
-solaris.smf.value.postgres:::Change Postgres value properties:: +
-solaris.smf.value.routing:::Change Values of SMF Routing Properties::help=SmfValueRouting.html +
-solaris.smf.value.servicetags:::Change Service Tag Service Property Values::help=StValue.html +
-solaris.smf.value.tnd:::Change Trusted Network Daemon Service Property Values::help=ValueTND.html +
-solaris.snmp.:::SNMP Management::help=AuthSnmpHeader.html +
-solaris.snmp.read:::Get SNMP Information::help=AuthSnmpRead.html +
-solaris.snmp.write:::Set SNMP Information::help=AuthSnmpWrite.html +
-solaris.system.:::Machine Administration::help=SysHeader.html +
-solaris.system.date:::Set Date & Time::help=SysDate.html +
-solaris.system.shutdown:::Shutdown the System::help=SysShutdown.html +
-</file> +
- +
-Chaque ligne est divisée en 7 champs. Seuls le premier, le quatrième et le dernier sont utilisées :+
  
-^ Champs ^ Description ^ +==db.i2tch.loc.hosts==
-| 1 | Nome de l'attribut | +
-| 4 | Bref description | +
-| 7 | Fichier d'aide |+
  
-Les fichiers d'aide se trouve dans le répertoire **/usr/lib/help/auths/locale/C** :+Ce fichier se trouve dans /var/named/zone. Il est le fichier qui définit la correspondance du nom de la machine **solaris.i2tch.loc** avec son numéro IP, à savoir le **10.0.2.15**. On définit dans ce fichier les machines qui doivent être appelées par leur nom :
  
 <code> <code>
-ls /usr/lib/help/auths/locale/+vi /var/named/zone/db.i2tch.loc.hosts 
-AllSolAuthsHeader.html         AuthProfmgrDelegate.html       JobHeader.html                 RoleHeader.html +# cat /var/named/zone/db.i2tch.loc.hosts 
-AuditConfig.html               AuthProfmgrExecattrWrite.html  JobsGrant.html                 SmfAutofsStates.html +$TTL 3D 
-AuditHeader.html               AuthProfmgrRead.html           LabelFileDowngrade.html        SmfCronStates.html +@       IN      SOA     solaris.i2tch.locroot.solaris.i2tch.loc( 
-AuditRead.html                 AuthProfmgrWrite.html          LabelFileUpgrade.html          SmfHeader.html +               20200117       ; Serial 
-AuthCompSysHeader.html         AuthProjmgrRead.html           LabelHeader.html               SmfInetdStates.html +               8H   ; Refresh 
-AuthCompSysRead.html           AuthProjmgrWrite.html          LabelPrint.html                SmfManageHeader.html +               2H   ; Retry 
-AuthCompSysWrite.html          AuthRoleAssign.html            LabelRange.html                SmfModifyAppl.html +               4W  ; Expire 
-AuthDcmgrAdmin.html            AuthRoleDelegate.html          LabelServer.html               SmfModifyDepend.html +               1D)  ; Minimum TTL 
-AuthDcmgrClients.html          AuthRoleWrite.html             LabelWinDowngrade.html         SmfModifyFramework.html +               IN      NS      solaris.i2tch.loc
-AuthDcmgrHeader.html           AuthSerialmgrDelete.html       LabelWinNoView.html            SmfModifyHeader.html +localhost                   A       127.0.0.1 
-AuthDcmgrRead.html             AuthSerialmgrHeader.html       LabelWinUpgrade.html           SmfModifyMethod.html +dnsmaster                   IN      CNAME   solaris.i2tch.loc
-AuthDiskmgrHeader.html         AuthSerialmgrModify.html       LoginEnable.html               SmfNscdStates.html +solaris.i2tch.loc.       IN      A      10.0.2.15
-AuthDiskmgrRead.html           AuthSerialmgrRead.html         LoginHeader.html               SmfPowerStates.html +
-AuthDiskmgrWrite.html          AuthSnmpHeader.html            LoginRemote.html               SmfRoutingStates.html +
-AuthFsmgrHeader.html           AuthSnmpRead.html              MailHeader.html                SmfSendmailStates.html +
-AuthFsmgrRead.html             AuthSnmpWrite.html             MailQueue.html                 SmfSshStates.html +
-AuthFsmgrWrite.html            AuthUsermgrHeader.html         ManageCDECalendar.html         SmfSyslogStates.html +
-AuthJobsAdmin.html             AuthUserMgrPswd.html           ManageCDEHeader.html           SmfValueHeader.html +
-AuthJobsUser.html              AuthUsermgrRead.html           ManageCDEPrintinfo.html        SmfValueInetd.html +
-AuthLogsvcHeader.html          AuthUsermgrWrite.html          ManageCDESpc.html              SmfValueRouting.html +
-AuthLogsvcPurge.html           AuthVolmgrRead.html            ManageCDETooltalk.html         SysDate.html +
-AuthLogsvcRead.html            AuthVolmgrWrite.html           ManageDtHeader.html            SysHeader.html +
-AuthLogsvcWrite.html           BindStates.html                ManageDtLogin.html             SysShutdown.html +
-AuthPatchmgrRead.html          DevAllocate.html               NetworkHostsHeader.html        TNctl.html +
-AuthPatchmgrWrite.html         DevAllocHeader.html            NetworkHostsRead.html          TNDaemon.html +
-AuthPrinterDelete.html         DevCDRW.html                   NetworkHostsWrite.html         ValueCDECalendar.html +
-AuthPrinterHeader.html         DevConfig.html                 PriAdmin.html                  ValueCDEHeader.html +
-AuthPrinterModify.html         DevGrant.html                  PrintAdmin.html                ValueCDELogin.html +
-AuthPrinterRead.html           DevRevoke.html                 PrintCancel.html               ValueCDEPrintinfo.html +
-AuthPrivilegeHeader.html       DhcpmgrHeader.html             PrintHeader.html               ValueCDESpc.html +
-AuthPrivilegeWrite.html        DhcpmgrWrite.html              PrintList.html                 ValueCDETooltalk.html +
-AuthProcmgrAdmin.html          FileChown.html                 PrintNoBanner.html             ValueTND.html +
-AuthProcmgrHeader.html         FileHeader.html                PrintPs.html                   X11States.html +
-AuthProcmgrUser.html           FileOwner.html                 PrintUnlabeled.html +
-AuthProfmgrAssign.html         FontStates.html                ProfmgrHeader.html +
-</code>+
  
-Les profils prédéfinis sont stockés dans le fichier **/etc/security/prof_attr** :+ftp IN CNAME solaris.i2tch.loc. 
 +www IN CNAME solaris.i2tch.loc. 
 +mail IN CNAME solaris.i2tch.loc. 
 +news IN CNAME solaris.i2tch.loc.
  
-<code> 
-# cat /etc/security/prof_attr 
-# 
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved. 
-# Use is subject to license terms. 
-# 
-# /etc/security/prof_attr 
-# 
-# execution attributes for profiles. see prof_attr(4) 
-# 
-#ident  "@(#)prof_attr  1.1     07/01/31 SMI" 
-# 
-# 
-:::: 
-........ 
-User Management:::Manage users, groups, home directory:auths=solaris.profmgr.read,solaris.admin.usermgr.write,solaris.admin.usermgr.read;help=RtUserMngmnt.html 
-........ 
 </code> </code>
  
-Cette ligne, toute comme les autres, contient 5 champs :+La première ligne de ce fichier commence par une ligne semblable à celle-ci:
  
-^ Champs ^ Description ^ +<file> 
-| 1 | Nom du profil | +$TTL 3D 
-| 2 | Inutilisé | +</file>
-| 3 | Inutilisé | +
-| 4 | Brève description | +
-| 5 | Attributs séparés par des points-virgules |+
  
-Dans notre ligne d'exemple, l'attribut est **auths=...**. Ce qui suit est une liste d'autorisationstelles que celles-ci se trouvent dans le fichier **/etc/security/auth_attr**, séparées par des virgules.+Cette ligne indique aux autres serveurs DNS pendant combien de temps ils doivent garder en cache les enregistrements de cette zone. La durée peut s'exprimer en jours (**D**)en heures (**H**) ou en secondes (**S**).
  
-Les profiles majeurs sont :+La deuxième ligne définit une **classe** **IN**ternet, un **SOA** (Start Of Authority), le nom du serveur primaire et l'adresse de l'administrateur de mail :
  
 <file> <file>
-Primary Administrator:::Can perform all administrative tasks:auths=solaris.*,solaris.grant;help=RtPriAdmin.html+@       IN      SOA     solaris.i2tch.loc. root.solaris.i2tch.loc(
 </file> </file>
 +
 +Le caractère **@** corréspond au nom de la zone et est une abréviation pour le nom de la zone décrit par le fichier de la zone, soit dans ce cas db.**i2tch.loc**.hosts, et présent dans le fichier /etc/named.conf :
  
 <file> <file>
-System Administrator:::Can perform most non-security administrative tasks:profiles=Audit Review,Printer Management,Cron Management,Device Management,File System Management,Mail Management,Maintenance and Repair,Media Backup,Media Restore,Name Service Management,Network Management,Object Access Management,Process Management,Software Installation,User Management,Project Management,All;help=RtSysAdmin.html+zone "i2tch.loc" {  
 +      type master 
 +      file "zone/db.i2tch.loc.hosts";  
 +      forwarders { }; 
 +};
 </file> </file>
 +
 +<WRAP center round important 60%>
 +**Important** - Notez le point à la fin de chaque nom de domaine. Notez bien le remplacement du caractère @ dans l'adresse email de l'administrateur de mail par le caractère "."
 +</WRAP>
 +
 +**Le numéro de série** doit être modifié chaque fois que le fichier soit changé. Il faut noter que dans le cas de plusieurs changements dans la même journée il est necessaire d'incrémenter les deux derniers chiffres du numéro de série. Par exemple, dans le cas de deux changements en date du 02/12/2019, le premier fichier comportera une ligne Serial avec la valeur 2019120201 tandis que le deuxième changement comportera le numéro de série 2019120202:
  
 <file> <file>
-Operator:::Can perform simple administrative tasks:profiles=Printer Management,Media Backup,All;help=RtOperator.html+       20200117       Serial
 </file> </file>
 +
 +La ligne suivante fixe le temps de rafraichissement, soit 8 heures:
  
 <file> <file>
-Basic Solaris User:::Automatically assigned rights:auths=solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.project.read,solaris.admin.patchmgr.read,,solaris.network.hosts.read,solaris.admin.volmgr.read;profiles=All;help=RtDefault.html+       8H Refresh
 </file> </file>
  
-Le associations de commandes avec les profils sont stockées dans le fichier **/etc/security/exec_attr** :+La ligne suivante fixe le temps entre de nouveaux essaies, soit 2 heures:
  
 <file> <file>
-+       2H Retry 
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved. +
-# Use is subject to license terms. +
-+
-# /etc/security/exec_attr +
-+
-# execution attributes for profiles. see exec_attr(4) +
-+
-#ident  "@(#)exec_attr  1.2     07/03/30 SMI" +
-+
-+
-.......... +
-User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0 +
-User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0 +
-User Management:solaris:cmd:::/usr/sbin/groupmod:uid=0 +
-User Management:solaris:cmd:::/usr/sbin/roleadd:euid=0 +
-User Management:solaris:cmd:::/usr/sbin/roledel:euid=0 +
-User Management:solaris:cmd:::/usr/sbin/rolemod:euid=0 +
-User Management:solaris:cmd:::/usr/sbin/useradd:euid=0 +
-User Management:solaris:cmd:::/usr/sbin/userdel:euid=0 +
-User Management:solaris:cmd:::/usr/sbin/usermod:euid=0 +
-User Management:suser:cmd:::/usr/sbin/grpck:euid=0 +
-User Management:suser:cmd:::/usr/sbin/pwck:euid=0 +
-User Security:solaris:act:::SDTscgui;*;*;*;0:uid=0 +
-User Security:solaris:cmd:::/usr/sbin/passmgmt:uid=0 +
-User Security:suser:cmd:::/usr/bin/passwd:uid=0 +
-User Security:suser:cmd:::/usr/sbin/pwck:euid=0 +
-User Security:suser:cmd:::/usr/sbin/pwconv:euid=0 +
-..........+
 </file> </file>
  
-Les attributions des rôles et/ou des autorisations à des utilisateurs se trouvent dans le fichier **/etc/user_attr** :+La ligne suivante fixe le temps d'expiration, soit 4 semaines:
  
 <file> <file>
-+       4W Expire 
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved. +
-# Use is subject to license terms. +
-+
-# /etc/user_attr +
-+
-# execution attributes for profiles. see user_attr(4) +
-+
-#ident  "@(#)user_attr  1.1     07/01/31 SMI" +
-+
-+
-adm::::profiles=Log Management +
-lp::::profiles=Printer Management +
-postgres::::type=role;profiles=Postgres Administration,All +
-root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no;min_label=admin_low;clearance=admin_high+
 </file> </file>
  
-Le fichier **/etc/security/policy.conf** définit les profiles et autorisations attribués à tous les utilisateurs :+La ligne suivante fix le temps minimum pour la valeur TTL, soit un jour:
  
 <file> <file>
-+       1D; Minimum TTL  
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved. +</file>
-# Use is subject to license terms. +
-+
-# /etc/security/policy.conf +
-+
-# security policy configuration for user attributes. see policy.conf(4+
-+
-#ident  "@(#)policy.conf        1.11    04/09/27 SMI" +
-+
-AUTHS_GRANTED=solaris.device.cdrw +
-PROFS_GRANTED=Basic Solaris User+
  
-# crypt(3c) Algorithms Configuration +Cette ligne identifie notre serveur de noms :
-+
-# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed to +
-# be used for new passwords.  This is enforced only in crypt_gensalt(3c). +
-+
-CRYPT_ALGORITHMS_ALLOW=1,2a,md5+
  
-# To deprecate use of the traditional unix algorithm, uncomment below +<file> 
-# and change CRYPT_DEFAULT= to another algorithm For example, +IN NS solaris.i2tch.loc
-# CRYPT_DEFAULT=1 for BSD/Linux MD5. +</file>
-+
-#CRYPT_ALGORITHMS_DEPRECATE=__unix__+
  
-# The Solaris default is the traditional UNIX algorithm This is not +Dans le cas où notre serveur était également un serveur mailNous trouverions aussi une entrée du type SMTP (MX: 
-# listed in crypt.conf(4since it is internal to libc.  The reserved + 
-# name __unix__ is used to refer to it. +<file> 
-# +IN MX 10 mail.i2tch.loc
-CRYPT_DEFAULT=__unix__ +</file> 
-+ 
-# These settings determine the default privileges users have If not set, +Ci-dessous on définit avec une entrée du type A, les machines que l'on souhaite appeler par leur nom, à savoir **solaris.i2tch.loc** et **localhost** : 
-# the default privileges are taken from the inherited set+ 
-# There are two different settings; PRIV_DEFAULT determines the default +<file> 
-# set on login; PRIV_LIMIT defines the Limit set on login. +localhost                             127.0.0. 
-# Individual users can have privileges assigned or taken away through +solaris.i2tch.loc     IN A        10.0.2.15
-# user_attr Privileges can also be assigned to profiles in which case +
-# the users with those profiles can use those privileges through pfexec(1m). +
-# For maximum future compatibility, the specifications should +
-# always include "basic" or "all"; privileges should then be removed using +
-# the negation E.g., PRIV_LIMIT=all,!sys_linkdir takes away only the +
-# sys_linkdir privilege, regardless of future additional privileges. +
-# Similarly, PRIV_DEFAULT=basic,!file_link_any takes away only the +
-# file_link_any privilege from the basic privilege set; only that notation +
-# is immune from a future addition of currently unprivileged operations to +
-# the basic privilege set. +
-# NOTE: removing privileges from the the Limit set requires EXTREME care +
-# as any set-uid root program may suddenly fail because it lacks certain +
-# privilege(s). +
-+
-#PRIV_DEFAULT=basic +
-#PRIV_LIMIT=all +
-+
-# LOCK_AFTER_RETRIES specifies the default account locking policy for local +
-# user accounts (passwd(4)/shadow(4)) The default may be overridden by +
-# a user's user_attr(4) "lock_after_retries" value. +
-# YES enables local account locking, NO disables local account locking. +
-# The default value is NO. +
-+
-#LOCK_AFTER_RETRIES=NO+
 </file> </file>
  
-Pour visualiser les roles, profiles et auths attribués à un utilisateur,il convient d'utiliser les commandes **roles**, **profiles** et **auths** :+Ci-dessous on définit des **Alias** avec des entrées du type CNAME. Les alias servent à identifier une machine.  
 + 
 +<file> 
 +dnsmaster IN CNAME solaris.i2tch.loc. 
 +ftp IN CNAME solaris.i2tch.loc. 
 +www IN CNAME solaris.i2tch.loc. 
 +mail IN CNAME solaris.i2tch.loc. 
 +news IN CNAME solaris.i2tch.loc. 
 +</file> 
 + 
 +Il est possible de vérifier ce fichier grâce à la commande **/usr/sbin/named-checkzone** :
  
 <code> <code>
-roles +cd /var/named/zone 
-Pas de rôles +/usr/sbin/named-checkzone i2tch.loc db.i2tch.loc.hosts 
-profiles +zone i2tch.loc/IN: loaded serial 20200117 
-Web Console Management +OK
-All +
-Basic Solaris User +
-# auths +
-solaris.+
-# roles user1 +
-Pas de rôles +
-# profiles user1 +
-Basic Solaris User +
-All +
-# auths user1 +
-solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.project.read,solaris.admin.patchmgr.read,solaris.network.hosts.read,solaris.admin.volmgr.read+
 </code> </code>
  
-===LAB#1 - Créer un rôle===+==db.2.0.10.hosts==
  
-Trois principales commandes sont utilisées pour la gestion de RBAC :+Ce fichier se trouve dans /var/named/zone. Il est le fichier qui définit la correspondance de l'adresse IP de la machine, à savoir le **10.0.2.15** avec le nom **solaris.i2tch.loc. **Le chiffre **15** dans la dernière ligne correspond au 10.0.2.**15**:
  
-  * **roleadd** +<code> 
-    * ajoute un compte rôle sur le système, +# vi db.2.0.10.hosts 
-  * **rolemod** +# cat db.2.0.10.hosts 
-    * modifie l’information de la connexion d’un rôle, +$TTL 3D 
-  * **useradd** +@       IN      SOA     solaris.i2tch.loc.        solaris.i2tch.loc. ( 
-    * ajoute un compte utilisateur sur le système+                20200117 ; Serial 
 +                10800   ; Refresh 
 +                3600    ; Retry 
 +                604800  ; Expire 
 +                86400) ; Minimum TTL 
 +                NS      solaris.i2tch.loc. 
 +15       IN      PTR     solaris.i2tch.loc. 
 +</code>
  
-==roleadd==+Il est possible de vérifier ce fichier grâce à la commande **/usr/sbin/named-checkzone** :
  
-La commande roleadd ajoute une entrée aux fichiers **/etc/passwd**, **/etc/shadow** et **/etc/user_attr**Elle utilise fréquemment les options suivantes :+<code> 
 +/usr/sbin/named-checkzone 2.0.10.in-addr.arpa db.2.0.10.hosts 
 +zone 2.0.10.in-addr.arpa/INloaded serial 20200117 
 +OK 
 +</code>
  
-^ Option ^ Description ^ +==db.127.0.0.1==
-| -c comment | brève description du rôle | +
-| -d dir | répertoire local du rôle | +
-| -m | créer le répertoire local si c’est nécessaire | +
-| -A authorization | affecter des autorisations au rôle | +
-| -P profile | affecter des profils au rôle |+
  
-Vous allez maintenant créer un compte de rôle pour un gestionnaire de sauvegardesSaisissez donc la commande suivante :+Ce fichier se trouve dans /var/named/zoneIl est le fichier qui définit la correspondance entre l'adresse IP **127.0.0.1** et le nom **localhost** :
  
-  #roleadd -m -d /export/home/tarback -c "Gestionnaire de sauvegardes" -P "Media Backup,Media Restore" tarback [Entrée]+<code> 
 +# vi db.127.0.0.1 
 +# cat db.127.0.0.1 
 +$TTL 3D 
 +@               IN      SOA     i2tch.loc. root.i2tch.loc. ( 
 +                20200117 ; Serial 
 +                28800   ; Refresh 
 +                7200    ; Retry 
 +                604800  ; Expire 
 +                86400)  ; Minimum TTL 
 +                NS      solaris.i2tch.loc. 
 +localhost      IN           127.0.0.1 
 +</code>
  
-Vous obtiendrez un résultat similaire à celui-ci :+Vérifier la syntaxe de ce fichier :
  
 <code> <code>
-roleadd -m -d /export/home/tarback -c "Gestionnaire de sauvegardes" -P "Media Backup,Media Restore" tarback +# /usr/sbin/named-checkzone 0.0.127.in-addr.arpa db.127.0.0.1 
-64 blocs+zone 0.0.127.in-addr.arpa/IN: loaded serial 20200117 
 +OK
 </code> </code>
  
-Consultez maintenant les fichiers **/etc/user_attr****/etc/passwd** et **/etc/shadow** :+==db.localhost== 
 + 
 +Ce fichier se trouve dans /var/named/zone. Il est le fichier qui définit la correspondance du nom **localhost **avec l'adresse IP **127.0.0.1** :
  
 <code> <code>
-# cat /etc/user_attr | grep tarback +# vi db.localhost 
-tarback::::type=role;profiles=Media Backup,Media Restore +# cat db.localhost 
-# cat /etc/passwd | grep tarback +$TTL 3D 
-tarback:x:103:1:Gestionnaire de sauvegardes:/export/home/tarback:/bin/pfsh +@       IN      SOA     solaris.i2tch.loc. root.solaris.i2tch.loc. ( 
-# cat /etc/shadow | grep tarback +         20200117  Serial 
-tarback:*LK*:::::::+         8H  ; Refresh 
 +         2H  ; Retry 
 +         4W  ; Expire 
 +         1D) ; Minimum TTL 
 +         NS  solaris.i2tch.loc. 
 +1        IN PTR   localhost. 
 </code> </code>
  
-Veuillez noter qu'un compte de rôle utilise un shell de profil. **Bash** ne peut **pas** être utilisé en tant que shell pour un compte de rôle.+Vérifier la syntaxe de ce fichier :
  
-Les shells des profils sont **pfsh**, **pfcsh**, **pfksh** pour respectivement le Bourne, le C, et le Korn shell.+<code> 
 +# /usr/sbin/named-checkzone localhost db.localhost 
 +zone localhost/IN: loaded serial 20200117 
 +OK 
 +</code>
  
-Un shell de profil est un type de shell spécial qui donne accès aux applications privilégiées qui sont affectées au profil.+Il est maintenant possible de démarrer le serveur DNS :
  
-La commande ou application privilégiée est exécutée avec les attributs spécifiés dans la base de données par la commande **pfexec**.+<coe> 
 +# /usr/sbin/svcadm enable svc:/network/dns/server:default 
 +</code>
  
-<WRAP center round important 60%> +Avant de pouvoir tester votre serveur DNS, vous avez besoin d'indiquer à votre machine qu'elle doit utiliser elle-même pour la résolution des noms
-Consultez le manuel de la commande pfexec. +
-</WRAP>+
  
-Dernièrementcréez un mot de passe pour tarback :+Pour le faireil convient d'éditer le fichier **/etc/resolv.conf** :
  
 <code> <code>
-passwd tarback +vi /etc/resolv.conf 
-Nouveau mot de passe : +# cat /etc/resolv.conf 
-Entrez de nouveau le mot de passe : +nameserver 10.0.2.15 
-passwd: mot de passe correctement modifié pour tarback+nameserver 10.0.2.3
 </code> </code>
  
-==rolemod==+Testez maintenant votre serveur DNS grâce à les commandes **nslookup** et **dig**: 
  
-Les options les plus fréquentes sont :+<code> 
 +# nslookup www.ittraining.center 
 +Server        10.0.2.15 
 +Address:        10.0.2.15#53
  
-^ Option ^ Description ^ +Non-authoritative answer: 
--e expire | date d’expiration pour un rôle | +Name:   www.ittraining.center 
-| -l new_logname  | nouveau nom de connexion | +Address: 217.160.0.225
-| -s | shell | +
-| -A authorization | une ou plusieurs autorisations séparées par une virgule | +
-| -P profile | un ou plusieurs profils séparés par une virgule |+
  
-Par exemple :+# dig www.ittraining.center
  
-  # rolemod –A auth1,auth2 –P profile1,profile2+; <<>> DiG 9.6-ESV-R8 <<>> www.ittraining.center 
 +;; global options: +cmd 
 +;; Got answer: 
 +;; ->>HEADER<<- opcode: QUERYstatus: NOERRORid: 19555 
 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 11
  
-Cette ligne de commande ajoute les autorisations **auth1** et **auth2** aux profils **profile1** et **profile2**.+;; QUESTION SECTION: 
 +;www.ittraining.center.         IN      A
  
 +;; ANSWER SECTION:
 +www.ittraining.center.  3587    IN      A       217.160.0.225
  
-==useradd==+;; AUTHORITY SECTION: 
 +.                       7153    IN      NS      m.root-servers.net. 
 +.                       7153    IN      NS      a.root-servers.net. 
 +.                       7153    IN      NS      e.root-servers.net. 
 +.                       7153    IN      NS      i.root-servers.net. 
 +.                       7153    IN      NS      j.root-servers.net. 
 +.                       7153    IN      NS      f.root-servers.net. 
 +.                       7153    IN      NS      k.root-servers.net. 
 +.                       7153    IN      NS      b.root-servers.net. 
 +.                       7153    IN      NS      g.root-servers.net. 
 +.                       7153    IN      NS      d.root-servers.net. 
 +.                       7153    IN      NS      h.root-servers.net. 
 +.                       7153    IN      NS      l.root-servers.net. 
 +.                       7153    IN      NS      c.root-servers.net.
  
-La commande useradd peut être utilisée pour ajouter un nouvel utilisateur avec des autorisations et des profils aux fichiers /etc/passwd, /etc/shadow et /etc/user_attr.+;; ADDITIONAL SECTION: 
 +l.root-servers.net.     604754  IN      A       199.7.83.42 
 +l.root-servers.net.     604754  IN      AAAA    2001:500:3::42 
 +m.root-servers.net.     604754  IN      A       202.12.27.33 
 +m.root-servers.net.     604754  IN      AAAA    2001:dc3::35 
 +k.root-servers.net.     604754  IN      A       193.0.14.129 
 +k.root-servers.net.     604754  IN      AAAA    2001:7fd::
 +h.root-servers.net.     604754  IN      A       128.63.2.53 
 +h.root-servers.net.     604754  IN      AAAA    2001:500:1::803f:235 
 +i.root-servers.net.     604754  IN      A       192.36.148.17 
 +i.root-servers.net.     604754  IN      AAAA    2001:7fe::53 
 +j.root-servers.net.     604754  IN      A       192.58.128.30
  
-Voici quelques options intéressantes :+;; Query time0 msec 
 +;; SERVER: 10.0.2.15#53(10.0.2.15) 
 +;; WHEN: Fri Jan 17 11:12:56 2020 
 +;; MSG SIZE  rcvd: 502 
 +</code>
  
-^ Option ^ Description ^ +=====LAB #2 Installation et Configuration du Serveur d'Horloge=====
--R role  | spécifie un ou plusieurs profils d’exécution séparés par une virgule définis dans user_attr | +
-| -A authorization | une ou plusieurs autorisations séparées par une virgule | +
-| -P profile | un ou plusieurs profils séparés par une virgule |+
  
-Saisissez la commande suivante pour ajouter l'utilisateur **admin** qui a le droit d'assumer le rôle du de gestionnaire de sauvegardes :+====Introduction====
  
-  # useradd -/export/home/admin -m -s /bin/ksh -c "Admin" -R tarback admin [Entrée]+Dans le cas d'un serveur de réseau, il est souvent important de maintenir l'heure de la machine à l'heure exacte pour des raisons de simplification de synchronisation avec des portables ou bien des systèmes de fichiers externes. Pour accomplir cette tâche, nous utilisons les services de serveurs de temps publics disponibles sur Internet sur lesquels nous synchronisons l'horloge de notre serveur. De même, les machines de notre réseau peuvent se synchroniser ensuite avec l'heure de notre serveur. 
  
-Vous obtiendrez un résultat similaire à celui-ci :+Le protocole utilisé s'appelle **NTP **( **Network Time Protocol **) qui utilise le port **123**. Celui-ci, permet la synchronisation avec plusieurs serveurs publics. Les serveurs de temps de racine s'appellent des serveurs de **Strate 1**. En dessous se trouvent des serveurs de Strate 2, Strate 3 etc.. 
 + 
 +Pour connaître le fuseau d'horaire local, utilisez la commande **date** :
  
 <code> <code>
-useradd -d /export/home/admin -m -s /bin/ksh -c "Admin" -R tarback admin +date 
-64 blocs+Fri Jan 17 11:23:14 CET 2020
 </code> </code>
  
-Consultez maintenant les fichiers **/etc/user_attr****/etc/passwd** et **/etc/shadow** :+<WRAP center round important> 
 +**Important** - Vous pouvez consulter la liste des codes des zones à l'adresse **[[http://www.timeanddate.com/library/abbreviations/timezones/]]**
 +</WRAP> 
 + 
 +Vous pouvez modifier le fuseau d'horaire à l'aide de la commande **tzselect** :
  
 <code> <code>
-cat /etc/user_attr | grep tarback +tzselect 
-tarback::::type=role;profiles=Media Backup,Media Restore +Please identify a location so that time zone rules can be set correctly. 
-admin::::type=normal;roles=tarback +Please select a continent or ocean. 
-# cat /etc/passwd | grep admin + 1) Africa 
-admin:x:104:1:Admin:/export/home/admin:/bin/ksh + 2) Americas 
-# cat /etc/shadow | grep admin + 3) Antarctica 
-admin:*LK*::::::: + 4) Arctic Ocean 
-</code>+ 5) Asia 
 + 6) Atlantic Ocean 
 + 7) Australia 
 + 8) Europe 
 + 9) Indian Ocean 
 +10) Pacific Ocean 
 +11) none - I want to specify the time zone using the POSIX TZ format. 
 +#?  
 +</code> 
  
-Créez maintenant le mot de passe pour **admin**. Indiquez un mot de passe identique au nom du compte :+====Installation====
  
-  # passwd admin [Entrée]+Sous **Solaris**, le serveur ntp est installé par défaut mais désactivé :
  
-Devenez maintenant l'utilisateur **admin** :+<code> 
 +# svcs -a | grep ntp 
 +disabled        3:56:19 svc:/network/ntp:default 
 +disabled        3:56:20 svc:/network/ntp4:default 
 +</code>
  
-  # su - admin [Entrée] +Activez ensuite le serveur ntp et vérifiez son fonctionnement :
- +
-Pour visualiser les roles, profiles et auths attribués à admin, il convient d'utiliser les commandes **roles**, **profiles** et **auths** :+
  
 <code> <code>
-$ roles +# svcadm enable network/ntp 
-tarback +# svcadm enable network/ntp4 
-$ profiles +# svcs -a | grep ntp 
-Basic Solaris User +maintenance    11:24:51 svc:/network/ntp:default 
-All +maintenance    11:25:17 svc:/network/ntp4:default
-$ auths +
-solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.project.read,solaris.admin.patchmgr.read,solaris.network.hosts.read,solaris.admin.volmgr.read+
 </code> </code>
  
-En tant qu'admin, assumez le rôle de tarback+<WRAP center round important> 
 +**Important** - Ces services sont respectivement NFSv3 et NFSv4. Les services sont **mutuellement exclusifs**. 
 +</WRAP>
  
-  $ su tarback [Entrée]+A ce stade on peut constater que les services sont en **maintenance**. Consultez donc chaque service pour connaître la raison : 
 + 
 +<code> 
 +# svcs -l network/ntp 
 +fmri         svc:/network/ntp:default 
 +name         Network Time Protocol (NTP) 
 +enabled      true 
 +state        maintenance 
 +next_state   none 
 +state_time   Fri Jan 17 11:24:51 2020 
 +logfile      /var/svc/log/network-ntp:default.log 
 +restarter    svc:/system/svc/restarter:default 
 +contract_id   
 +dependency   require_all/error file://localhost/usr/sbin/ntpq (online) file://localhost/usr/sbin/ntpdate (online) 
 +dependency   require_any/error svc:/network/service (online) 
 +dependency   optional_all/error svc:/milestone/name-services (online) 
 +dependency   require_all/error svc:/system/filesystem/minimal (online) 
 +# svcs -l network/ntp4 
 +fmri         svc:/network/ntp4:default 
 +name         Network Time Protocol (NTP) Version 4 
 +enabled      true 
 +state        maintenance 
 +next_state   none 
 +state_time   Fri Jan 17 11:25:17 2020 
 +logfile      /var/svc/log/network-ntp4:default.log 
 +restarter    svc:/system/svc/restarter:default 
 +contract_id   
 +dependency   require_any/error svc:/network/service (online) 
 +dependency   exclude_all/none svc:/network/ntp (maintenance) 
 +</code>
  
-Les commandes maintenant utilisables par **admin** //via// le rôle **tarback** peuvent être visualisées dans le fichier **/etc/security/exec_attr** :+Vous pouvez constater que le problème du service **/network/ntp** ne vient pas des dépendances. Consultez donc les fichiers journaux :
  
 <code> <code>
-cat /etc/security/exec_attr | grep Backup +cat /var/svc/log/network-ntp:default.log 
-Media Backup:solaris:act:::Tar;*;*;*;*:privs=all +[ Nov 29 13:26:33 Disabled. ] 
-Media Backup:solaris:act:::Tar;*;TAR,MAGTAPE;*;>0:privs=all +[ Nov 29 13:26:33 Rereading configuration. ] 
-Media Backup:solaris:act:::TarList;*;*;*;*+[ Jan 17 11:24:51 Enabled. ] 
-Media Backup:suser:cmd:::/usr/bin/mt:euid=0 +[ Jan 17 11:24:51 Executing start method ("/lib/svc/method/xntp") ] 
-Media Backup:suser:cmd:::/usr/lib/fs/ufs/ufsdump:euid=0;gid=sys +[ Jan 17 11:24:51 Method "start" exited with status 96 ] 
-Media Backup:suser:cmd:::/usr/sbin/tar:euid=0 +cat /var/svc/log/network-ntp4:default.log        
-cat /etc/security/exec_attr | grep Restore +[ Nov 29 13:26:33 Disabled. ] 
-Media Restore:solaris:act:::TarList;*;*;*;*+[ Nov 29 13:26:33 Rereading configuration. ] 
-Media Restore:solaris:act:::TarUnpack;*;*;*;2:privs=all +[ Jan 17 11:25:17 Enabled. ] 
-Media Restore:solaris:act:::TarUnpack;*;*;*;<2:privs=all +[ Jan 17 11:25:17 Executing start method ("/lib/svc/method/ntp start") ] 
-Media Restore:suser:cmd:::/usr/bin/cpio:euid=0 +ErrorConfiguration file '/etc/inet/ntp.conf' not found.   See ntpd(1M). 
-Media Restore:suser:cmd:::/usr/bin/mt:euid=0 +[ Jan 17 11:25:17 Method "start" exited with status 96 ]
-Media Restore:suser:cmd:::/usr/lib/fs/ufs/ufsrestore:euid=0 +
-Media Restore:suser:cmd:::/usr/sbin/tar:euid=0+
 </code> </code>
  
-Notez que les commandes sont exécutées avec un UID effectif de O.+<WRAP center round important 60%> 
 +**Important** - La sortie nous indique une mauvaise configuration (exited with status 96) du au fait que le fichier **/etc/inet/ntp.conf** n'a pas été trouvé. 
 +</WRAP> 
 + 
 +====Le fichier ntp.conf====
  
-Quittez le rôle **tarback** ainsi que le compte **admin** :+Le service **ntp** est configuré par le fichier **/etc/inet/ntp.conf**. Ce fichier n'existe pas sous Solaris. Il est donc necéssaire d'utiliser un fichier modèle fourni :
  
 <code> <code>
-$ exit +cp /etc/inet/ntp.server /etc/inet/ntp.conf
-$ exit +
-+
 </code> </code>
  
-===LAB#2 - Rôles et Profils===+Ouvrez ce fichier afin de consulter son contenu :
  
-Dans ce LAB vous allez permettre à l'utilisateur **user1** de redémarrer le systèmeUn utilisateur normal n'pas de rôles lors de sa création+<code> 
 +# cat /etc/inet/ntp.conf 
 +# ident "@(#)ntp.server 1.7     03/01/17 SMI" 
 +
 +# Copyright 1996-2003 Sun Microsystems, Inc.  All rights reserved. 
 +# Use is subject to license terms. 
 +
 +# /etc/inet/ntp.server 
 +
 +# An example file that could be copied over to /etc/inet/ntp.conf and 
 +# edited; it provides a configuration template for server that 
 +# listens to an external hardware clock, synchronizes the local clock, 
 +# and announces itself on the NTP multicast net. 
 +#
  
-Vous allez :+# This is the external clock device.  The following devices are 
 +# recognized by xntpd 3-5.93e: 
 +
 +# XType Device    RefID          Description 
 +# ------------------------------------------------------- 
 +#  1    local     LCL            Undisciplined Local Clock 
 +#  2    trak      GPS            TRAK 8820 GPS Receiver 
 +#  3    pst       WWV            PSTI/Traconex WWV/WWVH Receiver 
 +#  4    wwvb      WWVB           Spectracom WWVB Receiver 
 +#  5    true      TRUE           TrueTime GPS/GOES Receivers 
 +#  6    irig      IRIG           IRIG Audio Decoder 
 +#  7    chu       CHU            Scratchbuilt CHU Receiver 
 +#  8    parse     ----           Generic Reference Clock Driver 
 +#  9    mx4200    GPS            Magnavox MX4200 GPS Receiver 
 +# 10    as2201    GPS            Austron 2201A GPS Receiver 
 +# 11    arbiter   GPS            Arbiter 1088A/B GPS Receiver 
 +# 12    tpro      IRIG           KSI/Odetics TPRO/S IRIG Interface 
 +# 13    leitch    ATOM           Leitch CSD 5300 Master Clock Controller 
 +# 15    *                      TrueTime GPS/TM-TMD Receiver 
 +# 17    datum     DATM           Datum Precision Time System 
 +# 18    acts      ACTS           NIST Automated Computer Time Service 
 +# 19    heath     WWV            Heath WWV/WWVH Receiver 
 +# 20    nmea      GPS            Generic NMEA GPS Receiver 
 +# 22    atom      PPS            PPS Clock Discipline 
 +# 23    ptb       TPTB           PTB Automated Computer Time Service 
 +# 24    usno      USNO           USNO Modem Time Service 
 +# 25    *                      TrueTime generic receivers 
 +# 26    hpgps     GPS            Hewlett Packard 58503A GPS Receiver 
 +# 27    arc       MSFa           Arcron MSF Receiver 
 +
 +# * All TrueTime receivers are now supported by one driver, type 5. 
 +#   Types 15 and 25 will be retained only for a limited time and may 
 +#   be reassigned in future. 
 +
 +# Some of the devices benefit from "fudge" factors.  See the xntpd 
 +# documentation.
  
-  * Créer un rôle, +# Either a peer or server.  Replace "XType" with a value from the 
-  * Créer le mot de passe pour le rôle, +# table above. 
-  * Ajouter le rôle aux rôles utilisables par un utilisateur, +server 127.127.XType.0 
-  * Créer un profil, +fudge 127.127.XType.0 stratum 0
-  * Ajouter le profil au rôle, +
-  * Ajouter une commande au profil, +
-  * Tester votre configuration.+
  
-Pour commencer, utilisez la commande **roles** :+broadcast 224.0.1.1 ttl 4
  
-  #roles user1 [Entrée]+enable auth monitor 
 +driftfile /var/ntp/ntp.drift 
 +statsdir /var/ntp/ntpstats/ 
 +filegen peerstats file peerstats type day enable 
 +filegen loopstats file loopstats type day enable 
 +filegen clockstats file clockstats type day enable 
 + 
 +keys /etc/inet/ntp.keys 
 +trustedkey 0 
 +requestkey 0 
 +controlkey 0 
 +</code>
  
-Vous obtiendrez les résultat suivant :+Les directives actives de ce fichier sont :
  
 <code> <code>
-roles user1 +egrep -v '^(#|$)'  /etc/inet/ntp.conf > /tmp/ntp.conf 
-Pas de rôles+# cat /tmp/ntp.conf 
 +server 127.127.XType.0 
 +fudge 127.127.XType.0 stratum 0 
 +broadcast 224.0.1.1 ttl 4 
 +enable auth monitor 
 +driftfile /var/ntp/ntp.drift 
 +statsdir /var/ntp/ntpstats/ 
 +filegen peerstats file peerstats type day enable 
 +filegen loopstats file loopstats type day enable 
 +filegen clockstats file clockstats type day enable 
 +keys /etc/inet/ntp.keys 
 +trustedkey 0 
 +requestkey 0 
 +controlkey 0
 </code> </code>
  
-Assumez l'identité de **user1** et essayez de redémarrer le système :+Les directives suivantes stipulent que votre serveur doit se synchroniser sur l'horloge locale, une horloge fictive, utilisée lors de l'inaccessibilité des serveurs sur Internet :
  
-  #su - user1 [Entrée]+<file> 
 +server 127.127.XType.0 
 +fudge 127.127.XType.0 stratum 0 
 +</file>
  
-Vous obtiendrez les résultat suivant :+La valeur de **XType** doit être prise du tableau fourni dans le fichier lui-même.
  
-<code> +La directive suivante permet le broadcast au client :
-# su - user1 +
-Sun Microsystems Inc.   SunOS 5.10      Generic January 2005 +
-$ /usr/sbin/reboot +
-reboot autorisation refusée +
-</code>+
  
-Notez que dans l'état actuel des choses, user1 ne peut pas redémarrer le systèmeRedevenez root et créer un rôle dénommé **reboot** :+<file> 
 +broadcast 224.0.1.1 ttl 4 
 +</file>
  
-  # roleadd -m -d /export/home/reboot reboot [Entrée]+La fonction suivante active le monitoring et fait que le serveur se synchronise avec les clients seulement si ceux-ci se sont bien authentifiés en utilisant une clé d'authenfication valide.
  
-Vous obtiendrez les résultat suivant :+<file> 
 +enable auth monitor 
 +</file>
  
-<code> +La directive suivante identifie le fichier contenant la déviation moyenne:
-# roleadd -m -d /export/home/reboot reboot +
-64 blocs +
-</code>+
  
-Créez maintenant un mot de passe pour reboot. Utilisez un mot de passe identique au nom du rôle :+<file> 
 +driftfile /etc/ntp/drift 
 +</file>
  
-  # passwd reboot [Entrée]+La directive suivante indique le répertoire qui stocke les clefs symétriques lors d'accès sécurisés éventuels :
  
-Vous obtiendrez les résultat suivant :+<file> 
 +keys /etc/inet/ntp.keys 
 +trustedkey 0 
 +requestkey 0 
 +controlkey 0 
 +</file>
  
-<code> +La directive suivante indique le répertoire de statistiques :
-# passwd reboot +
-Nouveau mot de passe : +
-Entrez de nouveau le mot de passe : +
-passwd: mot de passe correctement modifié pour reboot +
-</code>+
  
-Vérifiez maintenant que le rôle a bien été créé :+<file> 
 +statsdir /var/log/ntpstats/ 
 +</file>
  
-  # grep reboot /etc/passwd [Entrée]+La directive suivante indique les statistiques voulues :
  
-Vous obtiendrez les résultat suivant :+<file> 
 +statistics loopstats peerstats clockstats 
 +</file>
  
-<code> +Les directives suivantes indiquent les statistiques à générer :
-# grep reboot /etc/passwd +
-reboot:x:105:1::/export/home/reboot:/bin/pfsh +
-</code>+
  
-Ajoutez maintenant le rôle **reboot** aux rôles utilisables par **user1** :+<file> 
 +filegen loopstats file loopstats type day enable  
 +filegen peerstats file peerstats type day enable  
 +filegen clockstats file clockstats type day enable 
 +</file>
  
-  # usermod -R reboot user1 [Entrée]+Ce fichier a besoin d'être modifié avant de démarrer le service ntp. Ajoutez donc la section suivante afin de stipuler quel serveur est utilisé pour la synchronisation. La liste peut aussi comporter des FQDN :
  
-Vérifiez maintenant que le rôle a bien été ajouté :+<file> 
 +server 192.43.244.18 
 +server 192.203.230.41 
 +server 128.115.14.97 
 +server 128.252.19.1 
 +</file> 
  
-  # grep "user1" /etc/user_attr [Entrée]+Modifiez ensuite les lignes suivantes : 
 + 
 +<file> 
 +server 127.127.XType.1 
 +fudge 127.127.XType.1 stratum 0 
 +</file>
  
-Vous obtiendrez les résultat suivant :+Vous obtiendrez un fichier similaire à celui-ci :
  
 <code> <code>
-usermod -R reboot user1 +vi /tmp/ntp.conf 
-grep "user1" /etc/user_attr +cat /tmp/ntp.conf 
-user1::::type=normal;roles=reboot+server 192.43.244.18 
 +server 192.203.230.41 
 +server 128.115.14.97 
 +server 128.252.19.1 
 +server 127.127.XType.1 
 +fudge 127.127.XType.1 stratum 0 
 +broadcast 224.0.1.1 ttl 4 
 +enable auth monitor 
 +driftfile /var/ntp/ntp.drift 
 +statsdir /var/ntp/ntpstats/ 
 +filegen peerstats file peerstats type day enable 
 +filegen loopstats file loopstats type day enable 
 +filegen clockstats file clockstats type day enable 
 +keys /etc/inet/ntp.keys 
 +trustedkey 0 
 +requestkey 0 
 +controlkey 0
 </code> </code>
  
-Actuellement ce rôle ne possède aucun profil. Pour créer un profil, il convient d'éditer le fichier **/etc/security/prof_attr** :+Mettez en place le fichier /etc/inet/ntp.conf :
  
-  echo "REBOOT:::profile pour reboot:help=reboot.html" >> /etc/security/prof_attr [Entrée]+<code> 
 +cp /etc/inet/ntp.conf /Documents 
 +# cp /tmp/ntp.conf /etc/inet/ 
 +</code>
  
-Il est maintenant nécessaire d'ajouter le profil **REBOOT** au rôle reboot :+Créez ensuite le fichier **/var/ntp/ntp.drift** :
  
-  rolemod -P REBOOT reboot [Entrée]+<code> 
 +touch /var/ntp/ntp.drift 
 +</code>
  
-Vérifiez maintenant que le profil a bien été ajouté au rôle :+Démarrez ensuite le service network/ntp4 :
  
-  grep reboot /etc/user_attr [Entrée]+<code> 
 +svcadm clear svc:/network/ntp4:default 
 +# svcadm enable svc:/network/ntp4:default 
 +</code>
  
-Vous obtiendrez les résultat suivant :+Constatez l'état du service :
  
 <code> <code>
-# grep reboot /etc/user_attr +svcs -a | grep ntp 
-reboot::::type=role;profiles=REBOOT +disabled       11:57:03 svc:/network/ntp:default 
-user1::::type=normal;roles=reboot+online         11:57:11 svc:/network/ntp4:default 
 +# svcs -l svc:/network/ntp4:default 
 +fmri         svc:/network/ntp4:default 
 +name         Network Time Protocol (NTP) Version 4 
 +enabled      true 
 +state        online 
 +next_state   none 
 +state_time   Fri Jan 17 11:57:11 2020 
 +logfile      /var/svc/log/network-ntp4:default.log 
 +restarter    svc:/system/svc/restarter:default 
 +contract_id  523  
 +dependency   require_any/error svc:/network/service (online) 
 +dependency   exclude_all/none svc:/network/ntp (disabled)
 </code> </code>
  
-Le profil REBOOT est actuellement vide. Il est nécessaire d'ajouter la commande /usr/sbin/reboot au profil. Il convient donc d'éditer le fichier **/etc/security/exec_attr** : +Dernièrementconstatez la présence des statistiques :
- +
-  # echo "REBOOT:suser:cmd:::/usr/sbin/reboot:euid=0" >> /etc/security/exec_attr [Entrée] +
- +
-Le rôle ainsi que le profil ayant été configurésassumez l'identité d'user1 et essayez de redémarrer le système :+
  
 <code> <code>
-su - user1 +cd /var/ntp/ntpstats 
-Sun Microsystems Inc.   SunOS 5.10      Generic January 2005 +# ls                
-/usr/sbin/reboot +loopstats           loopstats.20200117  peerstats           peerstats.20200117
-reboot : autorisation refusée+
 </code> </code>
  
-Vous noterez que vous n'avez pas l'autorisation nécessaire ! Ceci est parce que vous n'avez pas utiliser le rôle créé pour redémarrer le système. Tapez donc la commande suivante :+=====LAB #3 - Installation et Configuration du Serveur FTP=====
  
-  $ su reboot [Entrée]+====Introduction====
  
-Fermez toutes vos fenêtres et essayez ensuite de redémarrer le système :+Solaris 10 à un serveur FTP pré-installé. Ce serveur est basé sur le serveur **WU-FTPd** de l'Université de Washington.  
 + 
 +====installation==== 
 + 
 +Vérifiez donc l'état du serveur FTP :
  
 <code> <code>
-/usr/sbin/reboot+# svcs ftp 
 +STATE          STIME    FMRI 
 +online         14:26:56 svc:/network/ftp:default
 </code> </code>
  
-Quand votre système a redémarré, essayez d'utiliser le rôle reboot en tant que l'utilisateur **user2 ** :+Le serveur FTP est géré par inetd. Consultez donc sa configuration en utilisant la commande **inetadm** :
  
 <code> <code>
-su user2 +inetadm -l svc:/network/ftp:default 
-Sun Microsystems Inc  SunOS 5.10      Generic January 2005 +SCOPE    NAME=VALUE 
-$ su reboot +         name="ftp" 
-Mot de passe : +         endpoint_type="stream" 
-Les rôles ne peuvent être assumés que par des utilisateurs autorisés +         proto="tcp6" 
-su: Désolé+         isrpc=FALSE 
 +         wait=FALSE 
 +         exec="/usr/sbin/in.ftpd -a" 
 +         user="root" 
 +default  bind_addr="" 
 +default  bind_fail_max=-1 
 +default  bind_fail_interval=-1 
 +default  max_con_rate=-1 
 +default  max_copies=-1 
 +default  con_rate_offline=-1 
 +default  failrate_cnt=40 
 +default  failrate_interval=60 
 +default  inherit_env=TRUE 
 +default  tcp_trace=FALSE 
 +default  tcp_wrappers=TRUE 
 +default  connection_backlog=10
 </code> </code>
  
-Notez que ceci n'est pas possible.+<WRAP center round important 60%> 
 +**Important** - L'option **-a** passé à l'exécutable **in.ftpd** indique l'utilisation du fichier **/etc/ftpd/ftpaccess** pour la configuration du daemon. 
 +</WRAP>
  
-Quittez le compte **user2** :+====Configuration de la Journalisation==== 
 + 
 +Pour rendre la journalisation plus détaillé il faut passé la valeur de la directive **tcp_trace** à **true** :
  
 <code> <code>
-$ exit +# inetadm -m svc:/network/ftp:default tcp_trace=TRUE 
-+inetadm -l svc:/network/ftp 
 +SCOPE    NAME=VALUE 
 +         name="ftp" 
 +         endpoint_type="stream" 
 +         proto="tcp6" 
 +         isrpc=FALSE 
 +         wait=FALSE 
 +         exec="/usr/sbin/in.ftpd -a" 
 +         user="root" 
 +default  bind_addr="" 
 +default  bind_fail_max=-1 
 +default  bind_fail_interval=-1 
 +default  max_con_rate=-1 
 +default  max_copies=-1 
 +default  con_rate_offline=-1 
 +default  failrate_cnt=40 
 +default  failrate_interval=60 
 +default  inherit_env=TRUE 
 +         tcp_trace=TRUE 
 +default  tcp_wrappers=TRUE 
 +default  connection_backlog=10
 </code> </code>
  
-===LAB#Autorisations===+<WRAP center round important 60%> 
 +**Important** Notez la directive **tcp_trace=TRUE**. 
 +</WRAP>
  
-Dans ce LAB vous allez associer une autorisation à un service. Chaque utilisateur ou rôle ayant cette autorisation pourras travailler avec le service.+Consulte maintenant le contenu du fichier **/etc/ftpd/ftpaccess** :
  
-Vous allez :+<code> 
 +# cat /etc/ftpd/ftpaccess 
 +# ident "@(#)ftpaccess  1.2     03/05/14 SMI" 
 +
 +# FTP server configuration file, see ftpaccess(4). 
 +#
  
-  Créer une autorisation pour gérer le service d'Apache2, +class           realusers       real            
-  Informer Apache2 de la création de l'autorisation, +class           guestusers      guest           
-  Associer l'autorisation à un utilisateur, +class           anonusers       anonymous       *
-  * Tester votre configuration.+
  
-Tout d'abord, établissez le fait que l'utilisateur user1 n'est pas en mesure de travailler avec le service **apache2** :+loginfails      3 
 +passwd-check    trivial         warn 
 +private         no 
 +shutdown        /etc/ftpd/shutdown.msg 
 +# email         user@hostname 
 +# guestuser     username 
 +# rhostlookup   no
  
-  $ /usr/sbin/svcadm -v disable -s apache2 [Entrée]+keepalive       yes 
 +recvbuf         65536           real,guest,anonymous 
 +sendbuf         65536           real,guest,anonymous 
 +# flush-wait    no              anonymous 
 +# passive       ports           0.0.0.0/      32768   65535 
 +# timeout       data            600 
 +# timeout       idle            300
  
-Vous obtiendrez le résultat suivant :+banner          /etc/ftpd/banner.msg 
 +greeting        brief 
 +message         /etc/ftpd/welcome.msg   login 
 +message         .message                cwd=* 
 +readme          README*                 login 
 +readme          README*                 cwd=* 
 +# quota-info    *
  
-<code> +chmod           no              anonymous 
-# su - user1 +delete          no              anonymous 
-Sun Microsystems Inc.   SunOS 5.10      Generic January 2005 +overwrite       no              anonymous 
-$ /usr/sbin/svcadm -v disable -s apache2 +rename          no              anonymous 
-svcadm: svc:/network/http:apache2: Impossible de modifier le groupe de propriétés "general" (autorisation refusée). +umask           no              anonymous
-$ exit +
-+
-</code>+
  
-Créez maintenant une autorisation pour gérer le service d'Apache2 dans le fichier **/etc/security/auth_attr**+compress        yes             realusers guestusers anonusers 
 +tar             yes             realusers guestusers anonusers
  
-  # echo "solaris.smf.manage.apache/server:::Apache Server management::" >> /etc/security/auth_attr [Entrée]+path-filter     guest,anonymous /etc/ftpd/filename.msg  ^[[:alnum:]._-]*$ ^[.-]
  
-Actuellement Apache n'est pas au courant de cette autorisation. Pour vérifier ce point,il convient d'utiliser la commande **svcprop** :+noretrieve      relative        class=anonusers         / 
 +allow-retrieve  relative        class=anonusers         /pub
  
-  svcprop -p general apache2 [Entrée]+upload          class=anonusers    *    *         no  nodirs 
 +upload        class=anonusers    *    /incoming yes ftpadm ftpadm 0440 nodirs
  
-Vous obtiendrez le résultat suivant :+# log           commands        real,guest,anonymous 
 +# log           security        real,guest,anonymous 
 +# log           transfers       real,guest,anonymous    inbound,outbound 
 +# xferlog       format  %T %Xt %R %Xn %XP %Xy %Xf %Xd %Xm %U ftp %Xa %u %Xc %Xs %Xr 
 + 
 +# limit-time    anonymous       30 
 +# limit         anonusers       10      Wk0730-1800       /etc/ftpd/toomany.msg 
 +# limit         anonusers       50      SaSu|Any1800-0730 /etc/ftpd/toomany.msg 
 +</code> 
 + 
 +Pour activer la journalisation il convient de décommenter les deux lignes suivantes :
  
 <code> <code>
-svcprop -p general apache2 +vi /etc/ftpd/ftpaccess 
-general/enabled boolean false +# cat /etc/ftpd/ftpaccess 
-general/entity_stability astring Evolving+... 
 +log           transfers       real,guest,anonymous    inbound,outbound 
 +xferlog       format  %T %Xt %R %Xn %XP %Xy %Xf %Xd %Xm %U ftp %Xa %u %Xc %Xs %Xr 
 +...
 </code> </code>
  
-Notez que l'autorisation **solaris.smf.manage.apache/server** est inconnue au service apache2. Il est donc maintenant nécessaire de dire à Apache de vérifier cette autorisation quand un utilisateur essaie de travailler avec le service d'Apache :+Ajoutez maintenant les options **-l**, **-L**, **-X** et **-w** à la valeur de la directive **inetd_start/exec** :
  
-  # svccfg -s apache2 setprop general/action_authorization=astring: 'solaris.smf.manage.apache/server' [Entrée]+<code> 
 +# svccfg 
 +svc:> select ftp 
 +svc:/network/ftp> setprop inetd_start/exec="/usr/sbin/in.ftpd -a -l -L -X -w" 
 +svc:/network/ftp> listprop 
 +general                        framework 
 +general/entity_stability       astring  Unstable 
 +general/restarter              fmri     svc:/network/inetd:default 
 +inetd                          framework 
 +inetd/endpoint_type            astring  stream 
 +inetd/isrpc                    boolean  false 
 +inetd/name                     astring  ftp 
 +inetd/proto                    astring  tcp6 
 +inetd/stability                astring  Evolving 
 +inetd/wait                     boolean  false 
 +inetd_start                    method 
 +inetd_start/group              astring  root 
 +inetd_start/limit_privileges   astring  :default 
 +inetd_start/privileges         astring  :default 
 +inetd_start/project            astring  :default 
 +inetd_start/resource_pool      astring  :default 
 +inetd_start/supp_groups        astring  :default 
 +inetd_start/timeout_seconds    count    0 
 +inetd_start/type               astring  method 
 +inetd_start/use_profile        boolean  false 
 +inetd_start/user               astring  root 
 +inetd_start/working_directory  astring  :default 
 +inetd_start/exec               astring  "/usr/sbin/in.ftpd -a -l -L -X -w" 
 +inetd_disable                  method 
 +inetd_disable/exec             astring  :kill 
 +inetd_disable/timeout_seconds  count    0 
 +inetd_disable/type             astring  method 
 +tm_common_name                 template 
 +tm_common_name/              ustring  "FTP server
 +tm_man_in_ftpd                 template 
 +tm_man_in_ftpd/manpath         astring  /usr/share/man 
 +tm_man_in_ftpd/section         astring  1M 
 +tm_man_in_ftpd/title           astring  in.ftpd 
 +tm_man_ftpd                    template 
 +tm_man_ftpd/manpath            astring  /usr/share/man 
 +tm_man_ftpd/section            astring  1M 
 +tm_man_ftpd/title              astring  ftpd 
 +svc:/network/ftp> exit 
 +</code>
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-l'aide du manuelexpliquez-vous cette ligne de commande.+**Important** - L'option **-l** active la journalisation de chaque session FTP, l'option **-L** active la journalisation des commandes envoyées vers le serveurl'option **-X** active la journalisation des accès aux fichiers et l'option **-w** active la journalisation des connections au serveur.
 </WRAP> </WRAP>
  
-Vérifiez maintenant le résultat de votre commande : +Le serveur FTP envoie des traces à syslog en utilisant le Sélecteur **daemon.info**. Modifiez donc le fichier **/etc/syslog** afin que syslog envoie les traces dans le fichier **/var/adm/ftplog** :
- +
-  # svcadm refresh apache2; svcprop -p general apache2 [Entrée]+
  
 <code> <code>
-svcadm refresh apache2; svcprop -p general apache2 +vi /etc/syslog 
-general/enabled boolean true +# cat /etc/syslog 
-general/action_authorization astring solaris.smf.manage.apache/server +... 
-general/entity_stability astring Evolving+*.err;kern.notice;auth.notice /dev/sysmsg 
 +*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages 
 +daemon.info                                     /var/adm/ftplog 
 +...
 </code> </code>
  
-Notez que l'**action_authorization** a bien été associée avec le service.+Créez le fichier **/var/adm/ftplog** et redémarrer les services **inetd**, **network/ftp** et **system-log** :
  
-Vous pouvez maintenant associer cette autorisation à l'utilisateur user1 :+<code> 
 +# touch /var/adm/ftplog 
 +# svcadm restart inetd 
 +# svcadm restart network/ftp 
 +# svcadm restart system-log 
 +</code>
  
-  # usermod -A solaris.smf.manage.apache/server user1 [Entrée] +Connectez-vous maintenant au serveur FTP en tant qu'user1 et tapez quelques commandes :
- +
-Devenez user1 et visualiser le statut du service apache2 grâce à la commande **svcs** :+
  
 <code> <code>
-su - user1 +ftp localhost 
-Sun Microsystems Inc  SunOS 5.10      Generic January 2005 +Connected to localhost. 
-$ svcs apache2 +220 solaris.i2tch.loc FTP server ready
-STATE          STIME    FMRI +Name (localhost:root): user1 
-online         21:03:13 svc:/network/http:apache2+331 Password required for user1. 
 +Password: 
 +230 User user1 logged in. 
 +Remote system type is UNIX. 
 +Using binary mode to transfer files. 
 +ftp> pwd 
 +257 "/export/home/user1" is current directory. 
 +ftp> ls 
 +200 PORT command successful. 
 +150 Opening ASCII mode data connection for file list. 
 +local.cshrc 
 +local.login 
 +local.profile 
 +226 Transfer complete. 
 +41 bytes received in 0.0016 seconds (25.43 Kbytes/s) 
 +ftp> quit 
 +221-You have transferred 0 bytes in 0 files. 
 +221-Total traffic for this session was 512 bytes in 1 transfers. 
 +221-Thank you for using the FTP service on solaris.i2tch.loc. 
 +221 Goodbye.
 </code> </code>
  
-L'autorisation du type **action_authorization** vous permet de visualiser le statut du service. Essayez maintenant d'arrêter le service :+Connectez-vous maintenant au serveur FTP en tant qu'anonymous et tapez quelques commandes :
  
-  # /usr/sbin/svcadm disable apache2 [Entrée]+<code> 
 +ftp localhost 
 +Connected to localhost. 
 +220 solaris.i2tch.loc FTP server ready. 
 +Name (localhost:root): anonymous 
 +331 Guest login ok, send your complete e-mail address as password. 
 +Password: 
 +230-The response 'dfghj' is not valid 
 +230-Next time please use your e-mail address as your password 
 +230-   for example: joe@localhost.network 
 +230 Guest login ok, access restrictions apply. 
 +Remote system type is UNIX. 
 +Using binary mode to transfer files. 
 +ftp> pwd 
 +257 "/" is current directory. 
 +ftp> !pwd 
 +/ 
 +ftp> !touch test 
 +ftp> !ls 
 +Desktop     core.882    ftp         lost+found  proc        test 
 +Documents   dev         home        mnt         pwd.txt     tmp 
 +bin         devices     inetd.tftp  net         rep         usr 
 +boot        etc         kernel      opt         sbin        var 
 +core        export      lib         platform    system      vol 
 +ftp> put test 
 +200 PORT command successful. 
 +553 test: Permission denied on server. (Upload) 
 +ftp> quit 
 +221-You have transferred 0 bytes in 1 files. 
 +221-Total traffic for this session was 745 bytes in 1 transfers. 
 +221-Thank you for using the FTP service on solaris.i2tch.loc. 
 +221 Goodbye. 
 +</code>
  
-Vous obtiendrez le résultat suivant :+Consultez le fichier **/var/adm/ftplog** :
  
 <code> <code>
-/usr/sbin/svcadm disable apache2 +# cat /var/adm/ftplog 
-svcadmsvc:/network/http:apache2Autorisation refusée.+Jan 18 16:50:16 solaris.i2tch.loc inetd[1421][ID 317013 daemon.notice] ftp[1587] from 127.0.0.1 32826 
 +Jan 18 16:59:38 solaris.i2tch.loc in.ftpd[1660]: [ID 927837 daemon.info] connect from localhost 
 +Jan 18 16:59:38 solaris.i2tch.loc inetd[1421]: [ID 317013 daemon.notice] ftp[1660] from 127.0.0.1 32828 
 +Jan 18 16:59:42 solaris.i2tch.loc ftpd[1660]: [ID 165209 daemon.info] USER user1 
 +Jan 18 16:59:47 solaris.i2tch.loc ftpd[1660]: [ID 125383 daemon.info] PASS password 
 +Jan 18 16:59:47 solaris.i2tch.loc ftpd[1660]: [ID 124999 daemon.info] FTP LOGIN FROM localhost [127.0.0.1], user1 
 +Jan 18 16:59:47 solaris.i2tch.loc ftpd[1660]: [ID 470890 daemon.info] SYST 
 +Jan 18 16:59:47 solaris.i2tch.loc ftpd[1660]: [ID 307055 daemon.info] TYPE Image 
 +Jan 18 16:59:50 solaris.i2tch.loc ftpd[1660]: [ID 924372 daemon.info] PWD 
 +Jan 18 16:59:52 solaris.i2tch.loc ftpd[1660]: [ID 313182 daemon.info] PORT 
 +Jan 18 16:59:52 solaris.i2tch.loc ftpd[1660]: [ID 307055 daemon.info] TYPE ASCII 
 +Jan 18 16:59:52 solaris.i2tch.loc ftpd[1660]: [ID 188419 daemon.info] NLST 
 +Jan 18 16:59:52 solaris.i2tch.loc ftpd[1660]: [ID 307055 daemon.info] TYPE Image 
 +Jan 18 16:59:55 solaris.i2tch.loc ftpd[1660]: [ID 225560 daemon.info] QUIT 
 +Jan 18 16:59:55 solaris.i2tch.loc ftpd[1660]: [ID 528697 daemon.info] FTP session closed 
 +Jan 18 17:00:01 solaris.i2tch.loc in.ftpd[1664]: [ID 927837 daemon.info] connect from localhost 
 +Jan 18 17:00:01 solaris.i2tch.loc inetd[1421]: [ID 317013 daemon.notice] ftp[1664] from 127.0.0.1 32830 
 +Jan 18 17:00:04 solaris.i2tch.loc ftpd[1664]: [ID 165209 daemon.info] USER anonymous 
 +Jan 18 17:00:06 solaris.i2tch.loc ftpd[1664]: [ID 351301 daemon.info] PASS dfghj 
 +Jan 18 17:00:06 solaris.i2tch.loc ftpd[1664]: [ID 210975 daemon.info] ANONYMOUS FTP LOGIN FROM localhost [127.0.0.1], dfghj 
 +Jan 18 17:00:06 solaris.i2tch.loc ftpd[1664]: [ID 470890 daemon.info] SYST 
 +Jan 18 17:00:06 solaris.i2tch.loc ftpd[1664]: [ID 307055 daemon.info] TYPE Image 
 +Jan 18 17:00:08 solaris.i2tch.loc ftpd[1664]: [ID 924372 daemon.info] PWD 
 +Jan 18 17:00:43 solaris.i2tch.loc ftpd[1664]: [ID 313182 daemon.info] PORT 
 +Jan 18 17:00:43 solaris.i2tch.loc ftpd[1664]: [ID 206289 daemon.info] STOR test 
 +Jan 18 17:00:59 solaris.i2tch.loc ftpd[1664]: [ID 225560 daemon.info] QUIT 
 +Jan 18 17:00:59 solaris.i2tch.loc ftpd[1664][ID 528697 daemon.info] FTP session closed
 </code> </code>
  
-Notez que l'autorisation du type **action_authorization** ne vous permet **que** de visualiser le statut du service. Pour pouvoir arrêter le service il faut une autorisation du type **value_authorization**. +====Configuration des Connexions Anonymes====
  
-  # svccfg -s apache2 setprop general/value_authorization=astring'solaris.smf.manage.apache/server' [Entrée]+Solaris 10 contient un script dénommé **ftpconfig** qui permet de configurer automatiquement un chroot pour les connexions anonymes :
  
 <code> <code>
-$ exit +ftpconfig /export/home/ftp_pub 
-svccfg -s apache2 setprop general/value_authorization=astring: 'solaris.smf.manage.apache/server'+Updating user ftp 
 +Creating directory /export/home/ftp_pub 
 +Updating directory /export/home/ftp_pub
 </code> </code>
  
-<WRAP center round important 60%> +Consultez le contenu du répertoire **/export/home/ftp_pub** :
-A l'aide du manuel, expliquez-vous cette ligne de commande. +
-</WRAP> +
- +
-Essayez de nouveau à démarrer le service apache2 en tant que l'utilisateur user1. Vous obtiendrez le résultat suivant :+
  
 <code> <code>
-su user1 +ls -l /export/home/ftp_pub 
-Sun Microsystems Inc.   SunOS 5.10      Generic January 2005 +total 12 
-/usr/sbin/svcadm disable apache2 +lrwxrwxrwx   1 root     bin            9 Jan 18 16:06 bin -> ./usr/bin 
-$ svcs apache2 +d--x--x--x   2 root     sys          512 Jan 18 16:06 dev 
-STATE          STIME    FMRI +d--x--x--x   5 root     sys          512 Jan 18 16:06 etc 
-disabled       21:16:46 svc:/network/http:apache2+d--x--x--x   2 root     bin          512 Jan 18 16:06 lib 
 +drwxr-xr-x   2 root     sys          512 Jan 18 16:06 pub 
 +d--x--x--x   6 root     sys          512 Jan 18 16:06 usr
 </code> </code>
  
-Activez de nouveau le service apache :+Pour activer le téléversement vers le répertoire **/export/home/ftp_pub/pub**, modifiez le fichier **/etc/ftpd/ftpaccess** :
  
 <code> <code>
-/usr/sbin/svcadm enable apache2 +# vi /etc/ftpd/ftpaccess 
-$ svcs apache2 +# cat /etc/ftpd/ftpaccess 
-STATE          STIME    FMRI +... 
-online         21:17:25 svc:/network/http:apache2+upload          class=anonusers    *    /pub    yes 
 +# upload                class=anonusers    *    *         no  nodirs 
 +# upload        class=anonusers    *    /incoming yes ftpadm ftpadm 0440 nodirs 
 +...
 </code> </code>
  
-L'utilisateur user1 peut maintenant travailler avec le service apache2.+Modifiez le masque de permissions à 777 sur le répertoire **/export/home/ftp_pub/pub** :
  
-===LAB#4 - RBAC et les Privilèges===+<code> 
 +chmod 777 /export/home/ftp_pub/pub 
 +</code>
  
-Dans ce LAB vous allez associer un privilège à un utilisateur et à un rôle. +Postionnez-vous dans le répertoire **/tmp** et créez le fichier **ftptest** :
  
-Vous allez :+<code> 
 +# cd /tmp 
 +# touch ftptest 
 +# ls 
 +ftptest              hsperfdata_noaccess  hsperfdata_root 
 +</code>
  
-  * Attribuer directement des privilèges à un utilisateur+Connectez-vous au serveur FTP en tant que l'utilisateur **anonymous** et téléversez le fichier **ftptest** :
-  Attribuer, indirectement via un rôle, des privilèges à un utilisateur.+
  
-Les **Privilèges** permettent à un utilisateur de faire quelque chose avec le noyauIl existe 70 privilèges :+<code> 
 +# ftp localhost 
 +Connected to localhost. 
 +220 solaris.i2tch.loc FTP server ready. 
 +Name (localhost:root): anonymous 
 +331 Guest login ok, send your complete e-mail address as password. 
 +Password: 
 +230-The response 'sgsdgdg' is not valid 
 +230-Next time please use your e-mail address as your password 
 +230-   for example: joe@localhost.network 
 +230 Guest login ok, access restrictions apply. 
 +Remote system type is UNIX. 
 +Using binary mode to transfer files. 
 +ftp> ls 
 +200 PORT command successful. 
 +150 Opening ASCII mode data connection for file list. 
 +bin 
 +dev 
 +etc 
 +lib 
 +pub 
 +usr 
 +226 Transfer complete. 
 +30 bytes received in 0.00016 seconds (180.11 Kbytes/s) 
 +ftp> cd /pub 
 +250 CWD command successful. 
 +ftp> !ls 
 +ftptest              hsperfdata_noaccess  hsperfdata_root 
 +ftp> put ftptest 
 +200 PORT command successful. 
 +150 Opening BINARY mode data connection for ftptest. 
 +226 Transfer complete. 
 +ftp> ls 
 +200 PORT command successful. 
 +150 Opening ASCII mode data connection for file list. 
 +ftptest 
 +226 Transfer complete. 
 +9 bytes received in 0.00012 seconds (71.52 Kbytes/s) 
 +</code>
  
-<file> +====Sécurisation du Serveur FTP====
-contract_event contract_observer cpc_cpu dtrace_kernel dtrace_proc dtrace_user file_chown file_chown_self file_dac_execute file_dac_read file_dac_search file_dac_write file_downgrade_sl file_flag_set file_link_any file_owner file_setid file_upgrade_sl graphics_access graphics_map ipc_dac_read ipc_dac_write ipc_owner net_bindmlp net_icmpaccess net_mac_aware net_privaddr net_rawaccess proc_audit proc_chroot proc_clock_highres proc_exec proc_fork proc_info proc_lock_memory proc_owner proc_priocntl proc_session proc_setid proc_taskid proc_zone sys_acct sys_admin sys_audit sys_config sys_devices sys_ip_config sys_ipc_config sys_linkdir sys_mount sys_net_config sys_nfs sys_res_config sys_resource sys_smb sys_suser_compat sys_time sys_trans_label win_colormap win_config win_dac_read win_dac_write win_devices win_dga win_downgrade_sl win_fontpath win_mac_read win_mac_write win_selection win_upgrade_sl +
-</file>+
  
-Chaque processus dans le système possède 4 jeux de privilèges. Pour consulter les privilèges du processus courant, c'est-à-dire votre terminal, saisissez la commande suivante : +Afin de sécuriser le serveur FTP, insérez les noms de tous les comptes système dans le fichier **/etc/ftpd/ftpusers**. Tout compte qui figure dans ce fichier ne peut pas se connecter au serveur FTP :
- +
-  # ppriv -v $$ [Entrée] +
- +
-Vous obtiendrez le résultat suivant :+
  
 <code> <code>
-$ exit +# cat /etc/ftpd/ftpusers 
-ppriv -v $$ +ident "@(#)ftpusers 1.6 11/08/02 SMI" 
-1137:   sh +# 
-flags = <none> +# List of users denied access to the FTP serversee ftpusers(4). 
-        E: contract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl +# 
-        I: file_link_any,proc_exec,proc_fork,proc_info,proc_session +root 
-        P: contract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl +daemon 
-        L: contract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl+bin 
 +sys 
 +adm 
 +lp 
 +uucp 
 +nuucp 
 +smmsp 
 +listen 
 +gdm 
 +webservd 
 +unknown 
 +nobody 
 +noaccess 
 +nobody4
 </code> </code>
  
-Les quatre jeux sont identifiés par une lettre :+=====LAB #4 - Installation et Configuration du Serveur DHCP=====
  
-^ Lettre ^ Description ^ +====Introduction====
-| E | Privilèges effectifs | +
-| I | Privilèges par héritage | +
-| P | Privilèges autorisés | +
-| L | Privilèges Limités |+
  
-Pour faciliter la gestion des privilèges, les jeux sont organisés en **alias** :+Un serveur DHCP (**Dynamic Host Configuration Protocol**) est un ordinateur exécutant un logiciel serveur DHCP. L’avantage de la présence d’un serveur DHCP sur le réseau local est que celui-ci permet de spécifier à un niveau central les paramètres TCP/IP.  
 + 
 +====Installation==== 
 + 
 +Sous **Solaris** le serveur DHCP est installé par défaut mais il n'est pas activé :
  
 <code> <code>
-ppriv $$ +svcs -a | grep dhcp 
-1137  sh +disabled       14:26:46 svc:/network/dhcp-server:default
-flags = <none> +
-        Eall +
-        Ibasic +
-        P: all +
-        L: all +
-# su user2 +
-$ ppriv $$ +
-1193:   sh +
-flags = <none> +
-        E: basic +
-        I: basic +
-        P: basic +
-        Lall+
 </code> </code>
  
-L'utilisation de l'option **-v** permet de contrôler le contenu des alias :+Il convient donc de l'activer grâce à la commande **svcadm** :
  
 <code> <code>
-$ exit +svcadm enable svc:/network/dhcp-server:default 
-ppriv -v $$ +# svcs -a | grep dhcp 
-1137  sh +offline        17:10:08 svc:/network/dhcp-server:default
-flags = <none> +
-        Econtract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl +
-        Ifile_link_any,proc_exec,proc_fork,proc_info,proc_session +
-        Pcontract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl +
-        Lcontract_event,contract_observer,cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,file_chown,file_chown_self,file_dac_execute,file_dac_read,file_dac_search,file_dac_write,file_downgrade_sl,file_link_any,file_owner,file_setid,file_upgrade_sl,graphics_access,graphics_map,ipc_dac_read,ipc_dac_write,ipc_owner,net_bindmlp,net_icmpaccess,net_mac_aware,net_privaddr,net_rawaccess,proc_audit,proc_chroot,proc_clock_highres,proc_exec,proc_fork,proc_info,proc_lock_memory,proc_owner,proc_priocntl,proc_session,proc_setid,proc_taskid,proc_zone,sys_acct,sys_admin,sys_audit,sys_config,sys_devices,sys_ip_config,sys_ipc_config,sys_linkdir,sys_mount,sys_net_config,sys_nfs,sys_res_config,sys_resource,sys_suser_compat,sys_time,sys_trans_label,win_colormap,win_config,win_dac_read,win_dac_write,win_devices,win_dga,win_downgrade_sl,win_fontpath,win_mac_read,win_mac_write,win_selection,win_upgrade_sl+
 </code> </code>
  
-Dans notre cas, nous souhaitons donner les privilèges de l'utilisation de **dtrace** à **user2**. Pour utiliser dtrace, user2 aura besoin de trois privilèges :+Notez que le statut du service passe de ***disabled** à **offline**. Commençons par cannaître la raison de ce statut :
  
-  * dtrace_kernel +<code> 
-  * dtrace_proc +# svcs -l svc:/network/dhcp-server:default 
-  dtrace_user+fmri         svc:/network/dhcp-server:default 
 +name         DHCP server 
 +enabled      true 
 +state        offline 
 +next_state   none 
 +state_time   Sat Jan 18 17:10:08 2020 
 +restarter    svc:/system/svc/restarter:default 
 +dependency   require_all/refresh svc:/milestone/multi-user (online) 
 +dependency   require_all/restart file:///etc/inet/dhcpsvc.conf (absent) 
 +</code> 
 + 
 +<WRAP center round important 60%> 
 +**Important** - La sortie nous informe que la raison du statut **offline** est l'abscence du fichier de configuration **/etc/inet/dhcpsvc.conf**. 
 +</WRAP>
  
-Afin d'attribuer ces privilèges à user2, saisissez la commande suivante en tant que **root** :+====Configuration====
  
-  # usermod -K defaultpriv=basic,dtrace_kernel,dtrace_proc,dtrace_user user2 [Entrée]+===Création du Fichier /etc/inet/dhcpsvc.conf===
  
-Devenez maintenant user2 et contrôlez ses privilèges :+Pour créer le fichier **/etc/inet/dhcpsvc.conf**, utilisez la commande **/usr/sbin/dhcpconfig**. L'ption **-D** indique que l'on configure le serveur en écrasant des valeurs des options utilisées. L'option **-r** spécifie le **back-end store**, dans notre cas des fichiers, et l'option **-p** indique l'emplacement de ces fichiers :
  
 <code> <code>
-su user2 +/usr/sbin/dhcpconfig -D -r SUNWfiles -p /var/dhcp 
-$ ppriv $$ +Created DHCP configuration file. 
-1228:   sh +Created dhcptab. 
-flags = <none> +Added "Locale" macro to dhcptab. 
-        E: basic,dtrace_kernel,dtrace_proc,dtrace_user +Added server macro to dhcptab - solaris. 
-        I: basic,dtrace_kernel,dtrace_proc,dtrace_user +DHCP server started.
-        P: basic,dtrace_kernel,dtrace_proc,dtrace_user +
-        L: all+
 </code> </code>
  
-Vous noterez que les privilèges ont été ajoutés.+Consultez le contenu du fichier **/etc/inet/dhcpsvc.conf** :
  
-Dans l'exemple ci-dessus, nous avons attribué les privilèges directement à user2. Solaris nous permet aussi d'attribuer des privilèges à un rôle+<code> 
 +# cat /etc/inet/dhcpsvc.conf 
 +DAEMON_ENABLED=TRUE 
 +RESOURCE=SUNWfiles 
 +RUN_MODE=server 
 +PATH=/var/dhcp 
 +CONVER=1 
 +</code>
  
-Dans le cas de ce LABnous allons d'abord créer un rôle appelé **chbogues** en utilisant le profil **Process Management**:+Il est possible d'ajouter des variables manuellement à ce fichier. Dans notre cas, indiquez l'interface réseau qui sera à l'écoute des reqûetes DHCP : 
 + 
 +<code> 
 +# vi /etc/inet/dhcpsvc.conf 
 +# cat /etc/inet/dhcpsvc.conf 
 +DAEMON_ENABLED=TRUE 
 +RESOURCE=SUNWfiles 
 +RUN_MODE=server 
 +PATH=/var/dhcp 
 +CONVER=1 
 +INTERFACES=e1000g0 
 +</code>
  
-  # roleadd -m -d /export/home/chbogues -P "Process Management" chbogues [Entrée]+===Création de la Table de Réseau===
  
-Saisissez donc la commande. Vous obtiendrez le résultat suivant :+Configurez maintenant une table réseau pour le serveur DHCP en utilisant l'option **-N** ainsi que le routeur par défaut grâce à l'option **-t** :
  
 <code> <code>
-$ exit +# /usr/sbin/dhcpconfig -N 10.0.2.0 -t 10.0.2.2 
-roleadd -m -d /export/home/chbogues -P "Process Management" chbogues +Added network macro to dhcptab 10.0.2.0. 
-64 blocs+Created network table.
 </code> </code>
  
-Attribuez maintenant le mot de passe **chbogues** au rôle chbogue :+Listez les tables réseau du serveur DHCP :
  
 <code> <code>
-passwd chbogues +pntadm -L 
-Nouveau mot de passe : +10.0.2.0
-Entrez de nouveau le mot de passe : +
-passwd: mot de passe correctement modifié pour chbogues+
 </code> </code>
  
-Il est maintenant nécessaire d'attribuer les privilèges dtrace_kernel,dtrace_proc et dtrace_user à notre rôle chbogues :+La table réseau prend la forme d'un fichier nommé **SUNWfiles1_10_0_2_0** dans le répertoire **/var/dhcp** :
  
-  rolemod -K defaultpriv=basic,dtrace_kernel,dtrace_proc,dtrace_user chbogues [Entrée]+<code> 
 +ls /var/dhcp | grep 10 
 +SUNWfiles1_10_0_2_0 
 +# cat /var/dhcp/SUNWfiles1_10_0_2_0 
 +# SUNWfiles1_10_0_2_0 
 +
 +# Do NOT edit this file by hand -- use pntadm(1M) or dhcpmgr(1M) instead 
 +
 +
 +</code>
  
-et ensuite d'attribuer le droit d'utilisation du rôle à l'utilisateur user1 :+<WRAP center round important 60%> 
 +**Important** - Notez que la table est actuelleemnt vide. 
 +</WRAP>
  
-  # usermod -R chbogues user1 [Entrée] +Consultez les informations concernant la table réseau :
- +
-Devenez maintenant user1 et contrôlez ses privilèges :+
  
 <code> <code>
-su user1 +dhtadm -P 
-$ ppriv $$ +Name                Type    Value 
-1254:   sh +================================================== 
-flags <none> +10.0.2.0            Macro    :Subnet=255.255.255.0:Router=10.0.2.2:Broadcst=10.0.2.255
-        Ebasic +solaris              Macro    :Include=Locale:Timeserv=10.0.2.15:LeaseTim=86400:LeaseNeg:DNSdmain="i2tch.loc":DNSserv=10.0.2.3
-        Ibasic +Locale              Macro    :UTCoffst=3600:
-        Pbasic +
-        Lall+
 </code> </code>
  
-Vous noterez que l'utilisateur user1 ne possède pas de privilèges dtrace_kernel,dtrace_proc et dtrace_user. +Ajoutez une entrée à la table **10.0.2.0** de la machine **solaris** en utilisant l'option **-A** :
- +
-En tant qu'user1, assumez le rôle chbogues et contrôlez les privilèges :+
  
 <code> <code>
-$ su chbogues +# pntadm -A 10.0.2.50 -m solaris 10.0.2.0 
-Mot de passe : +# pntadm -P 10.0.2.50 
-$ ppriv $$ +Client ID Flags Client IP Server IP Lease Expiration          Macro    Comment 
-1263:   pfsh + 
-flags = <none> +00      00  10.0.2.50 10.0.2.15 Zero                      solaris 
-        E: basic,dtrace_kernel,dtrace_proc,dtrace_user +
-        I: basic,dtrace_kernel,dtrace_proc,dtrace_user +
-        P: basic,dtrace_kernel,dtrace_proc,dtrace_user +
-        L: all+
 </code> </code>
  
-Grâce au rôle, user1 peut maintenant utiliser les privilèges dtrace_kernel,dtrace_proc et dtrace_user. +Consultez le contenu du fichier **/var/dhcp/SUNWfiles1_10_0_2_0** :
- +
-L'utilisation des privilèges n'est évidemment pas restreinte à des utilisateurs. Dans le cas de Solaris, il existe des processus appelés **privileged aware process**, par exemple, le processus *kfcd* :+
  
 <code> <code>
-$ exit +cat /var/dhcp/SUNWfiles1_10_0_2_0 
-$ exit +# SUNWfiles1_10_0_2_0 
-ps -ef | grep "kcfd" +# 
-  daemon   120       0 20:51:48 ?           0:09 /usr/lib/crypto/kcfd +# Do NOT edit this file by hand -- use pntadm(1M) or dhcpmgr(1M) instead 
-    root  1265  1261   1 21:34:56 pts/3       0:00 grep kcfd +# 
-ppriv -v 120 +10.0.2.50|00|00|10.0.2.15|0|4338936765994762241|solaris|
-120:    /usr/lib/crypto/kcfd +
-flags = PRIV_AWARE +
-        E: file_owner,proc_priocntl,sys_devices +
-        I: none +
-        P: file_owner,proc_priocntl,sys_devices +
-        L: none+
 </code> </code>
  
-Notez ici que le démon ne possède que les privilèges minimums pour pouvoir exécuter correctement.+Ajoutez neuf autres entrées :
  
 +<code>
 +# pntadm -A 10.0.2.51 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.52 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.53 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.54 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.55 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.56 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.57 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.58 -m solaris 10.0.2.0
 +# pntadm -A 10.0.2.59 -m solaris 10.0.2.0
 +</code>
  
-=====Références=====+Vérifez maintenant le contenu du fichier **/var/dhcp/SUNWfiles1_10_0_2_0** :
  
-  * **[[http://www.oracle.com/technetwork/documentation/solaris-10-192992.html|The Oracle Technology Network]]**+<code> 
 +# cat /var/dhcp/SUNWfiles1_10_0_2_0 
 +# SUNWfiles1_10_0_2_0 
 +
 +# Do NOT edit this file by hand -- use pntadm(1M) or dhcpmgr(1M) instead 
 +
 +10.0.2.50|00|00|10.0.2.15|0|2945917106253725697|solaris
 +10.0.2.51|00|00|10.0.2.15|0|5726608401178296321|solaris| 
 +10.0.2.52|00|00|10.0.2.15|0|92886742314516481|solaris| 
 +10.0.2.53|00|00|10.0.2.15|0|251075679225905153|solaris| 
 +10.0.2.54|00|00|10.0.2.15|0|14762799578520485889|solaris| 
 +10.0.2.55|00|00|10.0.2.15|0|14206886499516940289|solaris| 
 +10.0.2.56|00|00|10.0.2.15|0|18410996751667298305|solaris| 
 +10.0.2.57|00|00|10.0.2.15|0|6406933419887951873|solaris| 
 +10.0.2.58|00|00|10.0.2.15|0|12357877377504641025|solaris| 
 +10.0.2.59|00|00|10.0.2.15|0|12228117413241028609|solaris| 
 +</code>
  
 ----- -----
 <html> <html>
-<center> +<div align="center"
-Copyright © 2011-2018 I2TCH LIMITED.<br><br> +Copyright © 2020 Hugh Norris.
-</center>+
 </html> </html>
 +
Menu