\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. juil. 19 23:10:05 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={atftpd},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Serveur tftp},
CreationDate={D:20100719231005},
ModDate={D:20100719231005},
Keywords={tftp}
}}
\begin{document}
 
\begin{center}
{\Huge atftpd }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Serveur tftp}
 
\vspace{10mm}
 
\hspace{1mm}  Par défaut, il est démarré par inetd, mais peut être lancé comme démon autonome. Ce serveur est multi-thread et supporte toutes les options décrites dans la RFC2347, RFC2348, RFC2349 et RFC2090. Il supporte également le mtftp comme définit dans la spécification PXE.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -t, --tftpd-timeout <value>]{Nombre de secondes d'inactivité avant que le serveur se termine. N'a de signification que si le serveur est lancé par inetd. 300 secondes par défaut.}
\item[\hspace{1mm} -r, --retry-timeout <value>]{Nombre de secondes à attendre pour une réponse avant de retransmettre un packet. 5 secondes par défaut. Peut être écrasé par l'option timeout du client.}
\item[\hspace{1mm} -m, --maxthread <value>]{Nombre maximum de threads permis. 100 par défaut.}
\item[\hspace{1mm} -v, --verbose\texttt{[}=value\texttt{]}]{Augmente ou définis le niveau de log. Sans argument, la valeur est de 1. le défaut est LOG\_NOTICE. les valeurs vont de 0 à 7.}
\item[\hspace{1mm} --trace]{Si verbose est à 7, sort des informations de débuggage pour chaque paquet envoyé ou reçu.}
\item[\hspace{1mm} --no-timeout]{désactive le timeout de la RFC2349.}
\item[\hspace{1mm} --no-tsize]{désactive tsize de la RFC2349}
\item[\hspace{1mm} --no-blksize]{désactive blksize de la RFC2348}
\item[\hspace{1mm} --no-multicast]{désactive multicast de la RFC2090}
\item[\hspace{1mm} --logfile <logfile>]{spécifier le fichier de log.}
\item[\hspace{1mm} --pidfile]{Spécifier le pid du server}
\item[\hspace{1mm} --daemon]{Lance en démon}
\item[\hspace{1mm} --no-fork]{quand --daemon est spécifié l'empêche de se mettre en tâche de fond.}
\item[\hspace{1mm} --user <user\texttt{[}.group\texttt{]}>]{Par défaut le serveur change d'intentité à nobody.nogroup.}
\item[\hspace{1mm} --group <group>]{Permet de changer le group}
\item[\hspace{1mm} --port <number>]{Spécifie le port d'écoute}
\item[\hspace{1mm} --bind-address <IP address>]{Par défaut le serveur écoute sur toutes les interfaces.}
\item[\hspace{1mm} --mcast-ttl]{TTL à utiliser pour le multicast. 1 par défaut.}
\item[\hspace{1mm} --mcast-addr]{Spécifie la page IP à utiliser pour le transfert multicast. défaut : 239.255.0.0-255}
\item[\hspace{1mm} --mcast-port]{Port udp à utiliser pour le transfert multicast}
\item[\hspace{1mm} --pcre-test <file>]{Test un fichier. En utilisant cette option, le serveur ne démarrera pas mais va juste lire le fichier et afficher la substitution.}
\item[\hspace{1mm} --mtftp <file>]{Démarre un thread serveur mtftp pour chaque entrée valide dans le fichier spécifié. Voir la spécification PXE.}
\item[\hspace{1mm} --mtftp-port <port>]{port d'écoute du serveur mtftp}
\item[\hspace{1mm} --no-source-port-checking]{Empêche la vérification du port (utilie pour les NAT) Ne fonctionne que pour transfert non-multicast}
\item[\hspace{1mm} --mcast-switch-client]{Cette option permet au serveur de traiter le prochain client multicast le plus tôt possible une fois qu'il a terminé avec le client courant.}
\item[\hspace{1mm} path]{Répertoire racine utilisé par le serveur. défaut /tftpboot.}
\end{description}
 
\vspace{1cm}{\huge Statistiques }
 
\
 
\hspace{1mm}  Le serveur collecte quelques statistiques. Il calcule la charge système, le temps entre les connexions et quelques statistiques sur les threads, comme le nombre de fichiers envoyés, reçus, annulations etc... Pour voir ces statistiques dans les logs, définir \textbf{--verbose=6 ou +}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Sécurité }
 
\
 
\hspace{1mm}  TFTP par lui-même n'a aucun mécanisme de sécurité. Il n'y a pas d'authentification d'utilisateur et les clients tftp peuvent accéder à tous les fichiers. Une petite sécurité peut être mise en place avec \textbf{atftpd libwarp}. Ajoute les entrées dans \textbf{/etc/hosts.allow} et \textbf{/etc/hosts.deny}. le démon qui utilise ces fichiers est \textbf{in.tftpd}
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge PCRE }
 
\
 
\hspace{1mm}  Le serveur \textbf{atftpd} fournis une manière pour remplacer dynamiquement un nom de fichier requis par un nouveau basé sur une expression régulière perl. Les paires pattern/remplacement sont lu depuis un fichier. Une fois la réceptions d'une requête de lecture, le serveur ouvre le fichier demandé. S'il échoue, il va chercher un fichier de remplacement basé sur le contenu du fichier pattern.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge  }
 
\
 
\hspace{1mm} exemple de fichier de configuration (/etc/default/atftpd): \\
\hspace{1mm} \textbf{OPTIONS="--daemon --user tftp --group tftp --bind-address 10.20.30.1 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 10 --logfile /var/log/atftpd.log --verbose=6 /var/lib/tftpboot"} \\
\end{flushleft}
\end{document}
