c: 9-Mar-2005
m: 22-Nov-2005

Usar a autenticação 802.1x em Linux na UC

  1. Passos rápidos
  2. Ficheiros de Configuração
  3. How To
  4. Software Usado
  5. FAQ / Troubleshooting
  6. Changelog

Passos Rápidos

  1. user@host~# iwconfig eth1 essid "e-U" enc open
  2. user@host~# wpa_supplicant -qq -B -w -D ipw -i eth1 -c /etc/wpa_supplicant.conf
  3. user@host~# pump -i eth1

Ficheiros de Configuração

/etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1

# se a placa nao suporta scanning, usar ap_scan=0
ap_scan=1

network={
  ssid="e-U"
  key_mgmt=IEEE8021X
  eap=TTLS
  anonymous_identity="anonymous@dei.uc.pt"
  identity="username@student.dei.uc.pt"
  password="password"
  phase2="auth=PAP"
}

(voltar ao topo)

How To

A explicação dos valores é a seguinte.
  1. user@host~# iwconfig eth1 essid "e-U" enc open

    Nada a acrescentar. Aderir ao essid "e-U" e usar encriptação WEP sem autenticação (WEP). A negociação das chaves e autenticação na rede fica a cargo do wpa_supplicant.

  2. user@host~# wpa_supplicant -qq -B -w -D ipw -i eth1 -c /etc/wpa_supplicant.conf

    Se o sistema já tiver um sistema de deamonização do wpa_supplicant, é preferível usá-lo. Para isso vai ter que ler a documentação do seu sistema (Debian, Red-Hat, Slackware, ...).

    No entanto, aqui o comando serve para mostrar as opçõs necessárias.

    • -qq : Não produzir output.
    • -B : Correr em Background
    • -w : Esperar que a interface seja criada.
    • -D <driver> : Usar o driver wireless <driver>
    • -i <ethX> : Usar a inteface <ethX>
    • -c <conf> : Usar o ficheiro de configuração <conf>.

  3. user@host~# pump -i eth1

    É necessário receber um IP por DHCP. A exemplo usei o pump, para a interface eth1. Mas pode ser usado outro cliente de DHCP.
    Aqui aconselha-se que se use os scripts de sistema. Para debian será ifup ethX .

  4. Como o computador em causa é um portátil e estou em constante mudança de redes e de local, criei um script para aderir à rede "e-U", fazer a autenticação e iniciar a interface.
    Assim, numa rede fora da cobertura da universidade uso o comando ifup eth1. Numa rede segura da universidade (rede e-U) uso e-u.sh


    e-U.sh

    #!/bin/bash
    # (c) 2005 - Jose' Eduardo Martins, jemart@student.dei.uc.pt
    
    #interface de wireless
    INTERFACE="eth1"
    
    echo "iwconfig"
    if iwconfig $INTERFACE essid "e-U" enc open; then
      echo "  ok."; else exit 0;
    fi;
    
    echo "ifconfig (BROADCAST)"
    if ifconfig $INTERFACE 0.0.0.0; then
      echo "  ok."; else exit 0;
    fi;
    
    echo "wpa_supplicant start"
    if /etc/init.d/wpasupplicant start; then
      echo "  ok."; else exit 0;
    fi;
    
    #Pode ser um pump -i $interface
    #O pump depois do ifup, certifica que renova o IP mesmo que
    #ja' tenha interface definida.
    echo "interface start"
    if ifup $INTERFACE || pump -k $INTERFACE then
      echo "  ok."; else echo "  nok"; exit 0;
    fi;
    

(voltar ao topo)

Software Usado

Esta configuração funciona com o seguinte software.

O driver tem de ser configurado com WEP que necessita das seguintes opções no kernel:

"Cryptographic options"

"Networking"

"Generic IEEE 802.11 Networking Stack"

"Network device support"

"Wireless LAN (non-hamradio)"

Para o meu portátil (Asus S5200N que tem um Pentium-M com Centrino) uso driver Ipw2100 v1.1.0 (da tree do kernel 2.6.14) com o firmware v1.3.

(voltar ao topo)

FAQ / Troubleshooting

Changelog

21-11-2005

Adicionado o campo anonymous_identity="anonymous@dei.uc.pt".
Modificado um ponto da FAQ.

14-11-2005

Adicionada a opção "phase1" ao ficheiro de configuração do wpasupplicant.
Adicionado um ponto da FAQ.
Modificadas as opções necessárias no kernel.