# [wifi] en mode wpa aes (avec mot de passe)

## ablyes

salut les pros du linux.

je viens de me prendre le routeur wrt50gs. pr l'instant je ne m'en pleins pas ^^

sous windows j'ai activé le wpa aes avec un mot de passe donc.

j'ai activé le dhcp. j'ai caché le essid du reseau (pas de diffusion) et activé aussi le filtrage par adresse mac.

sous linux ça ne marche pas !!

alors voilà ce que je tape :

```
iwconfig wlan0 mode ad-hoc

iwconfig wlan0 essid "lyes"

ifconfig wlan0 up

dhclient wlan0 -> mais ça ne donne rien :( 
```

j'ai essayé aussi : 

```
iwconfig wlan0 key s:mon_password
```

il me donne un message d'erreur. mon mot de passe sous windows c'est un truc genre "klhsdfldhskldshg".

alors que le seul truc que j'ai essayé qui marche c'est 0038-3773-66

mais je fais comment pr configurer mon routeur ? et pis je veux pas configurer mon routeur en fonction du linux.

bref, a vous les pros ! merci.Last edited by ablyes on Wed Mar 30, 2005 10:03 pm; edited 1 time in total

----------

## Celeborn

Hello,

je suis loin d'être un "pro" comme tu dis... j'espère que tu m'en voudras pas de faire qd mm qqs suggestions (qui peut être ne te serviront à rien, mais bon...)

1° *ablyes wrote:*   

> iwconfig wlan0 mode ad-hoc

 perso pour une connexion vers un routeur j'aurais plutot mis un mode "managed", en tout cas c'est ce que je fais avec le mien (mais ptet que ça dépend de la config du routeur?...)

2° *ablyes wrote:*   

> iwconfig wlan0 essid "lyes"
> 
> ifconfig wlan0 up

 je suis pas sûr que le ifconfig soit nécessaire mais ça coute rien de le faire...

3° *ablyes wrote:*   

> dhclient wlan0

 moi je fais 

```
dhcpcd wlan0
```

4° et pour la clé (wep chez moi) je fais (avant le dhcpcd) : 

```
iwconfig wlan0 key restricted 1234-5678-90
```

EDIT : au temps pour moi, si la clef est au format ascii, il faut effectivement faire 

```
iwconfig wlan0 key restricted s:abcdefghijkl
```

voilà... en espérant que c'est pas que des âneries qui correspondent à ma config perso et que ça pourra t'aider un peu  :Wink: 

----------

## ablyes

1. Quand je mets en mode managed et que je tape 

```
iwconfig wlan0 essid "lyes"
```

 il ne se passe tt simplement rien. j'ai essayé avec le essid voyant a partir du routeur, mais ça n'a rien donné.

donc je suis passé en ad-hoc pr que ça marche !

un ami fait la meme chose pr se connecter a une borne wifi dans un hotel sans crypage, il m'a dit que en mode managed ça marche pas. chelou.

2. je tape 

```
ifconfig wlan0 up
```

 juste pr activer la carte, parceque si non ifconfig me donne que le loop.

3. j'essairai le dhcpd

4. pr le truc avec restricted, c' du wep. ça me fait un peu chier. je veux mon wpa aes ! grrr

si non sous windows je peux mettre en caractères ascii, est ce que t'as essayé de rentrer apres ces carac sous linux ?Last edited by ablyes on Wed Mar 30, 2005 10:04 pm; edited 1 time in total

----------

## LostControl

Salut,

Je n'utilise ni WEP ni WPA mais je pense ne pas prendre trop de risque en te proposant de regarder du côté de wpa_supplicant.

Sinon, Celeborn a raison, tu ne dois pas être en mode "ad-hoc" mais "managed". Jette aussi un coup d'oeil ici --> http://lea-linux.org/hardware/wifi.html

A+

----------

## ablyes

Je viens de faire un essai, en mode sans cryptage, et essid diffusé, ça marche pas !!

 :Shocked: 

----------

## Celeborn

 *ablyes wrote:*   

> 4. pr le truc avec restricted, c' du wep. ça me fait un peu chier. je veux mon wpa aes ! grrr
> 
> si non sous windows je peux mettre en caractères ascii, est ce que t'as essayé de rentrer apres ces carac sous linux ?

 J'ai toujours eu une clé en hexa donc j'ai jamais testé la commande avec " s:password" ... et en ce moment j'ai pas de routeur sous la main pour tester donc je peux pas te dire...

 *ablyes wrote:*   

> Je viens de faire un essai, en mode sans cryptage, et essid diffusé, ça marche pas !! 

  Chez moi avec une clé wep et essid diffusé je me contente de faire 

```
iwconfig wlan0 key restricted 1234-5678-90

dhcpcd wlan0
```

 Je ne précise pas le mode, ni les fréquences / channel / etc... ni même le essid (vu qu'il n'y a qu'un point d'accès détecté lorsque je suis chez moi, il le prend par défaut)

Sinon, lorsque tu as le essid diffusé, est ce que tu repères bien le point d'accès avec un 

```
iwlist wlan0 scanning
```

 ?

----------

## ablyes

avec iwlist wlan0 scan je detecte bien mon reseau, et le reseau du voisin protégé ^^

maintenant que j'ai descativé le cryptage, mis le essid en déffusé. j'arrive donc a me voir avec la commande la haut. j'ai mis en mode managed  :Smile:  et j'ai mis le bon essid.

maintenant qd je tape dhclient wlan0 il me dit qu'il ne trouve rien pr wlan0 dans /sbin/dhclient-script.

je vois dans le tas, qu'il arrive bien a contacter mon routeur d'adreese 192.168.1.1

help

----------

## bobbix

 *ablyes wrote:*   

> avec iwlist wlan0 scan je detecte bien mon reseau, et le reseau du voisin protégé ^^
> 
> maintenant que j'ai descativé le cryptage, mis le essid en déffusé. j'arrive donc a me voir avec la commande la haut. j'ai mis en mode managed  et j'ai mis le bon essid.
> 
> maintenant qd je tape dhclient wlan0 il me dit qu'il ne trouve rien pr wlan0 dans /sbin/dhclient-script.
> ...

 

pourrais-tu nous fournir le résultat d'ifconfig ainsi que celui d'iwconfig? 

Bobbix

----------

## ablyes

j'aime bien ce forum, jamais de solution et de gros copiers coller de bourrin.

voilà le résultat

```

#iwconfig

wlan0     IEEE 802.11g  ESSID:"petit-L"  

          Mode:Managed  Frequency:2.442GHz  Access Point: 00:12:17:DF:38:DB  

          Bit Rate:125Mb/s   Tx-Power:25 dBm   

          RTS thr:2347 B   Fragment thr:2346 B   

          Encryption key:off

          Power Management:off

          Link Quality:100/100  Signal level:-39 dBm  Noise level:-256 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:9447   Missed beacon:0

```

```

#ifconfig

lo        Lien encap:Boucle locale  

          inet adr:127.0.0.1  Masque:255.0.0.0

          adr inet6: ::1/128 Scope:Hôte

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:29 errors:0 dropped:0 overruns:0 frame:0

          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:0 

          RX bytes:2070 (2.0 Kb)  TX bytes:2070 (2.0 Kb)

wlan0     Lien encap:Ethernet  HWaddr 00:0F:66:C6:A9:46  

          adr inet6: fe80::20f:66ff:fec6:a946/64 Scope:Lien

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:89 errors:0 dropped:0 overruns:0 frame:0

          TX packets:31 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:1000 

          RX bytes:10631 (10.3 Kb)  TX bytes:7170 (7.0 Kb)

          Mémoire:20800000-20801fff 

```

----------

## ablyes

Je précise que là j'ai réussi à mettre le ssid en mode managed.

Le problème est que je n'ai pas d'adresse ip avec la commande 

```

#dhclient wlan0

DHCPACK from 192.168.1.1

DHCPREQUEST on wlan0 to 255.255.255.255 port 67

DHCPACK from 192.168.1.1

/sbin/dhclient-script: configuration for wlan0 not found.

dhclient.c(2045) : null pointer

```

cat du script donne 

```
#!/bin/bash

# Network Interface Configuration System

#

# Based on:

#   dhclient-script for Linux. Dan Halbert, March, 1997.

#   Updated for Linux 2.[12] by Brian J. Murrell, January 1999.

#   Modified for Mandrakelinux 1999-2004

# Notes:

# 0. This script is based on the netbsd script supplied with dhcp-970306.

# 1. ifconfig down apparently deletes all relevant routes and flushes

# the arp cache, so this doesn't need to be done explicitly.

# 2. The alias address handling here has not been tested AT ALL.

# I'm just going by the doc of modern Linux ip aliasing, which uses

# notations like eth0:0, eth0:1, for each alias.

# 3. I have to calculate the network address, and calculate the broadcast

# address if it is not supplied. This might be much more easily done

# by the dhclient C code, and passed on.

function make_resolv_conf() {

    rm -f /etc/resolv.conf

    if [ -n "$new_domain_name" ]; then

       echo search $new_domain_name > /etc/resolv.conf

    fi

    if [ -n "$new_domain_name_servers" ]; then

       for nameserver in $new_domain_name_servers; do

           echo nameserver $nameserver >> /etc/resolv.conf

       done

    fi

    [[ -x /sbin/update-resolvrdv ]] && /sbin/update-resolvrdv

 }

# Must be used on exit.   Invokes the local dhcp client exit hooks, if any.

exit_with_hooks() {

  exit_status=$1

  if [ -f /etc/dhclient-exit-hooks ]; then

    . /etc/dhclient-exit-hooks

  fi

# probably should do something with exit status of the local script

  exit $exit_status

}

# Invoke the local dhcp client enter hooks, if they exist.

if [ -f /etc/dhclient-enter-hooks ]; then

  exit_status=0

  . /etc/dhclient-enter-hooks

  # allow the local script to abort processing of this state

  # local script must set exit_status variable to nonzero.

  if [ $exit_status -ne 0 ]; then

    exit $exit_status

  fi

fi

# Import Mandrakelinux configuration

cd /etc/sysconfig/network-scripts;

. /etc/sysconfig/network-scripts/network-functions

. /etc/rc.d/init.d/functions

[ -f ../network ] && . ../network

[ -f ../networking/network ] && . ../networking/network

CONFIG=$interface

need_config ${CONFIG}

[ -f "${CONFIG}" ] || {

    echo $"$0: configuration for $interface not found." >&2

    exit_with_hooks 1

}   

source_config

release=`uname -r`

release=`expr $release : '\(.*\)\..*'`

relminor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`

relmajor=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`

if [ x$new_broadcast_address != x ]; then

  new_broadcast_arg="broadcast $new_broadcast_address"

fi

if [ x$old_broadcast_address != x ]; then

  old_broadcast_arg="broadcast $old_broadcast_address"

fi

if [ x$new_subnet_mask != x ]; then

  new_subnet_arg="netmask $new_subnet_mask"

fi

if [ x$old_subnet_mask != x ]; then

  old_subnet_arg="netmask $old_subnet_mask"

fi

if [ x$alias_subnet_mask != x ]; then

  alias_subnet_arg="netmask $alias_subnet_mask"

fi

if [ x$reason = xMEDIUM ]; then

  # Linux doesn't do mediums (ok, ok, media).

  exit_with_hooks 0

fi

if [ x$reason = xPREINIT ]; then

  if [ x$alias_ip_address != x ]; then

    # Bring down alias interface. Its routes will disappear too.

    ifconfig $interface:0- inet 0

  fi

  if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] )

   then

    ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \

      broadcast 255.255.255.255 up

    # Add route to make broadcast work. Do not omit netmask.

    route add default dev $interface netmask 0.0.0.0

  else

    ifconfig $interface 0 up

  fi

  # We need to give the kernel some time to get the interface up.

  sleep 1

  exit_with_hooks 0

fi

if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then

  exit_with_hooks 0

fi

  

if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \

   [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then

    

  if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \

      [ x$alias_ip_address != x$old_ip_address ]; then

    # Possible new alias. Remove old alias.

    ifconfig $interface:0- inet 0

  fi

  if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then

    # IP address changed. Bringing down the interface will delete all routes,

    # and clear the ARP cache.

    ifconfig $interface inet 0 down

  fi

  if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \

     [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then

    ifconfig $interface inet $new_ip_address $new_subnet_arg \

                     $new_broadcast_arg

    # Add a network route to the computed network address.

    if [ $relmajor -lt 2 ] || \

      ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then

      route add -net $new_network_number $new_subnet_arg dev $interface

    fi

    for router in $new_routers; do

      route add default gw $router $interface

    done

  fi

  if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; then

      ifconfig $interface:0- inet 0

      ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg

      route add -host $alias_ip_address $interface:0

  fi

  if [ "${PEERDNS}" != "no" ]; then 

      make_resolv_conf

  fi

  if [ "$NEEDHOSTNAME" != no ]; then

      if [ -z "$new_host_name" ]; then

     eval `/bin/ipcalc --silent --hostname $new_ip_address`

     new_host_name=$HOSTNAME

      fi

      if [ -n "$new_host_name" ]; then

     current_hostname=`hostname`

     

     if [ "$new_host_name" != "$current_hostname" ]; then

         set_hostname $new_host_name

     fi

      fi

  fi

  

  exit_with_hooks 0

fi

if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \

   || [ x$reason = xSTOP ]; then

  if [ x$alias_ip_address != x ]; then

    # Turn off alias interface.

    ifconfig $interface:0- inet 0

  fi

  if [ x$old_ip_address != x ]; then

    # Shut down interface, which will delete routes and clear arp cache.

    ifconfig $interface inet 0 down

  fi

  if [ x$alias_ip_address != x ]; then

    ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg

    route add -host $alias_ip_address $interface:0

  fi

  exit_with_hooks 0

fi

if [ x$reason = xTIMEOUT ]; then

  if [ x$alias_ip_address != x ]; then

      ifconfig $interface:0- inet 0

  fi

  ifconfig $interface inet $new_ip_address $new_subnet_arg \

               $new_broadcast_arg

  set $new_routers

  if ping -q -c 1 -w 10 $1 > /dev/null 2>&1; then

      if [ x$new_ip_address != x$alias_ip_address ] && \

     [ x$alias_ip_address != x ]; then

      ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg

      route add -host $alias_ip_address dev $interface:0

      fi

      if [ $relmajor -lt 2 ] || \

      ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then

      route add -net $new_network_number

      fi

      for router in $new_routers; do

     route add default gw $router $interface

      done

      if [ "${PEERDNS}" != "no" ]; then 

     make_resolv_conf

      fi

      exit_with_hooks 0

  fi

  ifconfig $interface inet 0 down

  exit_with_hooks 1

fi

exit_with_hooks 0

```

----------

## sireyessire

moi je dis ça en passant mais tu voudrais pas utiliser les scripts fournis au lieu de faire ça à la main?

tu emerge le baselayout de développement et hop tu renseignes le /etc/conf/wireless et t'inspirant du wireless.example.

sinon il te faut le wpa-supplicant pour faire du wpa et vérifier que le support de ta carte sous linux accepte le wpa .  :Wink: 

----------

## ablyes

non veux faire ça à la main, pr passer d'une distrib à une autre c' mieux. et j'aime comprendre.

oué pr le wpa j'ai trouvé ça aussi qui a l'air plus digeste (ça me rappel mon proxy tiens, authentification digest, vive malouch)  : http://www.cure.nom.fr/article.php?theme=Linux&id_fic=19

je vois de l'ipv6 dans mon ifconfig ! (me suis connecté en ipv6 à jussieu pr ça).

faut p'etre que je retire ?

une idée plz ?

----------

## ablyes

alors c'etait normal que je ne puisse pas avoir le essid qd j'avais mis le wpa aes.

mais tt de meme, avoir le bon essid, et que le dhclient marche pas  :Sad: 

personne ne sait vraiment pkoi ?? avec le null pointer, trop bizarre.

----------

## bobbix

jamais de solutions... ok... de grand copier-coller... ok... mais bon, au moins avec ca, on voit que ton nombre invalide misc est énorme !! donc, voilà, au moins, on avance. 

Alors, oui, essaye de passer en ipv4. Si t'as borne est en ipv4, autant parlé le même language, rien ne dit que le firmware de ta borne supporte la v6. Pour info, le premier paquet des transactions DHCP est envoyé en diffusion limitée (en IP V4: 255.255.255.255). Je ne me suis pas encore intéressé à l'IPv6, mais je pense qu'il faut que les deux hôtes utilisent la même version pour que ca marche (je pense...).

Si celà ne résout pas ton pb, essaye de regarder si tu utilises les bons drivers. Tu utilises ndiswrapper nan?

----------

## ablyes

je fais comment pour passer en ipv4 ?

man ifconfig -> ya une commande pr retirer une adresse ipv6? j'esssai ça.

merci !

ps : pas de reponse, ça vous motive un peu qd mm ^^

----------

## bobbix

d'après la doc de iwconfig:

```

invalid misc

              Autres  paquets  perdus  en   relation   avec   les   opérations

              spécifiques au sans fil.

```

t'as aucun autre réseau sans fil sur le même canal?

----------

## ablyes

aucun !

EDIT :

Je viens de réussir pr le mode sans cryptage. Avant ifup pr l'interface wlan0 marchait pas. maintenant qu'il le reconnait, après avoir exécuté je ne sais plus quoi. et bien ça marche.

Reste à mettre en place le wpa avec wpa_supplicant.

Il fait ma vie dur celui là !

Je dois mettre quoi dans /var/run/wpa_supplicant ? ce n'est expliqué nulle part. et dès que je lance ça plante.

Normal car le fichier n'existe pas, j'ai essayé de mettre le .confi au moment de l'intall mais ça n'a rien donné.

J'ai bien suivi le tuto dans la page de david. (lien ci dessus)

```

Line 1: Invalid configuration line 'ctrl_interface=/var/run/wpa_supplicant'.

Failed to read configuration file '/etc/wpa_supplicant.conf'.

```

FICHIER /etc/wpa_supplicant.conf

```

ctrl_interface=/var/run/wpa_supplicant

network={

   ssid="petit-L"

   psk=9ca8d5150d6f6ff6850c97b837...... ;)

   key_mgmt=WPA-PSK

   proto=WPA

}

```

Last edited by ablyes on Sun Jul 31, 2005 2:41 pm; edited 1 time in total

----------

## taiwan

Personnelement j ai remarque que mettre la clef avans de se connecter a l essid ca marcher mieux  :Smile: 

iwconfig wlan0 key s:passdelamort

iwconfig wlan0 essid mywifi

----------

## bobbix

 *taiwan wrote:*   

> Personnelement j ai remarque que mettre la clef avans de se connecter a l essid ca marcher mieux 
> 
> iwconfig wlan0 key s:passdelamort
> 
> iwconfig wlan0 essid mywifi

 

mais iwconfig, ca marche pour le wep, pour un truc sécurisé, ce n'est pas suffisant. Et wpa ne se fait pas avec iwconfig.

----------

## ablyes

exacte bobbix !

----------

## bobbix

 *ablyes wrote:*   

> exacte bobbix !

 

mais sinon, tu t'en es sorti?

----------

## ablyes

non, avec le wpa ça marche pas  :Sad: 

il me donne tjrs la meme erreur, j'ai essayé de faire des modifs et tt mais rien.

je pense vraiment que c' le fichier /var/ ... qui manque, et celui là je sais pas quoi mettre de dans. ça se trouve je lis mal le README ...

si qq a du temps... merci.

----------

## ablyes

realy personne !?

----------

## ablyes

bon j'ai réussi à faire marcher wpa_supplicant  :Smile:  (avec le dhcp activé sur le routeur, si non je sais pas faire)

le truc c'est qu'il faut vraiment avoir le bon fichier .conf au moment de la compilcation ! 

# cat .conf

```

CONFIG_DRIVER_NDISWRAPPER=y

CONFIG_CTRL_IFACE=y

```

j'expliquerai ça après qd j'aurai le temps. je pense meme faire un tuto si ça interesse qq.

merci tlm !

----------

## ablyes

Je voudrais reprendre ce poste, pour mettre en place le wpa sans broadcast d'ssid.

Quelqu'un a réussi à le faire ? (la dernière fois que je l'ai fait j'ai échoué).

Je me demande déjà si le wpa_supplicant ne bug pas, ou ne gère pas encore ça. D'après la doc il gère mais bon.

help

----------

