Benutzer-Werkzeuge

Webseiten-Werkzeuge


aaa_radius-health-check

Empfehlungen für die Verwendung des "Radius-Health-Check"

Der Radius-Health-Check (RHC) ist seit AOS 6.7.1.R03 in der AOS Software enthalten und soll für per MAC oder 802.1x-authentifizierte Nutzer eine schnellere Fehlererkennung ermöglichen wenn der RADIUS nicht verfügbar ist / nicht antwortet.

Der eingerichtete RADIUS „rad01“ wird nach Eingabe des Kommandos aaa radius-health-check name <radius-name> status enable periodisch abgefragt.

OS6450-P10-> show configuration snapshot aaa
! AAA :
aaa radius-server "rad01" host 192.168.5.1 key 3851dff6d9e5ddb1d77cba2e58159549 retransmit 3 timeout 2 auth-port 1812 acct-port 1813 
aaa authentication default "local" 
user password-size min 9
user password-policy min-uppercase 1
user password-policy min-lowercase 1
user password-policy min-digit 1
user password-policy min-nonalpha 1
aaa switch-access mode enhanced
aaa radius-health-check name "rad01" status enable 

Eine Anpassung des Benutzernamen/Passwort die für die Anfrage genutzt werden ist möglich, aber unnötig und aus meiner Sicht nicht zu empfehlen.

Der Radius-Health-Check prüft ob der RADIUS auf die Anfrage antwortet. Es ist dabei egal ob ein Access-Accept, Access-Challenge oder Access-Reject zurückgemeldet wird. In jedem Fall gilt der Server als „UP“. Ein gültiger RADIUS-Account führt im schlimmsten Fall zu einem Sicherheitsproblem, daher halte ich es für sinnvoll den verwendeten Account zu deaktivieren und auf Basis des „Access-Reject“ zu arbeiten.

Wir streben in AOS 6.7.1.R05 weitere Verbesserungen an dieser Funktion an, bis dahin möchte ich mit folgenden Hinweisen zu einem möglichst sicheren Betrieb beitragen.

Anfrage eines OmniSwitch am RADIUS per Radius-Health-Check (ohne Korrekturen an der RADIUS-Konfiguration):

rad_recv: Access-Request packet from host 192.168.5.102 port 1071, id=79, length=73
	User-Name = "alcatel"
	EAP-Message = 0x0250000c01616c636174656c
	NAS-IP-Address = 172.18.16.42
	NAS-Port-Type = Ethernet
	Message-Authenticator = 0x39b53e4608b9fd6bd8d2f9cbccb35266
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+group authorize {
++[preprocess] = ok
++[chap] = noop
++[mschap] = noop
++[digest] = noop
[suffix] No '@' in User-Name = "alcatel", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] = noop
[eap] EAP packet type response id 80 length 12
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] = updated
[files] users: Matched entry alcatel at line 105
++[files] = ok
++[expiration] = noop
++[logintime] = noop
[pap] WARNING: Auth-Type already set.  Not setting to PAP
++[pap] = noop
+} # group authorize = updated
Found Auth-Type = EAP
# Executing group from file /etc/freeradius/sites-enabled/default
+group authenticate {
[eap] EAP Identity
[eap] processing type md5
rlm_eap_md5: Issuing Challenge
++[eap] = handled
+} # group authenticate = handled
Sending Access-Challenge of id 79 to 192.168.5.102 port 1071
	EAP-Message = 0x0151001604106d6476e552bfc4fcef07042a5881e0b3
	Message-Authenticator = 0x00000000000000000000000000000000
	State = 0xab784abcab294ef8bc3a9ed9189b7460
Finished request 16.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 16 ID 79 with timestamp +824
Ready to process requests.

Es fallen eine Reihe von Dingen auf:

  • NAS-IP-Address „172.18.16.42“ ist nicht korrekt
  • EAP in der Anfrage enthalten, obwohl es PAP sein sollte
  • User-Password fehlt, daher ist die ganze Anfrage hinfällig (und daher auch ein benutzerdefinierten Passwort überflüssig)
  • Die enthaltene EAP-Identity führt zu einer EAP-MD5 Challenge, die den RADIUS unnötig beschäftigt
  • Der Request muss in den „cleanup_delay“ laufen

Daher meine Empfehlung für den RHC-Benutzer in /etc/freeradius/users:

# Deaktivierter Benutzer fuer OmniSwitch Radius-Health-Check
"alcatel"       Auth-Type := Reject

Ergebnis:

rad_recv: Access-Request packet from host 192.168.5.102 port 1093, id=123, length=73
	User-Name = "alcatel"
	EAP-Message = 0x027c000c01616c636174656c
	NAS-IP-Address = 172.18.16.42
	NAS-Port-Type = Ethernet
	Message-Authenticator = 0x45f67b77eb649c1baf1c5df5011e23d1
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+group authorize {
++[preprocess] = ok
++[chap] = noop
++[mschap] = noop
++[digest] = noop
[suffix] No '@' in User-Name = "alcatel", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] = noop
[eap] EAP packet type response id 124 length 12
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] = updated
[files] users: Matched entry alcatel at line 105
++[files] = ok
++[expiration] = noop
++[logintime] = noop
[pap] WARNING: Auth-Type already set.  Not setting to PAP
++[pap] = noop
+} # group authorize = updated
Found Auth-Type = Reject
Auth-Type = Reject, rejecting user
Failed to authenticate the user.
Using Post-Auth-Type REJECT
# Executing group from file /etc/freeradius/sites-enabled/default
+group REJECT {
[attr_filter.access_reject] 	expand: %{User-Name} -> alcatel
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] = updated
+} # group REJECT = updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 123 to 192.168.5.102 port 1093
Waking up in 4.9 seconds.
Cleaning up request 0 ID 123 with timestamp +9
Ready to process requests.

Auf dem Switch sieht dies so aus:

OS6450-P10-> show aaa server 
Server name = rad01
  Server type             = RADIUS,
  IP Address 1            = 192.168.5.1,
  Retry number            = 3,
  Time out (sec)          = 2,
  Authentication port     = 1812,
  Accounting port         = 1813,
  Nas port                = default,
  Nas port id             = disable,
  Nas port type           = ethernet,
  Mac Addr Format Status  = disable,
  Mac Address Format      = uppercase,
  Unique Acct Session Id  = disable,
  Health Check Status     = ENABLED,
  Server oper status      = UP,
  Primary oper status     = UP,
  Polling interval        = 50,
  User name               = alcatel,
  Failover Status         = DISABLED
aaa_radius-health-check.txt · Zuletzt geändert: 2016/09/23 09:59 von benny