Signatur
Beschreibung
radius_config() weist die RADIUS-Clientbibliothek an, eine Konfigurationsdatei einzulesen. Diese Datei enthält typischerweise Serveradressen, Shared Secrets, Timeouts und Wiederholungsversuche für die RADIUS-Authentifizierung oder -Abrechnung.
Die Funktion wird verwendet, wenn die RADIUS-Konfiguration nicht manuell über radius_add_server() gesetzt werden soll, sondern aus einer bestehenden Konfigurationsdatei im Format der libradius-Bibliothek (z. B. /etc/radius.conf) gelesen werden soll. Dies ist besonders praktisch in Umgebungen, in denen die Serverkonfiguration zentral verwaltet wird.
Die Funktion muss nach der Erstellung eines RADIUS-Handles via radius_auth_open() oder radius_acct_open() und vor dem ersten Authentifizierungsversuch aufgerufen werden. Im Fehlerfall kann der genaue Fehler mit radius_strerror() abgerufen werden.
Hinweis: Die PECL-Erweiterung radius muss installiert sein, damit diese Funktion verfügbar ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $radius_handle Pflicht | resource | Ein gültiges RADIUS-Handle, das zuvor mit radius_auth_open() oder radius_acct_open() erstellt wurde. |
|
| $file Pflicht | string | Absoluter oder relativer Pfad zur RADIUS-Konfigurationsdatei (z. B. /etc/radius.conf), die von der Bibliothek eingelesen werden soll. |
Rückgabewert
true zurück, wenn die Konfigurationsdatei erfolgreich gelesen wurde, andernfalls false. Im Fehlerfall liefert radius_strerror() eine detaillierte Fehlermeldung.Beispiele
RADIUS-Konfigurationsdatei einlesen
<?php
// RADIUS-Handle für Authentifizierung öffnen
$radius_handle = radius_auth_open();
if (!$radius_handle) {
die('RADIUS-Handle konnte nicht erstellt werden.');
}
// Konfigurationsdatei einlesen
if (!radius_config($radius_handle, '/etc/radius.conf')) {
$error = radius_strerror($radius_handle);
die('Fehler beim Einlesen der RADIUS-Konfigurationsdatei: ' . $error);
}
echo 'Konfigurationsdatei erfolgreich geladen.' . PHP_EOL;
// Weiter mit Attributen und Authentifizierung...
radius_create_request($radius_handle, RADIUS_ACCESS_REQUEST);
radius_put_attr($radius_handle, RADIUS_USER_NAME, 'testbenutzer');
radius_put_attr($radius_handle, RADIUS_USER_PASSWORD, 'geheimespasswort');
$result = radius_send_request($radius_handle);
if ($result === RADIUS_ACCESS_ACCEPT) {
echo 'Authentifizierung erfolgreich.' . PHP_EOL;
} else {
echo 'Authentifizierung fehlgeschlagen.' . PHP_EOL;
}
Fehlerbehandlung bei ungültigem Pfad
<?php
$radius_handle = radius_auth_open();
if (!$radius_handle) {
die('RADIUS-Handle konnte nicht erstellt werden.');
}
$configFile = '/nicht/vorhandene/datei.conf';
if (!radius_config($radius_handle, $configFile)) {
echo 'Fehler: ' . radius_strerror($radius_handle) . PHP_EOL;
} else {
echo 'Konfiguration geladen.' . PHP_EOL;
}
// Wichtig · Fallstricke
Sicherheitshinweis: Stellen Sie sicher, dass die Konfigurationsdatei nur für berechtigte Benutzer lesbar ist, da sie das Shared Secret für die RADIUS-Kommunikation enthält. Unangemessene Dateiberechtigungen könnten das Secret offenlegen.
Falls sowohl radius_config() als auch radius_add_server() verwendet werden, können Konfigurationen aus der Datei durch manuell hinzugefügte Server ergänzt oder überschrieben werden – achten Sie auf mögliche Konflikte.
Die PECL-Erweiterung radius ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (pecl install radius).