omnivista-upam-freeradius-dot1x-omniswitch-stellar-wlan-ip-phone-alcatel

Authentifizierung (802.1x EAP-TLS) eines IP-Telefons mithilfe des OmniVista 2500(OV2500)/ UPAM und freeradius

In diesem Artikel wird beschrieben, wie mithilfe eines OmniSwitches, OV2500/UPAM und einem freeradius ein Alcatel IP Telefon (8088) per 802.1x mit Zertifikat (EAP-TLS) sicher ins Netzwerk eingebunden wird.

Aufbau

Installation des freeradius auf einem Debian 10.6

Zuerst installieren wir den freeradius auf unserem Linux System Debian 10.6. Eine Internetverbindung für das System wäre vom Vorteil.

apt-get install freeradius (freeradius 3.0)
apt-get install vim (Editor, um Dateien anzupassen)

Konfiguration des externen Radius Servers (freeradius 3.0)

Sobald die Installation erfolgreich druchgelaufen ist, kann mit der Konfiguration des freeradius begonnen werden. Es müssen Dateien im freeradius angepasst werden und die Zertifikatskette muss erstellt werden.

freeradius 3.0 - clients.conf (/etc/freeradius/3.0)

In der Datei „clients.conf“ müssen die sogennaten NAS-Geräte eingetragen werden, da diese auf den Radius-Server zugreifen. (z.B. Switche, APs, etc…) In unserem Fall muss hier der OV2500/UPAM hinterlegt werden, da dieser als Radius-Proxy-Server fungiert.

# IP Subnetz/Host von OmniVista 2500 UPAM
client ov2500-upam-radius {
          ipaddr          = 192.168.26.10
          secret          = Alcatel01!
}

freeradius 3.0 - users (/etc/freeradius/3.0)

In der Datei können die direkten Benutzerkonten hinterlegt werden. Bei unserem Fall gibt es auf den Alcatel-IP-Telefonen einen Standard-User namens „ALCIPT“. Diesen hinterlegen wir in der Datei „users“.

# Alcatel-IP-Telefon Standard-User
ALCIPT  Auth-Type := EAP, Cleartext-Password := "password"

Zertifikatserstellung auf dem freeradius für die Alcatel-IP-Telefone

Da wir unsere IP-Telefone per EAP-TLS authentifizieren wollen, werden Zertifikate benötigt. Diese können mithilfe von „openssl“ auf dem Debian erstellt werden. In unserem Fall benutzen wir eine Zertifikatskette aus eigenen Zertifikaten und den öffentlichen Zertifikaten der Alcatel-IP-Telefone.

Die öffentliche Alcatel-Zertifikate für die IP-Telefone können im Business Partner Portal heruntergeladen werden! Öffentliche Alcatel-Zertifikate Business Partner Portal

Wie die Zertifikatskette mit eigenen Zertifikaten und den öffentlichen Zertifikaten erstellt wird, ist in der Dokumentation „IP-PCX Networks“ unter Punkt 7.9.2 beschrieben. Auch diese Dokumentation kann im Alcatel Business Portal heruntergeladen werden. "IP-PCX Networks" aus dem Business Partner Portal

In der Dokumentation „IP-PCX Networks“ wird der freeradius 2 und in diesem Doku-Wiki-Artikel ein freeradius 3 verwendet. Deswegen kann es zu Abweichungen kommen!

Nachdem, wie in der Dokumentation beschrieben die openssl.cnf kopiert wurde (cp /etc/ssl/openssl.cnf openssl.cnf), muss die kopierte Datei angepasst werden.

Ausschnitt aus der openssl.cnf:

[ CA_default ]

dir             = /etc/freeradius/3.0/certs/CA
certs           = $dir/certs
crl_dir         = $dir/crl
database        = $dir/index.txt
#unique_subject = no
new_certs_dir   = $dir/newcerts
certificate     = $dir/cacerts.pem
serial          = $dir/serial 
crlnumber       = $dir/crlnumber
crl             = $dir/crl.pem
private_key     = $dir/private/cakey.pem
x509_extensions = usr_cert

Wenn die Datei angepasst ist, kann in der Dokumentation mit Punkt 7.9.3 „Generating Root and Server Certificates“ weitergemacht werden. In dem Punkt geht es um die Erstellung unserer eigenen Zertifikate. Anschließend werden unter Punkt 7.9.4 „Registering Alcatel-Lucent Certificates“ die eben erstellen Zertifikate mit den Alcatel-Zertifikaten gekoppelt. Dazu sollten die öffentlichen Alcatel-Zertifikate heruntergeladen sein.

Die öffentlichen Alcatel-Zertifikate müssen dann auf den freeradius kopiert werden. Ich benutze dazu einen WINSCP und kopiere die entpackten Alcatel-Zertifikate in das Verzeichnis /tmp/ALE_Certificate

Mit dem folgenden Befehl werden nun meine eigenen Zertifikate mit den Alcatel-Zertifikaten verknüpft.

cat /etc/freeradius/3.0/certs/CA/cacert.pem /tmp/ALE_Certificate/AIPT_BASE64/aipt*.pem /tmp/ALE_Certificate/Alcatel_Enterprise_Solutions.pem /tmp/ALE_Certificate/Alcatel_IP_Touch.pem >> /etc/freeradius/3.0/certs/CA/cacerts.pem

freeradius – eap.conf (/etc/freeradius/3.0/mods-enabled)

Zu guter Letzt müssen wir im freeradius die Datei eap.conf anpassen. Dort müssen unsere erstellten Zertifikate hinterlegt werden.

tls-config tls-common {
                private_key_file = /etc/freeradius/3.0/certs/CA/radius-req.pem
                certificate_file = /etc/freeradius/3.0/certs/CA/radius-cert.pem
                ca_file = /etc/freeradius/3.0/certs/CA/cacerts.pem
                dh_file = ${certdir}/CA/dh1024.pem
                random_file = ${certdir}/CA/dh1024.pem

freeradius starten/stoppen/debug

Die Konfiguration des freeradius sollte nun erledigt sein und man kann ihn starten.

/etc/init.d/freeradius start -> freeradius starten
/etc/init.d/freeradius stop -> freeradius stoppen
/etc/init.d/freeradius restart -> freeradius neustarten
/etc/init.d/freeradius debug -> freeradius debugging starten

Es macht am Anfang Sinn den freeradius im “Debug-Modus“ zu starten, da man dort Fehlermeldungen besser erkennt.

In meinem Fall konnte der freeradius nicht gestartet werden, da Berechtigungen für das Zertifikat „radius-req.pem“ gefehlt haben. Mit dem Befehl „chmod -R 644 etc/freeradius/3.0/certs/CA/radius-req.pem“ habe ich die Berechtigung angepasst. Anschließend konnte ich den freeradius starten.

Zertifikat im Webserver zur Verfügung stellen

Das erstelle User-Zertifikat „caroot.p12“ muss in einem Webserver zur Verfügung gestellt werden, damit es das Telefon herunterladen kann. Unser User-Zertifikat befindet sich in dem Ordner „/etc/freeradius/3.0/certs/CA/“.

Evtl. muss auch hier die Berechtigung für das Zertifikat angepasst werden.

Konfiguration des OmniVista2500/UPAM

Der OmniVista2500/UPAM bietet zwei Vorteile, die die Umstellung auf 802.1x erleichtert und die ich in diesem Beispiel nutze. Einmal die Umstellung der Ports auf den Switchen und desweiteren die Nutzung des UPAM-Moduls als Radius-Proxy.

Konfiguration des UPAM-Moduls als Radius-Proxy-Server

Im OmniVista 2500 gibt es den UPAM (Unified Policy Authentication Manager) der als Radius-Proxy-Server genutzt werden kann.

Zuerst muss unter „Home→UPAM→Settings→External Radius“ der Radius-Server angelegt werden. In unserem Fall ist das der freeradius. Hier wird das Passwort benötigt, welches man im freeradius in der Datei „clients.conf“ hinterlegt hat.

Anschließend wird ein „AAA Server Profile“ angelegt, indem der UPAM als Primary Authentication- und Accouting Server eingetragen wird. Die „AAA Server Profile“ findet man unter „Unified Access → Unified Profile → Template → AAA Server Profile“.

Anlegen der UNP-Profiles

Um mehrere Ports auf einmal umzustellen, ist es am einfachsten Profile im OV2500/ UPAM anzulegen. Dies erleichtert die Umstellung auf 802.1x.

Access Role Profile (Unified Access > Unified Profile > Template)

Hier werden Profile erstellt, die später die Geräte zugewiesen bekommen. In unserem Fall bekommt das Alcatel-IP-Telefon bei erfolgreicher Authentifizierung das Profil „IPPhone_802.1x_Pass_VLAN26“ zugewiesen. Sollte bei einem Gerät die Authentifizierung fehlschlagen, bekommt es das Profil „Dummy_VLAN10“. Wie in meiner Namensbegebung zu erkennen ist, wird den Profilen beim Ausrollen auf dem Switch (Applpy to Device) ein VLAN zugewiesen. In dem Profil „IPPhone_802.1x_Pass_VLAN26“ aktivieren wir noch den „Mobile Tag Status“, damit unsere Telefone nachher über ein getaggtes VLAN laufen.

Access Auth Profile (Unified Access > Unified Profile > Template)

In diesem Profil wird angegeben wie ein Port authentifiziert werden soll und über welchen Authentication Server die Authentifizierung laufen soll. Desweitern hinterlegen wir hier ein „Default Access Role Profile“, welches die Geräte zugewiesen bekommen, bei denen einen Authentifizierung fehlschlägt. In unserem Fall aktivieren wir 802.1x und wählen als „AAA Server Profile“ das oben erstellt AAA Server Profile „UPAM“ aus. Unter dem Punkt „No Auth/Failure/Alternate“ tragen wir als „Deafult Access Role Profile“ Dummy_VLAN10 ein.

Dieses „Access Auth Profile“ kann nun durch „Apply to Devices“ auf ein Switch und den dazugehörigen Ports ausgerollt werden. In diesem Fall haben wir den Swtich 192.168.26.100 und den Port 1/1/6.

Anlegen der UPAM-Profile

Im UPAM müssen ebenfalls Profile angelegt werden. Es wird zuerst eine Authentifizierungsrichtlinie (Access Policy) erstellt, die dann auf eine Authentifizierungs-Strategie (Authentication Strategy) weist.

Access Policy

In der „Access Policy“ werden Attribute festgelegt, um die Geräte/User/Telefone einer „Authentication Strategy“ zuzuordnen. In unserem Fall benutzen wir das Advanced Attribute „User-Name“ und wählen aus, dass wenn ein „User-Name“ mit dem Wert „ALCIPT“ kommt, dann benutze die Authentication Strategy „802.1x_IPPhone_Strategy“. Wie bereits weiter oben im Doku-Wiki-Artikel erklärt, benutzt jedes Alcatel-IP-Telefon diesen Standardbenutzer.

Authentication Strategy

In der Authentication Strategy habe ich die Möglichkeit anzugeben, über welchen Authentication Server der Client authentifiziert werden soll und was bei einer erfolgreichen Authentifizierung passieren soll. Wir nehmen für unsere Authentifizierung der IP-Telefon unseren freeradius als „External Radius“ und wählen als Default Access Role Profile „IPPhone_802.1x_Pass_VLAN26“ aus.

Switchkonfiguration

In dem wir die Profile mit „Apply to Device“ auf den OmniSwitch ausrollen, ändert sich die Konfiguration des Switches. Hier ein Auszug der wichtigsten CLI-Zeilen:

! DA-UNP:
unp profile "IPPhone_802.1x_Pass_VLAN26"
unp profile "IPPhone_802.1x_Pass_VLAN26" map vlan 26

unp port-template 802.1x_IPPhone_UPAM direction both aaa-profile "UPAM" ap-mode admin-state enable
unp port-template 802.1x_IPPhone_UPAM 802.1x-authentication

unp port 1/1/6 port-type bridge
unp port 1/1/6 port-template 802.1x_IPPhone_UPAM

! AAA:
aaa radius-server "UPAMRadiusServer" host 192.168.26.10 hash-key "52F5CDE6C8AD17D47FCA7E4815BF1B0A" hash-salt "7D535ECA7891630634B8C799636F2843C85A2556A68C8AC5034BD838D816844D" retransmit 2 timeout 5 auth-port 1812 acct-port 1813 vrf-name default

aaa profile "UPAM"
aaa profile "UPAM" device-authentication mac "UPAMRadiusServer"
aaa profile "UPAM" accounting mac "UPAMRadiusServer"
aaa profile "UPAM" device-authentication 802.1x "UPAMRadiusServer"
aaa profile "UPAM" accounting 802.1x "UPAMRadiusServer"
aaa profile "UPAM" device-authentication captive-portal "UPAMRadiusServer"
aaa profile "UPAM" accounting captive-portal "UPAMRadiusServer"

Damit das Alcatel-IP-Telefon einen VLAN-Tag sendet, können über die MED-Erweiterung des Link Layer Discovery Protocols (LLDP) bestimmte Konfigurationen automatisiert vom OmniSwitch auf das angeschlossene Endgerät übertragen werden.

! LLDP:
lldp network-policy 1 application voice vlan 26 l2-priority 5 dscp 46
lldp nearest-bridge chassis tlv med network-policy enable
lldp chassis med network-policy 1

Konfiguration des IP-Telefons

Auf dem Alcatel-IP-Telefon müssen Einstellungen getätigt werden, damit das Telefon das Zertifikat von einem Web-Server herunterlädt und sich mit dem heruntergeladenen Zertifikat im Netzwerk authentifiziert.

Einstellung für das herunterladen des Zertifikates

Damit das IP-Telefon das Zertifikat von einem Webserver herunterzuladen kann, müssen am Telefon manuelle Änderungen durchgeführt werden. Zuerst starten wir das Telefon. Wenn im Display des Telefons Punkt 2/5 „network setup“ steht, kann mithilfe von „i + #“ in das Konfigurationsmenü des Telefons gesprungen werden. Um den Webserver und das Verzeichnis des Webservers anzugeben, muss in das Menü „Certificate → Get Certificate“ die IP-Adresse, der Port, das Verzeichnis und das Zertifikat angegeben werden.

Anschließend wird ein Passwort gefordert, dass ist das Passwort, welches wir beim erstellen des Zertifikates vergeben haben.

Wenn alles richtig gemacht wurde, sollte das Zertifikat erfolgreich auf dem Telefon installiert sein.

Das Telefon auf 802.1x umstellen

Im Grundmenü (Punkt 2/5 „network setup“ | i+#) findet man den Punkt „802.1x. Darunter befinden sich die Einstellungen, in welcher Form sich das Telefon mit 802.1x authentifizieren soll. In unserem Fall gehen wir auf „TLS Profile“ und aktivieren „Use 802.1x TLS“.

Anschließend bestätigt man die Eingabe und das Telefon macht einen Neustart.

Authentication Record im OV2500

Da wir den OV2500 als Radius-Proxy nutzen, können wir dort überprüfen, ob das IP-Telefon richtig authentifiziert ist. Den Authentication Record befindet sich unter dem Punkt „UPAM → Authentication“. Im Suchfeld kann man nach dem Account Name „ALCIPT“ suchen.

Troubleshooting Möglichkeiten

Im Switch haben wir folgende Möglichkeiten zu kontrollieren, ob das Telefon erfolgreich authentifiziert ist oder ob es zu Fehlern gekommen ist.

OS6465T-Home --> show unp user details port 1/1/6
Port: 1/1/6
    MAC-Address: 00:80:9f:a0:38:6a
      SAP                             = -,
      Service ID                      = 0,
      VNID                            = 0 ( 0. 0. 0),
      VPNID                           = 0 ( 0. 0. 0),
      ISID                            = 0,
      Access Timestamp                = 12/18/2020 14:17:25,
      User Name                       = ALCIPT,
      IP-Address                      = 192.168.26.80,
      Vlan                            = 26,
      Authentication Type             = 802.1x,
      Authentication Status           = Authenticated,
      Authentication Failure Reason   = -,
      Authentication Retry Count      = 0,
      Authentication Server IP Used   = 192.168.26.10,
      Authentication Server Used      = UPAMRadiusServer,
      Server Reply-Message            = -,
      Profile                         = IPPhone_802.1x_Pass_VLAN26,
      Profile Source                  = Auth - Pass - Server UNP,
      Profile From Auth Server        = IPPhone_802.1x_Pass_VLAN26,
      Session Timeout                 = 0,
      Classification Profile Rule     = -,
      Role                            = -,
      Role Source                     = -,
      User Role Rule                  = -,
      Restricted Access               = No,
      Location Policy Status          = -,
      Time Policy Status              = -,
      QMR Status                      = Passed,
      Redirect Url                    = -,
      SIP Call Type                   = Not in a call,
      SIP Media Type                  = None,
      Applications                    = None,
      Encap Value                     = -,
      Rule ID                         = -,

Total users : 1

Eine weitere Möglichkeit ist der Debug-Modus im Freeradius, den ich weiter oben schon beschrieben habe.

Zusätzlich würde man im Authentication Record (OmniVista 2500) ebenfalls Fehler erkennen, falls die Authentifizierung fehlschlägt.

Automatisierung am Telefon

Um bei 100 Telefonen nicht manuell an jedem Telefon die Einstellungen zu tätigen, gibt es die Möglichkeit mit Hilfe eines TFTP-Servers die sogenannte „lanpbx.conf“ auf die Telefone zu bringen. In dieser „lanpbx.conf“ sind dann die Informationen enthalten, welche zum Webserver führen (hier ist das Zertifikat abgelegt).

Hier ein Beispiel einer lanpbx.conf:

CERTSRV_IP=192.168.010.010 CERTSRV_PORT=8080 CERTSRV_PATH=/certserv
omnivista-upam-freeradius-dot1x-omniswitch-stellar-wlan-ip-phone-alcatel.txt · Zuletzt geändert: 2024/06/09 10:29 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki