PEAP – 802.1X unter Linux

Lock802.1X ist ein Standard zur Authentifizierung von Netzteilnehmern, ursprünglich für Mobilnetze entwickelt, aber immer mehr auch bei Festnetzen im Einsatz.

Benötigt wird xsupplicant bzw. wpa_supplicant als Open Source implementierung des IEEE 802.1X Standards.

Die meisten Distributionen bringen xsupplicant in ihrer Packetverwaltung mit. Die Installation/Konfiguration kann sich unterscheiden.

Debian

Installation

Zuerst muss xsupplicant installiert werden. Als root folgende Zeile eingeben:

apt-get install xsupplicant

Damit wäre xsupplicant installiert.

Konfiguration

Damit xsupplicant beim Booten startet, muss die Datei /etc/default/xsupplicant editiert werden. Sie nimmt die Startparameter auf:

# /etc/default/xsupplicant

# WARNING! Before enabling xsupplicant, make sure you have a valid
# configuration file, (/etc/xsupplicant/xsupplicant.conf), and that
# you have set a list of arguments below.
ENABLED=1

# At a minimum you need to set an interface with the -i argument. See
# the man page xsupplicant(8) for more options and information.
ARGS="-c /etc/xsupplicant/xsupplicant.conf -i eth0"

eth0 ist dabei das Interface, auf dem xsupplicant arbeiten soll.

Die eigentliche Konfigurationsdatei /etc/xsupplicant/xsupplicant.conf muss nun mit den Daten des BBB Netzes gefüllt werden. Die folgende gilt für Version 1.2.4.dfsg.1-1:

network_list = all
default_netname = default
logfile = syslog
log_facility = daemon
default_interface = eth0
default
{
  type = wired
  allow_types = all
  identity = skaldrom.sarg@oncode.info

  eap-peap {
      root_cert = NONE
      random_file = /dev/urandom
      session_resume = yes
      proper_peap_v1_keying = yes        
      allow_types = all # where all = MSCHAPv2, MD5, OTP, GTC, SIM
      #allow_types = eap_mschapv2

      eap-mschapv2 {
        username = Skaldrom.Y.Sarg
        #ntpwdhash = E653E6452753C97E46792567DFF599B6
        password = "PaSsWoRT"
      }
  }
}

skaldrom.sarg@oncode.info respektive PaSsWoRT müssen natürlich mit den eigenen, höchselbstigen Angaben ersetzt werden.

Start

Bei eingeschaltetem Netzwerkinterface (ifconfig eth0 up) kann nun xsupplicant gestartet werden und sollte sich authentifizieren. Die DHCP Anfrage, etc, sollte danach nach Standard funktionieren (ifup eth0).

Debugging

Um dem xsupplicant bei der Arbeit zuzusehen kann er im Vordergrund gestartet werden:

xsupplicant -f -dA -c /etc/xsupplicant/xsupplicant.conf -i eth0

Ubuntu Dapper

Gebraucht wird wpasupplicant und nicht xsupplicant.

Schnell eine wpa_supplicant.conf erstellt:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
   key_mgmt=IEEE8021X
   eap=PEAP
   identity="Vorname.Nachname"
   password="passwort"
   eapol_flags=0
}

Danach kann man wpa_supplicant gestartet werden:

wpa_supplicant -Dwired -c ~/wpa.conf -i eth0

Weitere Probleme

Es ist ein Fall bekannt, in welchem dhcp3-client (der neue Standard-DHCP-Client in Debian?) nicht mitgespielt hat und erst mit dhcp-client eine IP vergeben wurde (ganz unabhängig von *supplicant).

Ebenfalls haben schon automatische Netzwerkkabeleinsteckdetektoren Probleme verursacht.

Ein No network configuration found for the current AP kann darauf hindeuten, dass die Netzwerkkarte nicht unterstützt ist oder dass der Treiber kein WPA hat.

Reconnect-Scripts

Dieses kleine Script authentifiziert (unter Debian) und wartet bis der Vorgang abgeschlossen ist. Per Polling wird /etc/syslog geprüft. Das Script wäre ausbaubar (Abbruch bein Nichtauthentifizierung, Timeout, …), ich würde sehr gerne Überarbeitungen entgegen nehmen.

#! /bin/bash
ifdown eth0
/etc/init.d/xsupplicant stop
ifconfig eth0 down
ifconfig eth0 up
/etc/init.d/xsupplicant start
while ! tail /var/log/syslog | grep "Successfully authenticated eth0"
do
  echo -n "*"
  sleep 5
done
echo "\n"
ifup eth0

Bitte

Ich wäre froh für jede Info, wenn es jemand geschafft hat über das Zertifikat eines Windows Zertifikatsserver zu authentifizieren… Als Belohnung gäbs einen virtuellen Blumenstrauss 🙂 …

Ein Gedanke zu „PEAP – 802.1X unter Linux

  1. 😎 unter Debian 4.0 ist sehr hilfreich den dhcp3-client durch den dhcp-client (Version 2.0) zu ersetzen. Dies erspart einem ein paar unruhige nicht klappende DHCP-Verbindungen. Komischerweise funktionniert der dhcp3-client mit einem ZyWall2 aber nicht mit einem IP-Cop oder im Schulnetz der BBB.
    Danke Sarg für deinen kleinen glorreichen Hinweis.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.