802.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:
Damit wäre xsupplicant installiert.
Konfiguration
Damit xsupplicant beim Booten startet, muss die Datei /etc/default/xsupplicant editiert werden. Sie nimmt die Startparameter auf:
# 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:
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:
Ubuntu Dapper
Gebraucht wird wpasupplicant und nicht xsupplicant.
Schnell eine wpa_supplicant.conf erstellt:
ap_scan=0
network={
key_mgmt=IEEE8021X
eap=PEAP
identity="Vorname.Nachname"
password="passwort"
eapol_flags=0
}
Danach kann man wpa_supplicant gestartet werden:
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.
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 🙂 …
😎 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.