\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]{jeu. oct. 7 14:07:40 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={pam\_tally2},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Module compteur de login},
CreationDate={D:20101007140740},
ModDate={D:20101007140740},
Keywords={pam;authentification;sécurité}
}}
\begin{document}
 
\begin{center}
{\Huge pam\_tally2 }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Module compteur de login}
 
\vspace{10mm}
 
\hspace{1mm}  Ce module maintient un compteur de tentative d'accès, peut ré-initialiser ce compteur en cas de succès et peut refuser l'accès si trop de tentatives échouent.
\vspace{5mm} \\
\hspace{1mm}  \textbf{pam\_tally2} est composé de 2 parties: \textbf{pam\_tally2.so} et \textbf{pam\_tally2}. Ce dernier est une application optionnelle qui peut être utilisé pour interroger et manipuler le fichier compteur. Il peut afficher le compteur de l'utilisateur, définir les compteurs individuels ou reset tous les compteurs Définir des compteurs élevés peut être utile pour bloquer les utilisateurs sans changer leur mot de passe. Par exemple, il peut être utile effacer tous les compteurs à minuit depuis un cron.
\vspace{5mm} \\
\hspace{1mm}  Normalement, les tentatives échouées au compte root ne bloque pas ce compte, pour prévenir les DOS. Fournit les types de module auth et account.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Options globales }
 
\
 
\hspace{1mm}  Peuvent être utilisées par les types de module auth et account.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} onerr=fail]{Si quelque-chose se produit (comme l'impossibilité d'ouvrir le fichier), retourne PAM\_SUCCESS si onerr=succeed.}
\item[\hspace{1mm} file=/path/to/counter]{Fichier où sont conservés les compteurs}
\item[\hspace{1mm} audit]{log les noms d'utilisateurs qui ne sont pas trouvés}
\item[\hspace{1mm} silent]{mode silencieux}
\item[\hspace{1mm} no\_log\_info]{ne syslog rien}
\end{description}
 
\vspace{1cm}{\huge Options Auth }
 
\
 
\hspace{1mm}  La phase d'authentification incrémente d'abord le compteur de tentative de login et vérifie si l'utilisateur devrait avoir l'accès refusé. Si l'utilisateur est authentifié et le processus de login continus à l'appel pam\_setcred, le compteur est ré-initialisé.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} deny=n]{Refuse l'accès si le compteur excède N tentatives.}
\item[\hspace{1mm} lock\_time=n]{Refuse toujours après n secondes après qu'une tentative échoue}
\item[\hspace{1mm} unlock\_time=n]{Autorise l'accès après n secondes après une tentative échouée. Si cette option est utilisée l'utilisateur sera bloqué pendant la durée de temps spécifiée après avoir dépassé le nombre de tentative maximum. Sinon le compte est bloqué jusqu'à ce qu'il soit débloqué manuellement}
\item[\hspace{1mm} magic\_root]{Si le module est invoqué par une utilisateur d'uid=0 le compteur n'est pas incrémenté.}
\item[\hspace{1mm} no\_lock\_time]{N'utilise pas le champs \textbf{.fail\_locktime} dans \textbf{/var/log/faillog} pour cet utilisateur}
\item[\hspace{1mm} even\_deny\_root]{Le compte root peut devenir indisponible}
\item[\hspace{1mm} root\_unlock\_time=n]{Cette option implique \textbf{even\_root}. Autorise l'accès après n secondes au compte root après une tentative échouée.}
\item[\hspace{1mm} serialize]{Sérialise l'accès au fichier compteur utilisant les locks. Cette options peut être utilisée seulement pour les services non-multi-threads parce qu'il dépend du fcntl locking dans le fichier compteur. C'est également une bonne idée d'utiliser cette option seulement dans des configuration où le temps entre la phase auth et la phase account ou setcred n'est pas dépendant du client. Sinon le client sera capable de prévenir les authentification simultanées par le même utilisateur en prolongeant artificiellement le temps que le fichier lock.}
\end{description}
 
\vspace{1cm}{\huge Options Account }
 
\
 
\hspace{1mm}  La phase account ré-initialise le compteur de tentatives si l'utilisateur n'est pas root. Cette phase peut être utilisée optionnellement pour les services qui n'appellent pas pam\_setcred correctement ou si le reset devrait être fait sans regarder les échecs de la phase account des autres modules.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} magic\_root]{Si le module est invoqué par un utilisateur avec uid=0 le compteur n'est pas changé. Le sysadmin devrait l'utiliser pour les services utilisateurs, comme su, sinon cet argument devrait être omis.}
\end{description}
 
\vspace{1cm}{\huge Valeurs retournées }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} PAM\_AUTH\_ERR]{option invalide, le module ne peut pas retrouver le nom d'utilisateur, compteur invalide, fichier non trouvé ou trop de logins échoués}
\item[\hspace{1mm} PAM\_SUCCESS]{Tous est ok}
\item[\hspace{1mm} PAM\_USER\_UNKNOWN]{Utilisateur inconnus}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Exemple de /etc/pam.d/login pour bloquer le compte au bout de 4 tentatives. Le root ne sera pas bloqué. Le compte sera débloqué après 20 minutes. Le module n'a pas à être appelé dans la phase account parce que login appelle pam\_setcred correctement \\
\hspace{1mm} \textbf{auth required pam\_securetty.so} \\
\hspace{1mm} \textbf{auth required pam\_tally2.so deny=4 even\_deny\_root unlock\_time=1200} \\
\hspace{1mm} \textbf{auth required pam\_env.so} \\
\hspace{1mm} \textbf{auth required pam\_unix.so} \\
\hspace{1mm} \textbf{auth required pam\_nologin.so} \\
\hspace{1mm} \textbf{account required pam\_unix.so} \\
\hspace{1mm} \textbf{password required pam\_unix.so} \\
\hspace{1mm} \textbf{session required pam\_limits.so} \\
\hspace{1mm} \textbf{session required pam\_unix.so} \\
\hspace{1mm} \textbf{session required pam\_lastlog.so nowtmp} \\
\hspace{1mm} \textbf{session optional pam\_mail.so standard} \\
\end{flushleft}
\end{document}
