\section{Introduction}
Fwlive est un ensemble de script présent sur un liveCD permettant de
faire un mini-audit de sécurité.


Il y a 3 types de scripts : 
\begin{itemize}
\item Les script qui permettent de récupérer des
informations

  \begin{itemize}
    \item{script\_interne} qui permet de faire un scan d'un réseau local
  dans lequel on branche l'ordinateur 

    \item{script\_externe} qui permet de faire un scan sur l'adresse
  externe du réseau. 

    \item{sniff} qui permet de sniffer le trafic réseau entre la
  passerelle et les machines internes au réseau.

    \item{client\_script} qui est à exécuter sur chacune des machines du réseau

  \end{itemize}
\item Le script qui permet de générer le rapport final s'appelle audit.py

\item Des petits scripts aidant à la configuration du réseau, et
  particulièrement celle du bridge pour la partie de sniff.

\end{itemize}


Chacun des scripts récupérant des données génère un fichier. Le script audit.py 
 travaillera à partir de l'ensemble de ces fichiers placés dans
un même répertoire. Il est donc à la charge de l'utilisateur de
récupérer les fichiers. En revanche il est conseillé de faire
attention aux transferts par le réseau, en utilisant des protocoles
sécurisées(https,ssh, \dots).






\section{Le fichier de configuration}
Par défaut le fichier de configuration se trouve dans \file{/etc/fwlive/config.py}

Nous allons ici juste détailler les parties du fichier de
configuration qui vont servir régulièrement.


\begin{verbatim}
#temporary directory
tmpdir="/mnt/hda3/myrep/tmp/fwl"
repository="/mnt/hda3/myrep/repository"
final_output="/mnt/hda3/myrep/output"
\end{verbatim}

Ces trois paramètres permettent définir dans quel répertoire nous
allons travailler. Comme certains fichiers peuvent être volumineux il
est conseillé d'utiliser des chemins allant sur un périphérique de
stockage de donnée (disque dur, clé USB (c'est peut être petit),\dots) 

\begin{itemize}
\item tmpdir correspond au répertoire qui sera utilisé pour ses
  fichiers temporaires

\item repository correspond au répertoire dans lequel les scripts script\_interne
  et script\_externe écriront leur fichier. Il correspond également au
  répertoire qu'utilise audit.py pour récupérer les informations fournies par
  les autres scripts.
 
\item final\_output correspond au répertoire dans lequel audit
.py va écrire le rapport final.

\end{itemize}



\begin{verbatim}
debug=False
\end{verbatim}

Le paramètre debug permet lorsqu'il est a True de faire du
\textit{cache}, si on veut faire une petite correction dans le
programme et ne pas à devoir tout refaire : cette option peut être
utile.

Ensuite il y a beaucoup de paramètres correspondant au path des
programmes utilisés, mais il y a peu de chance qu'il vous soit utile
de les modifier.

\begin{verbatim}
#file and config for nessus
hostlist4nessus=tmpdir+"/hostlist4nessus"
output4nessus=tmpdir+"/output4nessus"

host4nessus_intern="localhost"
port4nessus_intern=1241
nessus_user_intern="fwlive"
nessus_pwd_intern="fwlive"

host4nessus_extern="localhost"
port4nessus_extern=1241
nessus_user_extern="fwlive"
nessus_pwd_extern="fwlive"
\end{verbatim}
La section file for nessus permet de configurer le serveur nessus que
l'on souhaite utiliser. Il n'y a à priori pas de raison de vouloir
modifier les paramètres en interne. Par contre si on souhaite
effectuer le scan externe alors que l'on est à l'intérieur du réseau il
est indispensable d'utiliser un serveur qui se trouve en dehors du réseau.

\begin{verbatim}
#extention of file considered as document
document_extention=["doc","pdf","sxw","sxc","xls","zip","rar"]
\end{verbatim}
Les extentions sont utilisées lors de la génération du rapport. Cela
permet de \textit{``customizer''} un peu le rapport suivant la situation...



\section{Script interne}
On va devoir utiliser ce script pour chaque réseau interne. Nous
allons vous présenter la procédure à appliquer dans chacun de ces
réseaux :


On doit d'abord brancher son ordinateur dans le réseau et le configurer
pour qu'il puisse communiquer au sein du réseau sur la première
interface donnée par ifconfig. Pour cela on peut se servir de la configuration par défaut en
dhcp ou attribuer une adresse ip à la main avec la commande
\cmd{ifconfig eth0 192.168.167.42 up} où 192.168.167.42 est l'ip que
je veux avoir pour être au sein du réseau.

Ensuite on vérifie la configuration du fichier config.py, et on le modifie
si nécessaire.

Ensuite il suffit de taper la commande script\_interne.py.

Le fichier à récupérer commence par intern\_scan (modifiable dans le
fichier de configuration).


\section{Script client}
\subsection{Système Windows}
Pour l'instant les tests ont été effectués sur Windows 2000 et Windows
XP avec des locales francophones.


On doit d'abord se  logguer en administrateur. Puis  dézipper le fichier
audit\_win.zip\footnote{On peut également récupérer directement la
  version non compressée} qu'on peut récupérer sur le liveCD dans /var/www/ou
alors sur le serveur web du liveCD qu'il faut alors initialiser avec la
commande \cmd{/etc/init.d/apache start}.

On va alors dans le répertoire win : et on exécute le fichier
audit\_win.bat. Il est conseillé de le lancer via la ligne de commande, car
cela permet de voir si il y a des erreurs.

Si vous êtes en mode domaine vous aurez probablement un message
d'erreur que vous pourrez contournez en lançant le script
audit\_win\_aux.bat.

Le fichier à récupérer commence par sc\_ 

Pour la récupération des données, il est possible d'utiliser un serveur
ftp sur le liveCD que l'on lance avec la commande
\cmd{/etc/init.d/proftpd start}. Ensuite il faut penser après à copier
les fichiers dans le bon répertoire (au moins sur le disque dur du liveCD).



Une solution plus pratique consiste à utiliser une clé usb sur laquel
on place le script déjà décompressé. Il sera donc exécuter sur la clé Usb et
le fichier s'y trouvera déjà pour le transport.           




\subsection{Système Unix}
Pour l'instant il n'est malheureusement pas encore utilisable.


\section{Script sniff}
Il s'agit de la partie la plus délicate.
Il faut lancer le livecd sur un ordinateur possédant 2 cartes réseaux,
et se connecter au net. Ensuite à l'aide des commandes \cmd{ntpdate}
et \cmd{tzconfig} mettre à l'heure l'ordinateur. 





Ensuite il faut configurer le bridge grâce au script conçu à cet effet
que l'on lance grâce à la commande \cmd{bridge\_conf.sh}. On notera
qu'il peut s'avérer indispensable de modifier les variables suivantes \verb+device0="eth0"+
et \verb+device1="eth1"+ suivant les interfaces disponibles.



On peut donc maintenant brancher le plus rapidement possible la machine entre la
passerelle et le switch. En faisant attention de prendre des câbles
croisés si nécessaire. On vérifie ensuite à partir d'une machine du réseau qu'elle a
toujours accès au réseau.

On peut donc maintenant lancer le script permettant lancer le sniff
via la commande \cmd{sniff\_begin.sh}
Il faut donc maintenant faire tourner le script pendant plus de 24h.


Une fois terminé il vous suffit de faire tourner le script
\cmd{sniff\_end.sh}.  Ce fichier s'appelle
sniff.*.tgz où * est un entier. 

Vous pouvez maintenant rebrancher le réseau comme avant. Maintenant si vous
voulez obtenir le réseau sans rebooter vous pouvez utiliser la
commande \cmd{bridge\_del.sh} pour supprimer le bridge. 




\section{Script externe}
On cherche ici à scanner l'ip externe du réseau. Soit dans la
configuration on utilise un serveur nessus extérieur au réseau, et on
peut donc exécuter ce script depuis n'importe quel endroit. Soit on
utilise le serveur du Livecd(Configuration par défaut), mais on doit
se brancher à l'extérieur du réseau.

Une fois configuré on peut donc lancer le script par la commande \cmd{script\_extern.py}.
Le script va vous demander une adresse ip, qu'il vous suffira de
taper. Si vous voulez scanner plusieurs ip, il vous suffira de les
taper les unes après les autres. Si vous n'avez plus d'autre ip à
ajouter : faites juste un enter.


\section{Audit}
Une fois que vous avez récupéré tous les fichiers contenant les
informations, dans le repository. Il suffit d'exécuter la commande
\cmd{audit.py}.

Dans le répertoire final\_output se trouvera le rapport rapport.tex
avec un sous répertoire latex contenant certains fichiers nécessaires à
la compilation du latex. 
 
Pour compiler le latex, il suffit de se placer dans le répertoire
final\_output et de taper \cmd{./compile.sh}. Il y aura donc en sortie
un fichier rapport.ps\footnote{pour obtenir un pdf : ps2pdf rapport.ps}.


\
