projet informatique 1 année csc 3502 système d ...afifi/index.html/rapport_projet_wifi.pdf ·...

15

Upload: others

Post on 24-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

Projet informatique 1ère année

CSC 3502

Système d'avertissement WIFI pour véhicules

Balde Sarafou

El Yaagoubi Houssam

Maire Florian

Yehouenou Valerien

Coordinateur: Mr AFIFI Hossam

3 juin 2008

1

Page 2: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

Table des matières

1 Introduction 2

2 Cahier des charges 2

3 Spéci�cations 2

4 Conception 34.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4.1.1 Présentation de HostAP . . . . . . . . . . . . . . . . 34.1.2 Carte WIFI . . . . . . . . . . . . . . . . . . . . . . . . 34.1.3 Choix des systèmes d'exploitation . . . . . . . . . . . . 3

4.2 Installation et con�guration de HostAP sous SUSE . . . . . 44.3 Scanage automatique . . . . . . . . . . . . . . . . . . . . . . . 6

4.3.1 Script shell . . . . . . . . . . . . . . . . . . . . . . . . 64.3.2 Script CGI . . . . . . . . . . . . . . . . . . . . . . . . . 74.3.3 Installation et con�guration d'Apache . . . . . . . . . 8

5 Tests 10

6 Conclusion 12

1

Page 3: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

1 Introduction

Ce rapport est fourni dans le cadre du projet de CSC3502 dispensé à Te-lecom SudParis, le sujet abordé est la mise en place d'un Système d'aver-tissement WIFI pour véhicules.

2 Cahier des charges

L' objectif du projet est de mettre en place une application permettantla transmission de données à un véhicule par WIFI.

Tout d'abord le programme devra fonctionner entre deux ordinateurs,un ordinateur de bureau transformé en point d'accès grâce à des outils quenous présenterons dans la suite et un ordinateur portable. L'objectif sera detransmettre une trame entre les deux appareils. Dans un second temps nousapporterons une amélioration au dispositif pour le généraliser aux véhicules,en utilisant un ordinateur portable comme poste client.

L'application sera basée sur HostAP, une application open source etfonctionnera sous LINUX. En plus du guide utilisateur, les �chiers sourceset les exécutables devront être fournis.

Par ailleurs un site internet est mis en place à l'adresse suivante

www-tp.int-evry.fr/� balde_ma .

3 Spéci�cations

Pour atteindre ces di�érents objectifs nous avons fait des choix relatifsau système d'exploitation, c'est à dire à la distribution Linux que l'on vautiliser car la con�guration de HostAP est plus ou moins souple selon ladistribution, nous reviendrons sur ces choix par la suite.

Le programme devra donc, comme spéci�é dans le cahier des charges,envoyer des données via le WIFI d'une machine à l'autre. Il faudra donc mo-di�er le code source de HostAP pour permettre cela, car il est initialementprévu pour transformer une machine en point d'accès sans �l. La bonne com-préhension du code et le repérage minutieux de la partie du code à modi�erest donc primordial.

2

Page 4: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

4 Conception

4.1 Préliminaires

Dans cette partie nous présentons les di�érents outils utilisés lors de leréalisation du projet

4.1.1 Présentation de HostAP

HostAP est l'un des pilotes de périphériques IEEE 802,11 les plus po-pulaires pour LINUX. Il fonctionne avec les cartes utilisant le chipset Prism2/2.5/3 (mis au point par Intersil Corporation qui est un leader dans laconception et la fabrication de semi-conducteurs analogiques hautes per-formances) et béné�cie de l'appui HostAP mode, qui permet à une carteWLAN d'exécuter toutes les fonctions d'un point d'accès.

802,11 IEEE est un ensemble de normes de réseau local sans �l (WLAN)de communication par ordinateur, mis au point par l'IEEE LAN / MANStandards Committee (IEEE 802) dans la bande des 5 GHz et 2,4 GHzpublic des bandes de spectre.

Nous avons besoin de ce pilote pour que notre machine Linux fonctionnecomme un point d'accès, car il inclut le support de la fonctionnalité de gestiondont nous avons besoin.

4.1.2 Carte WIFI

La transformation d'un PC en borne d'accès sans �l nécessite a priori laprésence d'une carte sans �l. Nous avons utilisé une carte sans �l Lynksisgracieusement prêtée par M. AFIFI.

4.1.3 Choix des systèmes d'exploitation

Au départ pour des raisons d'habitude, nous voulions travailler sous la dis-tribution LINUX, Ubuntu pour les deux machines (point d'accès et client).En e�et la majorité des membres du groupe du projet avait l'habitude detravailler soit sur Debian soit sur Ubuntu qui sont deux distributions assezproches, (Ubuntu étant une version "allégée" de Debian). Nous avons trèsvite été confrontés à d'importantes di�cultés lors de l'installation de Hos-tAP sur cette distribution. A noter que seul le poste point d'accès a besoinde HostAP. Ne se trouvant pas par défaut sur Ubuntu, il a fallu téléchar-ger HostAP et le compiler. Cette compilation nécessite plusieurs modulesdont OpenSSL. L'installation de OpenSSL sous Ubuntu s'est révélée as-

3

Page 5: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

sez délicate pour des problèmes de version et de dépendances. Au bout deplusieurs tentatives infructueuses, nous avons abandonné la distribution.

Nous avons alors opté pour la distribution SUSE, qui a l'avantage deproposer HostAP par défaut à son installation. Notons que le poste clientest lui toujours équipé Ubuntu.

4.2 Installation et con�guration deHostAP sous SUSE

Après avoir télécharger SUSE sur son site o�ciel, l'installation de Hos-tAP s'e�ectue simplement en le sélectionnant dans les logiciels en modeexpert. Le �chier le plus important est le �chier de con�guration de Hos-tAP, hostapd.conf qui se trouve dans le répertoire /etc et qui va nouspermettre de modi�er les paramètres voulus. Ce �chier contient plusieurslignes dont les plus importantes sont :

# Hostap Con�guration �le# Periphérique sans �l, dans notre cas c'est wlan0interface=wlan0

# Choix du driver pour la carte Wi�driver=hostap

# Debugging : 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps,..debug=2

# Dump �le for state information (on SIGUSR1)dump_�le=/tmp/hostapd.dump

# Utilisateurs autorisés à exécuter hostap, 0 pour rootctrl_interface_group=0

# Nom du réseau contenu dans la trame que l'on souhaite a�cher# dans la page web d'informations.

ssid=Info Accidents sur A5 4km de bc

# Version supportée, IEEE 802.11bhw_mode=b

# Channel number (IEEE 802.11)

4

Page 6: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

channel=6

Pour lancer HostAP, on con�gure la carte WIFI en mode point d'accès(Master) avec la commande

iwcon�g wlan0 mode Master, puis on lance HostAP avec la commande :

hostapd -dd /etc/hostapd.conf

A notre première tentative, l'exécution de la commande précédente a pro-duit une erreur. On a cru alors à un problème de driver sur la carte. Nousavons donc testé plusieurs solutions alternatives notamment madwifi sansrésultats. On y a perdu beaucoup de temps et �nalement la solution est venueen changeant la carte Lynksis et en optant pour une carte PCMCIA avecun adaptateur qui a très bien fonctionné avec le driver par défaut de Hos-tAP. Un test avec ESSID="Info bouchons A5 4 km bc" nous permetla visualisation ci-dessous au lancement dans un terminal

Fig. 1 � Lancement de HostAP

On constate que HostAP est lancé avec notre ESSID.

5

Page 7: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

4.3 Scanage automatique

Le deuxième partie consiste à mettre en place les di�érents outils pourle poste "client" tournant sous Ubuntu. Nous avons tout d'abord écrit unscript shell de scanage automatique de réseaux wi� que l'on a intégré ensuitedans un serveur apache a�n de le faire exécuter sur un navigateur web, cequi est une solution plus ergonomique.

4.3.1 Script shell

Le sript à mettre en place doit permettre le scanage automatique desESSID à sa disposition et ceci à intervalle régulier que l'on �xera. Le srciptest basé sur la commande Unix iwlist qui a�che les di�érentes caractéris-tiques des réseaux sans �ls disponibles (ESSID, qualité, fréquence, mode ...).Comme nous nous intéressons uniquement aux ESSID, nous avons ajouté desoptions permettant de ne retenir que les ESSID et de ne les a�cher qu'uneseule fois. Voici le script obténu :

# !bin/sh

/sbin/iwlist wlan0 scan | grep ESSID | sort | uniqUne petite explication s'impose, wlan0 représente la carte wi�, scan per-

met de scanner les réseaux disponibles et les autres arguments permettentsimplement de sélectionner ce que l'on veut a�cher. Voici ce que donne l'exé-cution du script (Figure 2) :

Fig. 2 � Exécution du script

6

Page 8: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

4.3.2 Script CGI

La solution pour utiliser un navigateur pour le scanage a été la mise enplace d'un script CGI (script.cgi), ce script a été écrit en langage C. Au dé-part, pour des raisons (toujours) inexpliquées, le script s'exécutait une foissur deux. Pour résoudre ce problème, nous avons �nalement opté pour unscript shell, qui o�re une meilleure �abilité. Voici ci-dessous l'ossature duscript.

1. # !/bin/sh

2. info=`/sbin/iwlist ath0 scan | grep Info | cut -d : -f2 `

3. echo "Content-type : text/html"

4. echo "<METAHTTP-EQUIV="Refresh" CONTENT="1 ; URL=info.cgi">"

5. echo "<TITLE><Informations</TITLE></HEAD>

6. echo "<BODY>"

7. echo "<CENTER>"

8. echo "<H2>LES INFORMATIONS DU MOMENT</H2>"

9. $info

10. echo "</CENTER>"

11. echo "</BODY</HTML>"La variable info récupère les di�érents réseaux. L'objectif étant de mettre

en place un système d'avertissement, nous avons décidé de limiter les ESSIDa�chés, pour cela, toute information devant être envoyée par le poste trans-formé en point d'accès commencera par "Info", ce qui évitera d'a�cherd'autres réseaux ne nous intéressant pas. Pour a�cher le résultat dans unnavigateur, nous sommes obligé d'utiliser le langage HTML, d'où l'écriturede balises traditionnelles en sortie. Le navigateur n'aura donc plus qu'à in-terpréter et a�cher le résultat. Pour actualiser les données, le programmedoit faire un scanage régulier, c'est pourquoi nous avons introduit un tem-porisateur. Nous avions au début opté pour la commande en C sleep, mais

7

Page 9: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

des problèmes dans l'exécution du script dans le navigateur se produisaientfréquemment. En e�et, ce dernier ne pouvait a�cher le script que quand ilétait terminé (ici nous n'étions pas en interaction). Notre programme s'exé-cutait très bien sur le shell, mais il entraînait une "boucle in�nie" dans lenavigateur. Nous avons résolu le problème en rafraîchissant la page au boutd'un temps t que l'on peut modi�er à chaque fois que l'on relance le script.Ceci explique la présence de la balise < META > avec l'option "refresh"dans l'en-tête. Ici la page est rafraîchie toutes les secondes.

4.3.3 Installation et con�guration d'Apache

L'installation d'Apache sous Ubuntu se fait comme n'importe quelautre programme, il su�t d'une connexion internet et d'un �chier de "mi-roirs" bien con�guré, ensuite il faut tout simplement exécuter la commande :

apt-get install apache

Plusieurs �chiers sont mis à disposition lors de l'installation, le plus im-portant étant le �chier de con�guration d'Apache. Pour véri�er que l'ins-tallation d'Apache s'est bien déroulée, on le lance avec /etc/init.d/apachestart (/etc/init.d/apache stop pour arrêter le serveur Apache), on lance unnavigateur et on entre localhost dans la barre d'adresses. "It works" devraitnormalement s'a�cher.

Pour nous permettre d'exécuter nos di�érents scripts, il faut con�gurerApache pour qu'il exécute les scripts CGI. Toutes les modi�cations à ef-fectuer se situent dans le script de con�guration d'Apache httpd.conf, ilfaut repérer dans ce �chier les lignes suivantes :

<IfModule mod_alias.c>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory /usr/lib/cgi-bin/>AllowOverride NoneOptions ExecCGI -MultiViews +SymLinksIfOwnerMatchOrder allow,denyAllow from all</Directory>

</IfModule>

8

Page 10: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

/usr/lib/cgi-bin est le répertoire dans lequel il faut mettre les scripts àexécuter, après cette opération , il faut relancer le serveur,

/etc/init.d/apache restartUne fois tout ceci mis en place, on peut lancer HostAP et le navigateur

avec l'adresse du script. Sur la �gure 3 on présente ce que l'on observe depuisle poste client

Fig. 3 � Poste client

9

Page 11: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

5 Tests

Une fois HostAPd compilé et fonctionnant, nous avons voulu tester l'ef-�cacité du système d'informations pour véhicule. Nous avons également uti-lisé, pour comparer, un point d'accès � traditionnel �, un point d'accès Cisco.Cette borne est simplement reliée au réseau par un câble RJ45. Nous l'avonscon�gurée de façon à ce que son ESSID soit ProjetWi�. Le but du test estde comparer l'e�cacité de ces deux moyens, une carte wi� utilisée en pointd'accès grâce à HostAPdet la borne Cisco, dans le but d'émettre le signalau véhicule.

Nous avions fait des tests � statiques � en présence de M. A�� dansle bâtiment D et le point d'accès Cisco tout comme la carte Wi� avaientémis des trames reçues par le poste mobile et a�chées dans le navigateuravec des durées aléatoirement plus ou moins longues. Notre programme et leserveur Apache étant installés sur un ordinateur portable, nous avons pu nousdéplacer dans les couloirs pour évaluer la portée des deux signaux. Ainsi, ense plaçant dans l'ascenseur, nous ne captions jamais les trames. A cause desnombreuses interférences entre les champs électromagnétiques, il était délicatde tirer un premier bilan de ces tests in situ.

Le jeudi 22 mai nous avons procédé à la phase de tests en grandeur nature.Nous avons emmené l'ordinateur sur lequel nous avions installé HostAPddans une chambre du 1ère étage du U2 donnant sur la rue Charles Fourier.Nous avons également installé la borne d'accès Cisco sur la fenêtre de lachambre. Le ESSID donné pour le point d'accès crée par HostAPd était �Info Accidents sur A2 5km de bc �. Nous avons dû composer avec les impé-ratifs du ESSID qui ne doit pas contenir plus de 32 caractères. Un membredu groupe a pris l'ordinateur portable avec lui dans sa voiture pour testerl'e�cacité du programme quand les trames proviennent alternativement dela carte wi� ou de la borne Cisco.

Avec la borne Cisco le ESSID ProjetWi� a rapidement été détecté. Lebut n'étant pas de le détecter mais de savoir si une voiture roulant à allurenormale pouvait l'observer, nous sommes partis hors de portée du réseau (del'autre côté du boulevard des Coquibus). Cinq minutes ont dû s'écouler avantde dé�nitivement perdre la trace du réseau ProjetWi�. Nous sommes doncrepartis en direction de l'INT de façon à voir à partir de quel endroit le réseauProjetWi� était détectable. La chambre, où le matériel était installée, étaitune des premières à gauche en arrivant à hauteur de la Maisel. En roulantà allure réduite la trame ProjetWi� était détectée la première fois à unetrentaine de mètres après avoir passé la borne Cisco.

Nous avons ensuite voulu tester le point d'accès crée par la carte Wi�.Cette fois-ci notre logiciel détectait bien le réseau Info Accidents sur A2

10

Page 12: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

5km de bc mais uniquement au pied de l'immeuble. Nous avons branché uneantenne en façade sur le port où nous avions connecté la carte Wi�, maiscela n'était pas su�sant pour augmenter sensiblement la portée du signal.

Dans la �gure 4, nous avons fait une carte montrant le lieu de nos tests.

Fig. 4 � Schéma

Et sur la �gure 5 on peut voir des photos illustrant la phase de test. Nouspouvons lire le nom du réseau ProjetWi� en troisième, partant de la gauche.

11

Page 13: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

Fig. 5 � Test

Pour conclure cette section consacrée à la phase de tests, nous avons étéun peu déçus de la porté du point d'accès crée par HostAPd.

6 Conclusion

La portée du réseau crée par la borne Cisco est satisfaisante, mais enrevanche le temps nécessaire à la carte de Wi� pour détecter un réseau esttrop grand (parfois jusqu'à une minute, est-ce dû à un problème de maté-riel ?) pour envisager une application telle que le service d'informations pourvéhicules. En e�et pour être utilisable il faut que le message soit transmisde façon quasi-instantanée. Toutefois, dès que le réseau � Info Accidents

12

Page 14: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

sur A2 5km de bc � est trouvé, si depuis l'ordinateur gérant HostAP, onchange le ESSID du réseau dans hostapd.conf, par exemple en � Itinéraireconseillé : ... � , la transmission du nom du réseau à l'ordinateur portableest presque immédiate, de l'ordre de quelques secondes, ce qui rend alorspossible le dialogue entre véhicules. A terme, si on suppose que tous les vé-hicules sont équipés d'ordinateurs de bord type GPS, une application de cetype est envisageable, peut-être a-t-elle même été déjà mise en place sur cer-tains prototypes. On pourrait alors installer une carte wi� avec un logicieltype HostAP et notre script cgi sur chaque véhicule. L'automobile fonc-tionne alors en qualité de clients et serveurs à la fois. Cependant il reste àoptimiser le temps de détection de la trame ainsi que la maîtrise de certainsphénomènes perturbateurs tels que l'e�et Doppler par exemple.

13

Page 15: Projet informatique 1 année CSC 3502 Système d ...afifi/index.html/rapport_projet_wifi.pdf · portant étant le chier de con guration d' Apache . Pour véri er que l'ins-tallation

Références

[1] www.suse.org

[2] www.lea-linux.org

[3] http :hostap.epitest.�

[4] http :www.apache.org

[5] http :www.wikipedia.org

14