802.1X ist die Zugangskontrolle an Netzwerkports. Statt „wer am Kabel hängt, ist im Netz“ gilt: Erst nach erfolgreicher Anmeldung wird der Port freigegeben. Der Nutzen ist erheblich – unbekannte Geräte erhalten keine Verbindung, und ein ausgetauschter Patchfeldstecker nützt nichts.

Die drei Beteiligten

  • Antragsteller (Supplicant): Das Gerät, das ins Netz will. Der Anmeldedienst ist im Betriebssystem enthalten (Windows: Dienst „Wired AutoConfig“; Linux: wpa_supplicant).
  • Vermittler (Authenticator): Der Switch oder Zugangspunkt. Er lässt die Anmeldung durch, entscheidet aber nicht selbst – er leitet die Anmeldedaten weiter.
  • Anmeldeserver (Authentication Server): In der Regel ein RADIUS-Server. Er prüft die Anmeldedaten und gibt seine Entscheidung an den Switch zurück.
Ablauf:
1. Geraet verbindet sich mit dem Port
   -> Port ist im Zustand "unauthorized": Nur EAP-Anmeldung
      laeuft durch, alles andere wird verworfen (auch DHCP!)

2. Regelaustausch (EAP) zwischen Geraet und Anmeldeserver
   -> Der Switch leitet die Nachrichten durch
   -> Der RADIUS-Server prueft gegen eine Quelle
      (Verzeichnisdienst, Zertifikat, Einmalkennwort)

3. Entscheidung:
   Access-Accept  -> Port wird freigeschaltet (authorized)
   Access-Reject  -> Port bleibt gesperrt
   -> Zusaetzlich koennen Attribute mitkommen: VLAN-Zuweisung,
      Filterregeln, Zeitbegrenzung.

4. Bei Verzeichnisdienstanmeldung: spaetere Abmeldung
   oder Sitzungsende hebt die Freigabe wieder auf.

Die Anmeldeverfahren (EAP-Varianten)

  • EAP-TLS: Beide Seiten haben Zertifikate. Sicherste Variante, aber der Aufwand für die Zertifikatsverteilung an alle Clients ist erheblich.
  • PEAP / EAP-TTLS: Nur der Server hat ein Zertifikat; der Client meldet sich über einen geschützten Kanal an (typisch: Benutzername/Passwort gegen den Verzeichnisdienst). In der Praxis die häufigste Wahl.
  • EAP-MD5: Veraltet. Der Hashwert lässt sich ableiten und offline angreifen. Nicht verwenden.
  • EAP-MSCHAPv2: Weit verbreitet wegen der Windows-Unterstützung. Nur innerhalb eines geschützten Kanals (PEAP) akzeptabel – offen verwendet ist es angreifbar.

Einrichtung: Switch und Server

# --- Switch (Cisco-Beispiel) ---
aaa new-model
radius server mein-radius
 address ipv4 10.0.0.53 auth-port 1812 acct-port 1813
 key 7 einLangesGeheimnis
!
aaa authentication dot1x default group radius
aaa authorization network default group radius
aaa accounting dot1x default start-stop group radius
!
dot1x system-auth-control
!
interface range GigabitEthernet1/0/1-24
 switchport mode access
 authentication port-control auto        # auto = 802.1X aktiv
 dot1x pae authenticator
 authentication order dot1x mab          # erst 802.1X, dann MAB
 dot1x timeout tx-period 10              # wie lange auf Anmeldung warten
 dot1x max-reauth-req 2
 spanning-tree portfast
 authentication host-mode multi-auth     # mehrere Geraete am Port
!
# Guest-VLAN fuer abgelehnte Geraete (optional)
interface GigabitEthernet1/0/1
 authentication event fail action authorize vlan 999
!
# Pruefen
show dot1x all
show authentication sessions
show authentication sessions interface GigabitEthernet1/0/1 details
show dot1x interface GigabitEthernet1/0/1
# --- RADIUS-Server (FreeRADIUS) ---
# /etc/freeradius/3.0/clients.conf
client switch-zugang {
    ipaddr = 10.0.0.20
    secret = einLangesGeheimnis      # chmod 600! lange Zufallszeichenkette
    shortname = switch-1
}

# /etc/freeradius/3.0/sites-available/default
#   Nach der Authentifizierung ein VLAN zuweisen:
update reply {
    Tunnel-Type     = VLAN
    Tunnel-Medium-Type = IEEE-802
    Tunnel-Private-Group-Id = "42"
}

# Benutzer im Verzeichnisdienst pruefen
# /etc/freeradius/3.0/mods-available/ldap
ldap {
    server = 'ldaps://dc01.example.org'
    identity = 'cn=radius,ou=service,dc=example,dc=org'
    password = geheim
    base_dn = 'ou=benutzer,dc=example,dc=org'
    user {
        base_dn = "ou=benutzer,dc=example,dc=org"
        filter = "(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})"
    }
}

# Starten und ausfuehrlich protokollieren
freeradius -X                          # im Vordergrund mit allen Details
journalctl -u freeradius -f
tail -f /var/log/freeradius/radius.log

# Ein Anmeldeversuch von Hand testen - der wichtigste Test!
radtest benutzer geheim 127.0.0.1 0 testgeheimnis
radtest benutzer geheim 127.0.0.1 0 testgeheimnis | grep -i 'accept\|reject'
#   "Received Access-Accept"  -> Anmeldung funktioniert
#   "Received Access-Reject"  -> Anmeldedaten oder Konfiguration pruefen

MAC-Authentifizierung (MAB) für Geräte ohne Anmeldung

# Drucker, Kameras, Zeiterfassung oder Telefone koennen kein 802.1X.
# Fuer solche Geraete gibt es die MAC-basierte Anmeldung als Rueckfall.

aaa authentication dot1x default group radius
interface GigabitEthernet1/0/5
 authentication order mab dot1x       # MAB ZUERST fuer dieses Geraet
 mab
 authentication host-mode single-host

# Der RADIUS-Server prueft die MAC-Adresse als Benutzername.
# /etc/freeradius/3.0/users:
#   001122334455  Cleartext-Password := "001122334455"
#       Tunnel-Private-Group-Id = "200"

# ACHTUNG: Eine MAC-Adresse ist trivial faelschbar (ein Kommando).
#   MAB ist eine Bequemlichkeit, KEIN Sicherheitsmerkmal.
#   Sinnvoll nur in einem eigenen VLAN mit engem Filter -
#   und nur fuer Geraete, die wirklich nicht anders koennen.

Der Übergang: Erst beobachten, dann durchsetzen

Ein direkt scharf geschaltetes 802.1X legt das Netz lahm – irgendein Gerät wird vergessen. Bewährt ist der dreistufige Weg:

  1. Überwachungsmodus: Der Port lässt allen Verkehr durch, protokolliert aber, wer sich anmelden würde und wer nicht.
    interface range GigabitEthernet1/0/1-24
     authentication port-control auto
     dot1x pae authenticator
     # Wichtig: KEINE Ablehnung, nur Aufzeichnung
     authentication event fail action authorize vlan 42
     # Nicht angemeldete Geraete ins normale VLAN schicken,
     # aber protokollieren.
    
    show authentication sessions | grep -c 'Authz Success'
    show authentication sessions | grep -c 'Authz Failed'
    show authentication sessions interface GigabitEthernet1/0/5 details
  2. Bestandsaufnahme: Welche Geräte haben sich nie angemeldet? Fehlende Einträge im Verzeichnis? Fehlende MAB-Freigaben? Jeden Fall einzeln klären, nicht pauschal freigeben.
  3. Durchsetzen, bereichsweise: Erst eine Etage, dann das nächste Segment. Nach jeder Stufe beobachten und die Meldungen auswerten.

Häufige Probleme

  1. DHCP kommt nicht durch. Normal und erwartet: Der Port ist vor der Anmeldung gesperrt. Tritt es nach der Anmeldung auf, fehlt meist das VLAN für den angemeldeten Benutzer. Rechte auf dem RADIUS prüfen.
  2. Zertifikat nicht akzeptiert. Bei PEAP prüft der Anmeldedienst das RADIUS-Zertifikat. Ein selbst ausgestelltes Zertifikat ohne Verteilung an die Clients führt zum Abbruch. Zertifikatskette inklusive Zwischenzertifikaten ausliefern und den Servernamen korrekt setzen.
  3. Zeitablauf zwischen Switch und RADIUS. Ein Passwort wird mit einem Zeitstempel signiert. Weichen die Uhren ab, schlägt die Anmeldung fehl, ohne dass die Anmeldedaten falsch sind. Erster Prüfpunkt bei unerklärlichen Fehlschlägen: show clock und timedatectl auf dem RADIUS.
  4. Port bleibt gesperrt nach einem Update. Ein entferntes Gerät hat sich zuletzt angemeldet; ohne Sitzungsabmeldung bleibt der Port im gesperrten Zustand. Bei Bedarf show authentication sessions und die Sitzung einzeln zurücksetzen.
  5. Segment bleibt ohne Netz. Der Punkt, der einen Ausfall verursacht: Der RADIUS-Server ist nicht erreichbar, und der Switch kann niemanden anmelden. Ausfallverhalten muss vorher definiert werden: Port beim Ausfall gesperrt (sicher) oder offen (verfügbar)? Empfehlung: gesperrt, aber mit einem Notfallzugang und einer dokumentierten Notfallprozedur.
  6. Ein RADIUS-Server. Ohne zweiten Server ist ein Ausfall ein Netzausfall. Zwei Server mit gleicher Konfiguration und unterschiedlicher Reihenfolge in der Switch-Konfiguration.

Prüfliste

  1. Ist das Verhalten bei nicht erreichbarem Anmeldeserver bewusst festgelegt und dokumentiert?
  2. Sind zwei Anmeldeserver konfiguriert?
  3. Sind die Uhren auf Switches, Clients und Anmeldeserver synchron?
  4. Ist EAP-MD5 überall abgeschaltet?
  5. Sind die Schlüssel zwischen Switch und RADIUS lang und zufällig – und liegen geschützt?
  6. Ist geregelt, welche Geräte über MAB zugelassen sind – und in welchem VLAN?
  7. Wird protokolliert, wer sich wann angemeldet hat?
  8. Ist ein Notfallweg dokumentiert und einmal geübt worden?

Verwandte Grundlagen: RADIUS, Zero Trust, DMZ, VLAN.