%%
%% ResEl 103 : Présentation du fonctionnement de l'architecture du ResEl
%%
%%
%% Copyright (C) 2005 Association ResEl <gestion@resel.enst-bretagne.fr>
%% Ce document est un document libre ; vous pouvez le redistribuer et/ou
%% le modifier au titre des clauses de la Licence Publique Générale GNU,
%% telle que publiée par la Free Software Foundation ; soit la version 2
%% de la Licence, ou (à votre discrétion) une version ultérieure
%% quelconque. Ce docuement est distribué dans l'espoir qu'il sera utile,
%% mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de
%% COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. Voir
%% la Licence Publique Générale GNU pour plus de détails. Vous devriez
%% avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce
%% programme ; si ce n'est pas le cas, écrivez à la Free Software
%% Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%% 02110-1301, USA.

%\documentclass[xcolor=pst,compress]{beamer}
\documentclass{beamer}
% xcolor = bst pour pouvoir utiliser PSTricks et Beamer

\usepackage[francais]{babel}
\usepackage[latin1]{inputenc}
\usepackage{pstricks,xspace}
\usepackage{graphicx}

%% Rajoute un \strut pour que la couleur résiste à un \item devant...
\newcommand{\vavers}{\strut{\red$\leadsto$}\xspace}

\mode<presentation>
{
  %\usetheme{Warsaw}

  % Variation sur le thème de Warsaw
  % (principalement à cause du rappel du plan en haut
  %  qui est devenu trop long)
  \useinnertheme{rounded}
  \useoutertheme{infolines}
  \usecolortheme{orchid}
  \usecolortheme{whale}

  \setbeamercovered{transparent}

  % On supprime la barre de navigation
  \setbeamertemplate{navigation symbols}{}
}



\title[Fonctionnement du ResEl]
{ResEl 103 : Présentation du fonctionnement et de l'architecture du ResEl}

\author[Association ResEl]
{
  Association ResEl\\
  \texttt{<gestion@resel.enst-bretagne.fr>}
}

\institute[Réseau des élèves]
{
  Réseau des Élèves de l'ENST Bretagne
}

\date{4 octobre 2005}


\subject{ResEl 103 : Présentation du fonctionnement et de l'architecture du ResEl}
\keywords{ResEl}


\author[Association ResEl]
{
  Association ResEl\\
  \texttt{<gestion@resel.enst-bretagne.fr>}
}

\institute[Réseau des Élèves]
{
  Réseau des Élèves de l'ENST Bretagne
}

\date{23 Septembre 2005}



% Logo du ResEl
\pgfdeclareimage[height=0.4cm]{resel}{logo_ResEl}
\logo{\pgfuseimage{resel}}


% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
\AtBeginSection[]
{
  \begin{frame}<beamer>
    \frametitle{Plan}
    \scriptsize
    \tableofcontents[currentsection]
    \normalsize
  \end{frame}
}


% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
%\AtBeginSubsection[]
%{
%  \begin{frame}<beamer>
%    \frametitle{Plan}
%    \scriptsize
%    \tableofcontents[currentsection,currentsubsection]
%    \normalsize
%  \end{frame}
%}


% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command:
%\beamerdefaultoverlayspecification{<+->}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
  \frametitle{Licence}

  \begin{block}{}
    Ces slides sont sous licence GPL (General Public Licence). Ils sont
    disponibles, avec leur code source sur le site de l'Association ResEl
    (\href{http://resel.enst-bretagne.fr}{http://resel.enst-bretagne.fr}).

\vspace{0.8cm}

    Ils ont été créés à partir de logiciels libres (\LaTeX-beamer).

\vspace{0.6cm}
    Ce cours nécessite les notions de base abordées dans les cours ResEl~101 et ResEl~102.
  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
  \frametitle{Plan}
  \scriptsize
  \tableofcontents
  \normalsize
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Introduction}

\begin{frame}
  \frametitle{Historique (création du réseau)}

  \begin{block}{}
   \begin{itemize}
    \item 
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Historique (création du réseau)}

  \begin{block}{}
   \begin{itemize}
    \item Le réseau arrive dans les chambres en même temps que le téléphone fin 1989
    \item 18 connectés en 1991 sur un réseau à 64 kF
    \item une fibre optique remplace la liaison 10 Mbps entre le ResEl et l'école en 1994
    \item le réseau ne servait qu'à se loguer sur les stations SUN de l'école
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Historique (évènements récents)}

  \begin{block}{}
   \begin{itemize}
    \item Le club linux est créé en 1994, il devient rapidement le club RésEl
    \item Le budget servait à un abonnement à Linux Journal
    \item Une cinquantaine de personne est connectée en 1996, le club obtient un budget du BdE pour acheter une Slackware, mais passe rapidement à Debian sur le serveur 486 qui fait tourner un serveur DNS
    \item Le forum Meli-Melo apparaît
    \item La commande groupée apparaît en 1998
    \item Le réseau ne cesse de s'améliorer au niveau matériel
  \end{itemize}

  \end{block}
\end{frame}


\begin{frame}
  \frametitle{Historique (ResEl 2)}

  \begin{block}{}
   \begin{itemize}

    \item Suite à des problèmes avec la trésorerie du BdE, le ResEl prend son indépendance et l'Association \og Réseau des Élèves de l'ENST Bretagne (ResEl) \fg est créée en Octobre 2002
    \item Grands changements en 2003/2004 (projet ResEl 2) :
    \begin{itemize} 
	\item Les services se répartissent sur plusieurs serveurs
	\item le forum Meli-Melo est remplacé par Agora ;
	\item la base LDAP est créée ;
	\item le DHCP est mis en place, simplification de la connexion ;
	\item le Whoswho est réécrit ;
	\item le site web est refait de zéro ;
	\item un nouveau système d'administration du réseau est écrit sous licence GPL (ResElAdmin2).
    \end{itemize}
  \end{itemize}

  \end{block}
\end{frame}


\begin{frame}
  \frametitle{Principaux serveurs}
% +lien vers le plan, qui sera un peu commenté
  \begin{block}{}
   \begin{itemize}
    \item La DISI de Rennes a fait don au ResEl d'une vingtaine de stations sun Ultra5
    \item La plupart des serveurs ne sont pas récents, voici les principaux :
    \begin{itemize}
	\item Noboot : serveur DNS, DHCP, ResElAdmin2 ;
	\item Saturne : serveur web, bientôt remplacée par Baal ;
	\item Lily : passerelle et firewall IPv4 ;
 	\item Tv : diffusion de la TNT et des webradios ;
	\item Venus : serveur de mails, mailing-list, forum ;
	\item Alice : miroir des distributions et logiciels libres Windows ;
	\item Eve : surveillance du réseau et sauvegarde ;
	\item Anima : serveur IRC.
    \end{itemize}
  \end{itemize}

  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\section{Architecture du réseau}

\begin{frame}
  \frametitle{Débits Interne et externes}
% +lien vers le plan, qui sera un peu commenté
  \begin{block}{}
   \begin{itemize}
    \item Au niveau interne,
    \begin{itemize}
	\item tous les bâtiments sont reliés par des fibres optiques Gigabit au I1 ;
	\item les switches d'un même bâtiment sont reliés entre eux par un lien Gigabit ; % on s'en fout ?, sinon ce sont des câbles de matrice pour les 3com 3300, pas des gigabit
	\item les chambres disposent de prises RJ45, reliées au switchs des bâtiments par des câbles catégorie 5 capables de supporter du 100~Mbps (sauf I6). % RJ45 c'est le format de la prise, pas du câble
    \end{itemize}
    \item Au niveau d'Internet, l'école dispose de 20~Mbps sur Megalis (réseau haut-débit Breton) :
    \begin{itemize}
	\item 4~Mbps sont utilisés pour le lien Brest - Rennes ;
	\item 3 ou 5~Mbps (respectivement la nuit ou le week-end) sont réservés au ResEl ;
	\item le reste est utilisé par l'école, ce qui explique le débit plus important du proxy.
    \end{itemize}
  \end{itemize}

  \end{block}
% et enfin lien vers les graphes cacti
\end{frame}

\begin{frame}
  \frametitle{Plages d'adressage IP}

  \begin{block}{}
   \begin{itemize}
    \item Le ResEl ne dispose que d'une adresse IP publique (192.44.76.8)
    \item En interne le NAT (\emph{Network Address Translation}) est utilisé
    \item Les IP internes vont de 172.16.21.x à 172.16.30.x
    \begin{itemize}
	\item 172.16.21.x est utilisé pour l'adressage des switches
	\item 172.16.22.x est utilisé pour le DHCP (personnes pas encore inscrites)
	\item 172.16.23-27.x est utilisé pour les PCs fixes
	\item 172.16.28-29.x est utilisé pour les PCs Wi-Fi
	\item 172.16.30.x est utilisé pour les personnes invitées
	\item 192.168.0-1.x est utilisé pour le ResEl de Rennes
    \end{itemize}
    \item Le ResEl dispose d'un /64 (pour le moment) en IPv6. L'IPv6 est en cours d'implémentation % détailler le /64
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{DMZ}

  \begin{block}{}
   \begin{itemize}
    \item Le ResEl dispose d'une zone démilitarisée (DMZ), qui sert de tampon entre l'extérieur et l'intérieur
    \item Cette DMZ a l'IP 172.16.23.1 en interne, 192.44.76.8 sur internet, et 10.0.0.1 dans la DMZ
    \item Les machines dont les services doivent être accessibles de l'extérieur sont présentes : serveur mail, firewall, serveur web
    \item Depuis l'extérieur, on ne peut accéder qu'à la DMZ et pas à l'intérieur
    \item La DMZ est un VLAN sur un switch, c'est Lily qui fait le lien entre l'intérieur, l'extérieur et la DMZ (3 cartes réseau)
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Routage et filtrage}

  \begin{block}{}
   \begin{itemize}
    \item Le réseau Interne de l'école ainsi que le ResEl de Rennes est disponible sans passer par la DMZ
    \item Les adresses en 172.16.21.x (switches), 172.16.22.x (DHCP) et 172.16.30.x (invités) ne peuvent pas communiquer avec le réseau interne de l'école, mais les invités peuvent accéder à Internet
    \item Les autres adresses peuvent aller partout % bah non 172.16.45.156 par ex ne peut pas aller partout
    \item Le TCP est peu filtré
    \item Presque tous les ports UDP sont bloqués par l'école
  \end{itemize}

  \end{block}
\end{frame}



\begin{frame}
  \frametitle{Switches et câblage}

  \begin{block}{}
   \begin{itemize}
    \item Le ResEl dispose de switches professionnels, fournis pas la DISI :
    \begin{itemize}
	\item des 3Com (3300 pour la plupart) ;
	\item des Cisco 2950 plus, les plus récents ;
	\item un Cisco 3750 Gigabit pour la liaison inter-bâtiments, avec fonctions de routages inutilisées.
    \end{itemize}
    \item Le fait d'avoir à la fois des 3Com et des Cisco complique l'administration automatisée de certaines fonctionnalités, comme les VLANs (interfaces propriétaires incompatibles)
    \item C'est également la DISI qui s'occupe du câblage des bâtiments
  \end{itemize}

  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Bases de données}
\begin{frame}
  \frametitle{Présentation d'Open LDAP}

  \begin{block}{}
   \begin{itemize}
    \item À l'origine, LDAP (\emph{Lightweight Directory Access Protocol}) est un protocole permettant l'accès à des annuaires
    \item Standalone LDAP est un annuaire avec une base de données. Open LDAP est une implémentation libre de Standalone LDAP
    \item La base se présente sous la forme d'un arborescence hiérarchisé (contrairement à SQL)
    \item Le LDAP bénéficie d'un accès extrêmement rapide en lecture mais d'un accès lent en écriture (par rapport à une SQL par exemple)
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Présentation du LDAP du ResEl}

  \begin{block}{}
Le LDAP du ResEl est constitué de 2 branches principales : 
   \begin{itemize}
    \item \texttt{dc=maisel,dc=enst-bretagne,dc=fr} qui contient trois branches :
    \begin{itemize}
	\item \texttt{ou=people} contenant toutes les personnes pouvant avoir une machine
	\item \texttt{ou=anciens} contenant tous les anciens (promo antérieure à 2003) qui ne peuvent plus avoir de machine
	\item \texttt{ou=clubs} qui contient les informations sur les clubs
    \end{itemize}
    \item \texttt{dc=resel,dc=enst-bretagne,dc=fr} qui contient 4 branches :
    \begin{itemize}
	\item \texttt{ou=machines} contenant toutes les machines enregistrées. Chaque machine fait référence à son propriétaire, et possède entre autres les attributs \emph{macAddress} et \emph{ipHostNumber}
	\item \texttt{ou=admins} contenant les droits des administrateurs
	\item \texttt{ou=reseau} contenant tous les ports des switches et les chambres auxquels ils correspondent
	\item \texttt{ou=snmp} contenant les MIB des switches pour l'automatisation
    \end{itemize}
  \end{itemize}

  \end{block}
% demo de gq en direct live
\end{frame}

\begin{frame}
  \frametitle{Les SQLs et leur rôle}

  \begin{block}{}
   \begin{itemize}
    \item La SQL \texttt{cachePort}, sur Noboot, sert à faire la correspondance entre les adresses MAC et les ports des switches. En effet les adresses MAC qui ont circulé sur un port restent dans la cache de ce port un certain temps, et un script vient régulièrement relever les caches des ports (en SNMP) pour remplir cette SQL. Il y a également une notion de date pour savoir quand les gens sont partis
    \item La SQL \texttt{telephone} sur Noboot sert de tampon pour la mise à jour à partir du PABX : les données du PABX sont mises dans cette SQL régulièrement, puis une mise à jour du LDAP a lieu de façon plus fine.
    \item La SQL \texttt{tresorerie} sert pour la gestion de la trésorerie
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Les logs}

  \begin{block}{}
   \begin{itemize}
    \item De nombreux logs sont gardés par le ResEl :
    \begin{itemize}
	\item net-acct tourne sur la passerelle : cela sauvegarde toutes les connexions passant par la passerelle : on peut donc voir qui a contacté quelle IP sur quel port à quel moment précis. On ne les consulte qu'en cas de besoin, par exemple cas de piratage qui arrivent de temps en temps
	\item journaux de connexion du serveur SMTP
    \end{itemize}
  \end{itemize}

  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Services basés sur LDAP}

\begin{frame}
  \frametitle{Scripts d'inscription}

  \begin{block}{}
   \begin{itemize}
    \item Après une authentification basée sur le LDAP, le script d'inscription effectue plusieurs opérations : 
    \begin{itemize}
	\item obtient la MAC avec laquelle la personne est venue sur le site ;
	\item si la mac est déjà enregistrée le script s'arrête ;
	\item sinon le script demande le nom de machine désiré ;
	\item une fois un nom d'hôte correct trouvé, l'attribut \emph{reselPerson} est ajouté à l'entrée de l'utilisateur dans la branche people, et la machine est ajoutée dans la branche \texttt{ou=machines}, avec une IP libre.
    \end{itemize}
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Inscription au Wifi}

  \begin{block}{}
   \begin{itemize}
    \item L'inscription au Wi-Fi est légèrement différente puisqu'il faut interagir avec la DISI :
    \begin{itemize}
	\item le script demande l'adresse MAC que l'utilisateur veut inscrire au wifi ;
	\item puis il vérifie qu'aucune machine dans le ldap n'a déjà cette adresse (pour éviter que les gens inscrivent leur carte réseau filaire au Wi-Fi) ;
	\item enfin le script met en forme un mail type à envoyer à la DISI, qui ajoute ensuite ces MACs sur leurs bornes afin que la connexion à leur réseau soit possible ;
	\item l'attribut reselPerson est rajouté à l'utilisateur.
    \end{itemize}
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Whoswho, synchronisations}

  \begin{block}{}
   \begin{itemize}
    \item L'annuaire LDAP du ResEl est synchronisé avec celui de l'école (disponible en accès anonyme) pour avoir les noms des personnes
    \item Un script intialise le mot de passe ResEl au mot de passe école (les hashs des mots de passe de l'école sont en accès libre)
    \item Pour connaître la chambre on exporte des fichiers textes à partir du logiciel de gestion hôtelière de la Maisel (en cours d'implémentation)
    \item Pour le numéro de téléphone et le compte téléphonique, on se base sur le PABX de l'école, rempli par la MaisEl, sur lequel il est nécessaire de faire du reverse-ingeneering
    \item Tout ceci fait que parfois l'annuaire n'est pas à jour\ldots
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Firewall}

  \begin{block}{}
   \begin{itemize}
    \item Le firewall est situé sur la passerelle (Lily)
    \item C'est un simple \texttt{iptables} dont les tables sont regénérées souvent
    \item Les tables contiennent toutes les adresses MAC des machines enregistrées et ne laisse pas passer le reste
    \item À chaque inscription les tables sont regénérées pour contenir toutes les MAC enregistrées
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{DNS}

  \begin{block}{}
   \begin{itemize}
    \item Le DNS utilisé au ResEl est \texttt{bind9}
    \item Il est présent sur Noboot (DNS primaire) et Lily (DNS secondaire)
    \item Les bases de données sont mises à jour à partir de la branche machine : un script (\texttt{ldap2dns.pl}) regarde toutes les entrées de la branche machine du LDAP et fait correspondre toutes les IP et les noms de machine (ainsi que les alias)
    \item À chaque inscription ce script est relancé
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{DHCP}

  \begin{block}{}
   \begin{itemize}
    \item Le DHCP du ResEl est \texttt{dhcp3-server} de l'Internet Systems Consorsium (ISC) , installé sur Noboot
    \item Le DHCP se sert également du LDAP : il attribue l'IP automatiquement en fonction de la MAC du demandeur, et la correspondance est établie dans une table qui est refaite à chaque inscription
    \item Le DHCP communique également l'emplacement des deux DNS et de la passerelle Internet, pour faciliter la connexion
  \end{itemize}

  \end{block}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Autres services}

\begin{frame}
  \frametitle{TNT}

  \begin{block}{}
   \begin{itemize}
    \item Une machine sert à diffuser la télé : TV (ancienne machine RéActiVE), elle est munie de deux cartes TNT Nova-T
    \item VLC sert pour le moment à faire le streaming DVB en Multicast
    \item Chaque chaîne est diffusée sur une adresse multicast
    \item Les annonces SAP (correspondance entre le nom d'une chaîne et son adresse) sont broadcastées souvent
    \item MiniSAPServer sert à diffuser les annonces SAP des webradios (diffusées par Icecast) et de la TNT
    \item Une carte TNT peut recevoir un seul multiplexe
    \item Problème de réception et de bogues de Vlc, il faut passer à Mumudvb
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Le miroir}

  \begin{block}{}
Le miroir contient principalement quatre types de fichiers :
  \begin{itemize}
    \item Les logiciels libres Windows, mis à jour à la main, grâce à un abonnement à des listes de diffusions de logiciels libres
    \item Les isos de distributions mises à jour de temps à temps (peu de variations majeures au cours du temps)
    \item Les noyaux de kernel.org dont la mise à jour est très simple à vérifier sur le site
    \item Les paquets des distributions, mis à jour automatiquement 1 à 4 fois par jour
  \end{itemize}

  \end{block}
\end{frame}


\begin{frame}
  \frametitle{Le site}

  \begin{block}{}
   \begin{itemize}
    \item Le site est hébergé sur Saturne (bientôt sur Baal), dans la DMZ
    \item La carte réseau possède deux adresses IP : une pour l'intérieur, une pour l'extérieur
    \item des Rewrite-Rules apache convertissent l'URL \url{http://resel.fr/coin/coin.xml} en \url{http://resel.fr/Index.php?page=coin/coin.xml} sans que cela se voie dans le navigateur : cela augmente la sécurité et permet d'inclure les headers et footers dans chaque page
    \item Constitué d'un répertoire \texttt{int/} (accessible de l'intérieur et de l'extérieur lorsqu'on est identifié en httpS) et d'un répertoire \texttt{ext/} (accessible de l'extérieur) contenant des liens vers le répertoire \texttt{int/} , cela permet de  contrôler ce que l'on met ou pas sur le site extérieur
  \end{itemize}

  \end{block}
\end{frame}


\begin{frame}
  \frametitle{Les sites des clubs}

  \begin{block}{}
   \begin{itemize}
    \item Les clubs ont un compte sur le serveur web, dont leur shell est \texttt{/usr/bin/passwd}, donc ils ne peuvent pas directement accéder au serveur en lui-même, mais seulement changer leur mot de passe lorsqu'ils utilisent \texttt{ssh}
    \item Leur dossier home est la racine de leur site
    \item Proftpd est configuré pour que les utilisateurs puissent accéder à leur dossier home en FTP, avec leur login et mot de passe
    \item Bientôt \texttt{pam\_ldap} identifiera dynamiquement les clubs à partir de la branche du LDAP, au lieu de leur donner un compte
  \end{itemize}

  \end{block}
\end{frame}


\begin{frame}
  \frametitle{Listes de diffusion et Agora}

  \begin{block}{}
   \begin{itemize}
    \item Les mails, les listes de diffusion et le forum Agora sont sur Venus, dans la DMZ
    \item Le forum Agora est géré par \texttt{inn2}
    \item L'envoi de mail se fait par \texttt{postfix}
    \item La gestion des boîtes aux lettres \url{@resel.tb} se fait par \texttt{courrier-imap} et \texttt{courrier-pop}
    \item Les listes de diffusion sont gérées par \texttt{sympa} (interface web et moteur)
  \end{itemize}

  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Les outils d'administration}

\begin{frame}
  \frametitle{Administration des switches}

  \begin{block}{}
   \begin{itemize}
    \item Il y a trois façons d'administrer les switches :
    \begin{itemize} 
	\item en telnet (ou ssh sur les Cisco) : on a accès à toutes les fonctions du switch, aux statistiques, etc. dans une interface console ;
	\item en http : une interface web de gestion des switches est disponible, mais jamais utilisée ;
	\item en SNMP (\emph{Simple Network Management Protocol}) : protocole permettant une administration automatique, dans des scripts, mais nécessitant d'avoir des MIB (correspondance entre les messages snmp et les commandes correspondantes) qui sont parfois propriétaires.
    \end{itemize}
  \end{itemize}

  \end{block}
% suivie d'une demo en direct live
\end{frame}

\begin{frame}
  \frametitle{Les langages utilisés}

  \begin{block}{}
   \begin{itemize}
    \item Les principaux langages utilisés sont perl et php
    \item PHP est utilisé pour les interfaces web : le site, l'inscription, ResElAdmin2
    \item Perl est utilisé pour les scripts lancés à l'inscription (firewall, DNS, DHCP), ainsi que pour les petits scripts comme arpkiller, les script de parsage des logs pour la surveillance
    \item Quelques scripts bash sont utilisés pour la surveillance de la taille des partitions, les mises à jour automatiques du miroir, etc.
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{ResElAdmin2}
% démo de ra2
  \begin{block}{}
   \begin{itemize}
    \item Logiciel développé par Milton Yates (président 2003/2004) sous licence GPL (crédits AEP) : interface Web de gestion du ResEl écrite en php, basée sur l'ancien ResElAdmin
    \item Logiciel non-portable (développé pour le ResEl), mais incluant beaucoup de fonctionnalités : 
    \begin{itemize}
	\item gestion des switches (3Com et Cisco de façon transparente) : reboot, état des ports, fermeture des ports, etc. ;
	\item gestion de la trésorerie ;
	\item une recherche universelle sans restrictions et possédant des liens directement vers le port du switch de la personne recherchée ;
    \end{itemize}
    \item énormément de nouvelles fonctionnalités à développer
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Subversion}

  \begin{block}{}
   \begin{itemize}
    \item Subversion (SVN) est un gestionnaire de version de fichiers
    \item le dépôt du ResEl contient 5 branches : 
    \begin{itemize}
	\item \texttt{asso} : contient les documents relatifs à l'association (Comptes-rendus, statuts, etc.)
	\item \texttt{conf} : contient les fichiers de configuration crutiaux
	\item \texttt{dev} : contient les programmes de développement (ResElAdmin2)
	\item \texttt{script} : contient tous les scripts développés au ResEl
	\item \texttt{webresel} : contient tout ce qui touche au site
    \end{itemize}
    \item Projet d'ouverture du svn pour clarté et remarques extérieures
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Trac}
%démo de Trac
  \begin{block}{}
Trac est un outil d'administration libre écrit en python, qui gère plusieurs services :
   \begin{itemize}
    \item un Wiki pour toute la documentation que les gens du ResEl peuvent écrire
    \item un navigateur svn très simple, avec coloration syntaxique et diffs visuels pour bien voir ce qu'ont modifié les différentes mises à jour   
    \item un système de tickets pour les administrateurs : lorsqu'une tâche importante est identifiée, un ticket est ouvert (et un mail est envoyé), et lorsqu'on a terminé la tâche, le ticket est fermé. On peut donc avoir une idée précise des tâches à accomplir, avec leur priorité
  \end{itemize}

  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Surveillance du réseau}

\begin{frame}
  \frametitle{arpkiller}

  \begin{block}{}
   \begin{itemize}
    \item \texttt{arpkiller} est un script récent, écrit en perl pour empêcher la propagation de virus
    \item Il fait fonctionner \texttt{tcpdump} en permanence et regarde les requêtes ARP (qui sont broadcastées)
    \item Il trie ensuite les requêtes sur des IP hors-range 
    \item Au bout de 50 requêtes sur des IP hors-range (virus), le script coupe automatiquement le port de la machine en question, grâce à SNMP
    \item En cas de coupure le script envoie un mail au coupé et à \url{virus@resel}
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Surveillance des pannes : Nagios}

  \begin{block}{}
   \begin{itemize}
    \item Nagios est un outil permettant de regarder à intervalles réguliers si un service est actif
    \item Lorsqu'un service ou une machine tombe, un bot IRC nous donne une alerte sur le canal (privé) \texttt{\#resel2}, pour une plus grande réactivité, et un mail est envoyé
  \end{itemize}

  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Filtrage Peer to Peer, surveillance du traffic}

  \begin{block}{}
   \begin{itemize}
    \item La passerelle Internet a un noyau compilé avec les modules ip-p2p
    \item Elle effectue un string-match sur tous les paquets, afin de filtrer certains mots qui aparaîssent dans les entêtes des paquets P2P
    \item Ce filtrage permet d'avoir de meilleures relations avec la DISI et de pouvoir avoir moins de restrictions au niveau d'Internet
    \item Un script comptabilise à la fin de la journée le traffic de chaque machine grâce à ipfm et nous prévient des téléchargements importants
  \end{itemize}

  \end{block}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
  \frametitle{Conclusion : l'avenir du ResEl}

  \begin{block}{}
   \begin{itemize}
    \item Vous !
    \item Beaucoup de projets et de services à offrir aux utilisateurs, il y a du boulot pour tout le monde :
    \begin{itemize}
	\item amélioration de la TNT ;
	\item ajout de fonctions et portabilité de ResElAdmin2 ;
	\item système de tickets utilisateurs pour faciliter la gestion des requêtes.
    \end{itemize}
    \item Amis cyborgs, à vos claviers !
  \end{itemize}

  \end{block}
\end{frame}

\end{document}
