\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{lun. nov. 14 18:16:21 CET 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={isnsadm.conf},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichiers de configuration iSNS},
CreationDate={D:20161114181621},
ModDate={D:20161114181621},
Keywords={iSCSI;storages}
}}
\begin{document}
 
\begin{center}
{\Huge isnsadm.conf, isnsd.conf, isnsdd.conf }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichiers de configuration iSNS}
 
\vspace{10mm}
 
\hspace{1mm}  Tous les utilitaires Open-iSNS lisent leur configuration dans un fichier dans /etc/isns. Il y a un fichier par application, isnsd, isnsadm, et isnsdd. Des valeurs de délai acceptent une unité: d (jour), h (heure), m (minute), ou s (seconde).
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Options génériques }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} HostName]{Par défaut, les applications Open-iSNS récupèrent le nom d'hôte de la machine avec gethostname(3), et utilisent une recherche DNS pour retrouver le nom canonique. Cette option remplace ce mode}
\item[\hspace{1mm} SourceName]{Obligatoire pour toutes les applications Open-iSNS. Devrait être le nom qui identifie le client de manière unique. Il y a 2 lectures de la rfc4171, une exige qun nom iSCSI tel que 'iqn.2001-04.com.example.host', et une autre suggère un format plus simple, tel que fqdn du client.}
\item[\hspace{1mm} IQNPrefix]{Spécifie le préfixe de nom qualifié iSCSI; doit être sous la forme iqn.YYYY-MM, YYYY étant l'année et MM le mois.}
\item[\hspace{1mm} ServerAddress]{(client) Spécifie le nom d'hôte ou l'adresse du serveur iSNS à contacter.}
\item[\hspace{1mm} SLPRegister]{(serveur) À 1, le service s'enregistre lui-même avec le service SLP. Cela permet aux clients de contacter le serveur sans avoir à configurer d'adresse statiquement.}
\item[\hspace{1mm} PIDFile]{(serveur) Spécifie le nom du fichier pid. Défaut: /var/run/isnsd.pid}
\end{description}
 
\vspace{1cm}{\huge Options liée à la base de données }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} Database]{Spécifie comment la base est stockée. Vide, la base est conservée en mémoire, sinon, c'est le répertoire où isnsd conserve sa base.}
\item[\hspace{1mm} DefaultDiscoveryDomain]{iSNS définis la visibilité des autres nœuds en utilisant les Discovery Domains. Un nœud de stockage A ne verra que le nœud de stockage B, s'ils sont membres du même domaine de découverte. À 1, indique à isnsd de créer un domaine de découverte virtuel, qui maintient tous les nœuds qui ne font pas partie d'un domaine de découverte configuré administrativement.}
\item[\hspace{1mm} RegistrationPeriod]{Le serveur iSNS peut purger les entités enregistrées après une certaine période d'inactivité. Les clients qui s'enregistrent sont supposés rafraîchir leur enregistrement dans cette période.}
\item[\hspace{1mm} ESIRetries]{Open-iSNS est capable de monitorer l'accessibilité des nœuds de stockage et leur portails en utilisant une fonctionnalité de protocole appelé ESI (Entity status inquiry). Les clients demandent à superviser ESI en enregistrant un port ESI avec chaque portail. Le serveur envoie des messages ESI à ces portails à interval régulier. Si le portail échoue à répondre plusieurs fois, il est considéré mort, et sera supprimé de la base. ESIRetries spécifie le nombre max de tentative. Défaut: 3}
\item[\hspace{1mm} ESIMinInterval]{interval ESI minimum. Défaut: 60 secondes}
\item[\hspace{1mm} ESIMaxInterval]{Interval ESI maximum. Défaut: 10 minutes}
\item[\hspace{1mm} SCNRetries]{Les clients iSNS peuvent enregistrer leur message SCN (State Change Notification) reçus pour connaître les changements dans la base iSNS. Spécifie le nombre de tentatives de transmission d'une message SCN par le serveur avant abandon. Défaut: 3}
\item[\hspace{1mm} SCNCallout]{Chemin du programme helper que isnsdd invoque quand il traite un SCN d'un serveur. Ce programme est invoqué avec un argument indiquant le type d'événement (add, update, ou remove), suivi par une liste d'attributs name=value, en utilisant les noms et conventions décris dans isnsadm.}
\end{description}
 
\vspace{1cm}{\huge Options liées à la sécurité }
 
\
 
\hspace{1mm}  Le standard iSNS définis une méthode d'authentification basée sur l'algorithme DSA. Les participants dans l'échange authentifient les messages en ajoutant un bloc d'authentification contenant un horodatage, une chaîne identifiant la clé utilisée, et une signature numérique du message. La même méthode est également utilisée par SLP.
\vspace{5mm} \\
 
 
\hspace{1mm}  La chaîne contenue dans la bloc d'authentification est référée au SPI (Security Policy Index). Cette chaîne peut être utilisée par le serveur pour rechercher la clé publique du client; donc la chaîne peut être utilisée comme nom du fichier de clé publique dans un répertoire, ou pour récupérer un certificat dans LDAP.
\vspace{5mm} \\
 
 
\hspace{1mm}  Pour les applications clientes Open-iSNS, il y a seulement 2 clés: la clé privée du client, utilisée pour signer les message qu'il envoie au serveur, et la clé publique du serveur, utilisée pour vérifier la signature des messages du serveur.
\vspace{5mm} \\
 
 
\hspace{1mm}  Le serveur iSNS doit, en plus de sa clé privée, accéder à toutes les clés publiques des clients qui vont communiquer avec lui.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} Security]{Active l'authentification DSA. à 1, le client signe tous les message, et s'attend à des messages serveur signés.}
\item[\hspace{1mm} AuthName]{Chaîne utilisée come SPI dans tous les messages sortants qui ont un bloc auth. Défaut: le nom d'hôte (voir l'option HostName)}
\item[\hspace{1mm} AuthKeyFile]{Chemin de la clé DSA encodé PEM. Défaut: /etc/isns/auth\_key}
\item[\hspace{1mm} ServerKeyFile]{(client), fichier contenant la clé publique DSA encodé PEM du serveur. Défaut: /etc/isns/server\_key.pub}
\item[\hspace{1mm} KeyStore]{(serveur) spécifie l'emplacement des clés.}
\item[\hspace{1mm} Auth.ReplayWindow]{Pour compenser le décalage d'horloge entre 2 hôtes, Open-iSNS applique un léger flou en comparant les horodatages contenus dans le message et l'horloge système. Défaut: 5m}
\item[\hspace{1mm} Auth.TimestampJitter]{En vérifiant les messages entrant, Open-iSNS vérifie que les horodatages envoyés par le pair sont augmenté monotoniquement. Pour compenser le réordonnancement des messages par le réseaux, un jitter est accepté. Si un horodatage d'un message entrant n'est pas avant cette durée en seconde, le message est accepté. Défaut: 1s}
\end{description}
 
\vspace{1cm}{\huge Stockage de clé et stratégie }
 
\
 
\hspace{1mm}  L'implémentation actuelle supporte 2 types de stockage de clé. Le premier utilise un simple répertoire pour stocker les clés publiques, chaque clé a un fichier PEM et nommé par le SPI du client. Ce type n'est pas recommandé puisqu'il ne stock aucune information de stratégie.
\vspace{5mm} \\
 
 
\hspace{1mm}  L'approche recommandé est d'utiliser une base de donnée. Celà utilise des objets de stratégie spécifique aux vendeurs pour gérer les chaîne SPI, clé publique, noms d'entité, nom de source et d'autres bits de statégie. La base de données est configurée en définissant l'option KeyStore à la valeur DB:. Les objets de stratégie Open-iSNS ont les attributs suivants, en plus du SPI:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} Source]{Nom de nœud source que le client doit utiliser. Défaut: la chaîne SPI}
\item[\hspace{1mm} Functions]{bitmap détaillant quelles fonctions le client peut invoquer. Les noms de bit correspondent aux noms cours utilisé dans la rfc4711, tel que DevAttrReg, DevAttrQry, etc. Défaut: autorise l'enregistrement, requête et désenregistrement, et SCNRegister}
\item[\hspace{1mm} Entity name]{C'est le nom de l'entité assigné au client. Si définit, un enregistrement par le client n'est pas autorisé avec un autre nom. Si le client s'enregistre sans identifiant d'entité, le serveur le nom donné par la stratégie. Défaut: pas de restriction}
\item[\hspace{1mm} Object access]{Champ de bits de permission d'accès pour chaque type d'objet (lecture, écriture).}
\item[\hspace{1mm} Node types]{Champ de bits décrivant quels types de nœud de stockage un client peut enregistrer. (target, initiator ou control). Défaut: initiator uniquement.}
\end{description}
 
\vspace{1cm}{\huge Options liées au réseau }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} Network.MaxSockets]{Nombre de connexion entrantes acceptées. Défaut: 1024.}
\item[\hspace{1mm} Network.ConnectTimeout]{timeout d'attente d'établissement de connexion TCP. Défaut: 60s}
\item[\hspace{1mm} Network.ReconnectTimeout]{Si une connextion échoue, délai d'attente avant de retenter. Défaut: 10s}
\item[\hspace{1mm} Network.CallTimeout]{Délai d'attente de timeout d'un appel au serveur iSNS. Défaut: 60s.}
\end{description}
\end{flushleft}
\end{document}
