Cette page explique comment avoir le Wifi CRANS avec un Unix ou avec Mac OS X. Il s'agit d'une méthode manuelle. Pour Mac OS X, il existe une méthode avec une interface graphique. Cf ../SousMac. Pour Linux, il y a aussi une méthode avec une interface graphique mais également une méthode "automatique" en mode texte. Cf ../SousLinux.

Avec racoon, sous Linux, Mac OS X, Mandrake, NetBSD, ...

Avant de commencer à lire cette page vous devez avoir établi une connection non securisée. Pour cela reportez vous à la page WiFi/AvoirLeWifi

Il faut installer racoon : aptitude install racoon sous Debian, urpmi ipsec-tools sous Mandrake ou emerge -av ipsec-tools sous gentoo. Choisir l'installation directe. Ensuite, on modifie /etc/racoon/psk.txt pour n'avoir qu'une seule ligne du style

138.231.148.1 clef

clef est la clef donnée par la nounou ou le cableur. Vous pouvez aussi obtenir cette clef en vous connectant sur l'intranet. Ensuite, on modifie /etc/racoon/racoon.conf ainsi :

path pre_shared_key "/etc/racoon/psk.txt";  

remote 138.231.148.1
{
        exchange_mode main;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group modp1024;
        }
        generate_policy off;
}

sainfo address 138.231.149.2 any address 0.0.0.0/0 any
{
        pfs_group modp1024;
        encryption_algorithm rijndael, blowfish, 3des;
        authentication_algorithm hmac_sha1, hmac_md5;
        compression_algorithm deflate;
}

/!\ Il faut remplacer 138.231.149.2 par votre IP qui est donnée par la nounou ou le cableur. Vous pouvez aussi obtenir cette IP en vous connectant sur l'intranet.

/!\ Racoon plante avec "failed to parse configuration file." si il n'arrive pas à charger un module crypto spécifié

Enfin, on crée /etc/ipsec.conf et on met :

#!/usr/sbin/setkey -f

spdflush;

spdadd 138.231.149.2[68] 0.0.0.0/0[67] any -P out ipsec
  esp/tunnel/138.231.149.2-138.231.148.1/use;
spdadd 0.0.0.0/0[67] 138.231.149.2[68] any -P in ipsec
  esp/tunnel/138.231.148.1-138.231.149.2/use;
spdadd 138.231.149.2 0.0.0.0/0 any -P out ipsec
  esp/tunnel/138.231.149.2-138.231.148.1/require;
spdadd 0.0.0.0/0 138.231.149.2 any -P in ipsec
  esp/tunnel/138.231.148.1-138.231.149.2/require;

/!\ Là encore, il faut remplacer 138.231.149.2 par votre IP.

/!\ Ci-dessus, toutes les occurrences de clef ont été remplacées par votre clef et que 138.231.149.2 a été remplacé par votre IP !

Ensuite, à chaque fois que l'on veut se connecter, il suffit de faire (il faut le paquet fping) :

modprobe esp4
setkey -F
setkey -P -F
dhclient eth1
setkey -f /etc/ipsec.conf
/etc/init.d/racoon restart
while ! fping -c 1 -q zamok.crans.org 2> /dev/null ; do sleep 1 ; echo -n  . ; done ; echo

Le "modprobe esp4" n'est pas necessaire si il est compilé en dur dans votre noyau. Le ping semble aider pas mal de ce côté (le temps de négocier les clefs).

Debian

C'est sans doute automatisable facilement en mettant ce qu'il faut dans /etc/network/interfaces pour Debian. Par exemple :

iface eth1 inet dhcp
  up modprobe esp4 || true
  up setkey -FD -F
  up setkey -f /etc/ipsec.conf
  up /etc/init.d/racoon restart
  up while ! fping -c 1 -q komaz.crans.org 2> /dev/null ; do sleep 1 ; echo -n  . ; done ; echo
  down setkey -FD -F

On a ensuite le réseau en faisant ifup eth1.

Mandrake

Sous Mandrake, créez un fichier /etc/sysconfig/network-scripts/ifup.d/crans avec :

#!/bin/bash

echo "debut de la connexion au Cr@ns"

if [ "$1" == wlan0 ] ; then
   modprobe esp4
   killall -9 racoon
   setkey -F
   setkey -P -F
   setkey -f /etc/ipsec.conf
   racoon -f /etc/racoon/racoon.conf
   while ! ping -c 1 -q komaz.crans.org > /dev/null 2>&1 ; do sleep 1 ; echo -n  . ; done ; echo
fi

echo "Connexion etablie"

Il faut ensuite rendre ce fichier exécutable : chmod +x /etc/sysconfig/network-scripts/ifup.d/crans. On obtient ensuite le réseau avec ifup wlan0. Éventuellement, pour faire plus propre, on peut faire un script à mettre dans ifdown.d.

Gentoo

Sous Gentoo Linux, éditez le fichier /etc/conf.d/net et ajoutez à la fin de celui-ci (en remplacant wlan0 par le nom de votre interface wifi) :

preferred_aps=("Cr@ns")

postup() {
        if [[ ${1} == wlan0 ]]; then
                setkey -F
                setkey -P -F
                setkey -f /etc/ipsec.conf
                /etc/init.d/racoon start
        fi
}

postdown() {
        if [[ ${1} == wlan0 ]]; then
                /etc/init.d/racoon stop
        fi
}

Désormais le wifi devrait s'activer lorsque vous débranchez votre cable réseau (l'équipe gentoo est en train d'intégrer ifplugd dans les scripts de déparrage).


CatégoriePagePublique