Uploaded image for project: 'Observium'
  1. Observium
  2. OBS-4772

Call to undefined function radius_auth_open()

    XMLWordPrintable

Details

    • Library Bug
    • Resolution: Won't Fix
    • Major
    • None
    • None
    • Default
    • None

    Description

      Hi team,

      After a fresh install on a new VM (Ubuntu 22.04), enabling RADIUS and trying to login throws the following error message:

      Call to undefined function radius_auth_open() in /opt/observium/html/includes/authentication/radius.inc.php:23

      #0: (unknown function) called at [/opt/observium/html/includes/authentication/radius.inc.php:23]

      18: {
      19: global $rad, $config;
      20:
      21: if (!is_resource($rad)) {
      22: $success = 0;
      23: $rad = radius_auth_open();
      24:
      25: foreach ($config['auth_radius_server'] as $server) {
      26: if (radius_add_server($rad, $server, $config['auth_radius_port'], $config['auth_radius_secret'], $config['auth_radius_timeout'], $config['auth_radius_retries']))

      { 27: $success = 1; 28: }

      #1: radius_init called at [/opt/observium/html/includes/authentication/radius.inc.php:51]

      46: */
      47: function radius_authenticate($username, $password)
      48: {
      49: global $config, $rad;
      50:
      51: radius_init();
      52: if ($username && $rad) {
      53: //print_vars(radius_server_secret($rad));
      54: radius_create_request($rad, RADIUS_ACCESS_REQUEST);
      55:
      56: radius_put_attr($rad, RADIUS_USER_NAME, $username);
      #2: radius_authenticate called at [/opt/observium/html/includes/authenticate-functions.inc.php:22]

      17:
      18: if (function_exists($config['auth_mechanism'] . '_authenticate'))

      { 19: // Can't consider remote_user setting here, as for example the LDAP plugin still needs to check 20: // group membership before logging in. So remote_user currently needs to be considered in 21: // mech_authenticate() by the module itself until we split this up, maybe... 22: return call_user_func($config['auth_mechanism'] . '_authenticate', $username, $password); 23: }

      24: return mysql_authenticate($username, $password);
      25: }
      26:
      27: // DOCME needs phpdoc block
      #3: authenticate called at [/opt/observium/html/includes/authenticate.inc.php:189]

      184:
      185: // Auth from COOKIEs
      186: $auth_success = cookie_auth($cookie_expire);
      187:
      188: // Auth from ...
      189: if (!$_SESSION['authenticated'] && (authenticate($_SESSION['username'], $auth_password) || // login/password
      190: (auth_usermanagement() && auth_user_level($_SESSION['origusername']) >= 10))) // FIXME?
      191: {
      192: // If we get here, it means the password for the user was correct (authenticate() called)
      193: // Store encrypted password
      194: session_encrypt_password($auth_password, $user_unique_id);
      #4: include called at [/opt/observium/html/index.php:74]

      69: $_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] ?? ($_SERVER['ORIG_PATH_INFO'] ?? '');
      70:
      71: // Clean global $vars variable, it populated only after correct authenticating
      72: unset($vars);
      73:
      74: include($config['html_dir'] . "/includes/authenticate.inc.php");
      75:
      76: // Default theme set in global or user setting
      77: if ($config['web_theme_default'] === 'system' && isset($_COOKIE['screen_scheme']))

      { 78: $theme = $_COOKIE['screen_scheme']; 79: }

      else {

      The settings for config.php were take from the previously working installation:

      $config['auth_mechanism'] = "radius"; // default, other options: ldap, http-auth, please see documentation for config help

      $config['auth_radius_server'] = array('IP');
      $config['auth_radius_port'] = Poer;
      $config['auth_radius_secret'] = 'X';
      $config['auth_radius_timeout'] = 20;
      $config['auth_radius_retries'] = 2;
      $config['auth_radius_id'] = '';
      $config['auth_radius_method'] = 'PAP';
      $config['auth_radius_groupmemberattr'] = 'Filter-Id';
      $config['auth_radius_groups'][X]['level'] = 10; // Full administrative access
      $config['auth_radius_groups']['X']['level'] = 8;
      $config['auth_radius_groups']['X']['level'] = 8;
      $config['auth_radius_groups']['X']['level'] = 7; // Global read access with secured info (ie rancid configs)
      $config['auth_radius_groups']['pfy']['level'] = 5; // Global read access
      $config['auth_radius_groups']['support']['level'] = 1; // Only login access, for access to devices/entities require bind entity permissions

      Version Information
      Observium 24.2.13296 (1st February 2024)
      OS Linux 6.5.0-1014-gcp [amd64] (Ubuntu 22.04)
      Apache 2.4.52 (Ubuntu)
      PHP 8.1.2-1ubuntu2.14 (OPcache: ENABLED) (Memory: 128MB)
      Python 3.10.12
      MySQL 8.0.36-0ubuntu0.22.04.1 (extension: mysqli 8.1.2-1ubuntu2.14)
      SNMP NET-SNMP 5.9.1
      RRDtool 1.7.2
      Fping 5.1 (IPv4 and IPv6)
      Fetch cURL 7.81.0 (OpenSSL/3.0.2, LibZ 1.2.11, LibIDN 2.3.2)

      Thanks,
      Ned

      Attachments

        Issue Links

          Activity

            People

              landy Mike Stupalov
              nedbachkarov Observium User
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: