Table des matières

Plugins facultatifs

Ces plugins sont déja intégrés dans le firmware de la Fédération Wireless-fr


La liste complete des Plugins

Vous pouvez aussi installer freifunk-recommended-fr qui inclus les outils les plus utilisés.

Les codes :

comme cela

correspondent aux ligne de commande si vous souhaitez installer un plugins par la methode SSH ( en ligne de commande sur le routeur )

OLSR VIZ

Visualisation OLSR en live

ipkg install freifunk-olsr-viz

:olsrviz.jpg

Statistiques Graphiques

ipkg install zlib
ipkg install librrd1 rrdcgi1 rrdcollect rrdtool1 freifunk-statistics-fr

:statswifi.jpg:statstransferts.jpg:statssystem.jpg

Statistiques par Ip

ipkg install freifunk-gateway-fr

:accounting2.jpg:accounting.jpg

OLSR Dot Draw

Installation des plugins suplémentaires pour OLSR :

ipkg install freifunk-olsrd-libs

Le fichier de configuration chargé par OLSR se trouve ici dans ”/var/etc/olsrd.conf”

Mais il est écrasé à chaque appel de ”/rom/etc/init.d/S53olsrd” L'idée est donc de modifier ce script pour ajouter notre conf à la main :

cd /etc/init.d/
rm S53olsrd
cp /rom/etc/init.d/S53olsrd S53olsrd
vi S53olsrd

ENsuite , editez le fichier ”/etc/init.d/53olsrd” Et juste après la configuration du plugin httpstatus ( après la ligne 119 ) :

LoadPlugin "olsrd_httpinfo.so.0.1"
{
        PlParam "port"  "8080"
        PlParam "Host"  "127.0.0.1"
        $HTTPINFO_PARA
}

Rajouter

LoadPlugin "olsrd_dot_draw.so.0.3"
{
        PlParam "accept" "192.168.1.1"
}

Et le tour est joué (depuis la machine 192.168.1.1) :

telnet 192.168.1.2 2004

Bon maintenant pour le net accède au statut du réseau, voici un petit script qui transforme le tout :

<?php

/**
  * Author : Ludovic Toinel from Puteaux-Wireless
  * License : GPL
  */
  
$fp = fsockopen("192.168.1.2", 2004, $errno, $errstr, 30);

if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {

   $fetch = false;
   $data = "";
   
   while (!feof($fp)) {
   
       $buff = fgets($fp, 128);
       
       if($buff[0] == "}") break;
       if ($fetch){
       
       		$buff = trim($buff);
		$data .= preg_replace("/\"(.*?)\" \-\> \"(.*?)\"\[label=\"(.*?)\"(.*?)\]\;/", '<link quality="$3"><source>$1</source><destination>$2</destination></link>', $buff);
       		
       }
       if ($buff[0] == "{") $fetch = true;
   }
   
   fclose($fp);
   
   // Affichage des données
   header("Content-type: text/xml");
   print('<?xml version="1.0" encoding="iso-8859-1"?>' . "\n");
   print('<olsr>' . "\n");
   print($data);
   print('</olsr>' . "\n");
}

?> 

Olsr et Wifidog script

La gateway wifidog effectue les filtrages et les redirections en se basant sur les adresses ethernet (adresses MAC) des clients se connectant et s'authentifiant sur les points d'accès. Un problème se pose dans le cas suivant :

          [serveur d'auth.]
         /                          OLSR
 [Internet]------[point d'accès 1]------[point d'accès 2]-------[client 1]
                           \
                            \
                             [client 2]

le point d'accès 1 doit avoir une gateway wifidog pour pouvoir authentifier ses clients (client 2 par exemple); cependant, les paquets provenant d'un client (client 1) connecté à un point d'accès (point d'accès 2) lui-même connecté au premier point d'accès (point d'accès 1) arriveront à ce point d'accès avec comme adresse ethernet source l'adresse ethernet du point d'accès (point d'accès 2) et non celle du client (client 1). La gateway wifidog du premier point d'accès (point d'accès 1) filtrera donc ces paquets même si le client (client 1) est correctement authentifié sur son point d'accès (point d'accès 2).

Des solutions à ce problèmes sont discutées sur les sites suivants :

ipkg install ip

### Creer le script

cd /etc/
vi httpolsr.sh

### Rentrer le script suivent

#!/bin/sh
#
# Script to bypass HTTP interception for traffic forwarded by OLSR
# bms 9-Aug-2005
# Licensed under GPL
#

rm -f /tmp/get_neighbors.awk
cat > /tmp/get_neighbors.awk <<__HERE1__
BEGIN {
  while("ip route"|getline) {
      if (\$6 == "metric") {
        if (\$7 > 0) {
          printf "%s\n", \$1;
        }
    }
  }
}
__HERE1__


# On supprime la règle Iptable existante
iptables -t nat -D WiFiDog_Unknown -j OlsrNeighbors 2>&1 >/dev/null
iptables -t nat -F OlsrNeighbors 2>&1 >/dev/null
iptables -t nat -X OlsrNeighbors 2>&1 >/dev/null
iptables -t nat -N OlsrNeighbors

# On récupère la liste des noeuds OLSR
neighbors=$(awk -f /tmp/get_neighbors.awk)

# Pour chaque noeud OLSR trouvé 
for _neighbor in ${neighbors} ; do

   # On extrait son adresse MAC
   _mac=$(grep "^${_neighbor}" /proc/net/arp | awk '{print $4}')
   echo ${_mac}

   # On autorise le flux entrant HTTP provenant de l'adresse MAC
   iptables -t nat -A OlsrNeighbors -m mac --mac-source ${_mac} \
          -p tcp --dport 80 -j ACCEPT
          
done

# On active le NAT pour cette chaine
iptables -t nat -I WiFiDog_Unknown -j OlsrNeighbors

### Ajouter une valeur de temps dans cron

rm /etc/init.d/S51crond
cp /rom/etc/init.d/S51crond /etc/init.d/S51crond
vi /etc/init.d/S51crond

### Ajouter la ligne suivante entre heure et minute

*/2 * * * *     /usr/sbin/cron.biminutely

### Et enfin appeller le script dans ce fichier cron sans oublier les droits

cat /etc/httpolsr.sh >> /usr/sbin/cron.biminutely
chmod +x /usr/sbin/cron.biminutely

Proxy Transparent

http://www.pervasive-network.org/SPIP/Proxy-transparent-sur-Openwrt

Routage HTTP OLSR

Routage HTTP OLSR