适用于 Ubuntu 的 CA SiteMinder 配置

适用于 Ubuntu 的 CA SiteMinder 配置

尝试通过 init.d 脚本启动 apache 时收到以下错误:

apache2:/etc/apache2/apache2.conf 第 186 行语法错误:/etc/apache2/mods-enabled/auth_sm.conf 第 4 行语法错误:无法将 /apps/netegrity/webagent/bin/libmod_sm22.so 加载到服务器:libsmerrlog.so:无法打开共享对象文件:没有此文件或目录

SiteMinder 不正式支持 Ubuntu,因此我很难找到任何配置文档来帮助我解决此问题。

我成功安装了 SiteMinder 二进制文件并在服务器上注册了受信任的主机,但在让 apache mod 正确加载时遇到了问题。

我已将以下几行添加到 /etc/apache2/mods-available 中的新 auth_sm.conf 文件中,并在 /etc/apache2/mods-enabled 中对其进行符号链接:

SetEnv LD_LIBRARY_PATH /apps/netegrity/webagent/bin
SetEnv PATH ${PATH}:${LD_LIBRARY_PATH}

LoadModule sm_module /apps/netegrity/webagent/bin/libmod_sm22.so
SmInitFile "/etc/apache2/WebAgent.conf"

Alias /siteminderagent/pwcgi/ "/apps/netegrity/webagent/pw/"

<Directory "/apps/netegrity/webagent/pw/">
   Options Indexes MultiViews ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

更新:ldd libmod_sm22.so 的输出:

    ldd /apps/netegrity/webagent/bin/libmod_sm22.so
        linux-gate.so.1 => (0xb8075000)
        libsmerrlog.so => /apps/netegrity/webagent/bin/libsmerrlog.so (0xb7ec0000)
        libsmeventlog.so => /apps/netegrity/webagent/bin/libsmeventlog.so (0xb7ebb000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e9a000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e96000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7e8d000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb7dd3000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7dad000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d9e000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c3a000)
        libsmcommonutil.so => /apps/netegrity/webagent/bin/libsmcommonutil.so (0xb7c37000)
        /lib/ld-linux.so.2 (0xb8076000)

更新:

在 Ubuntu 中为 Apache 运行用户设置环境变量的最简单方法是编辑 /etc/apache2/envvars 文件并为您可能需要的任何库路径添加导出语句

答案1

看起来 libmod_sm22 正在尝试加载链接库,但未在预期的位置找到它。尝试:

ldd /apps/netegrity/webagent/bin/libmod_sm22.so

看看是否可以将它正在寻找的库移动到它期望的路径。

答案2

我正在运行 Ubuntu 14.4,下面是我为使其运行所做的事情:

(附注:我将它安装在了/opt/CA/,如果你将它安装在其他地方,只需替换/opt/CA/为你的安装目录即可。)

  • 运行ca-wa-config.sh脚本。
  • 当它要求输入 Apache 服务器根目录时,使用/etc/apache2
  • 它会说它失败,并发出有关无法更新httpd.conf和其他配置文件的警告。
  • /etc/apache2它正在和中写入所需的配置文件/opt/CA/webagent/config
  • 将 的所有者更改/opt/CA/webagent/config/SmHost.conf为 Apache 运行时所使用的同一用户。这通常是www-data。您可以通过运行来查找用户ps aux | grep apache2

完成配置向导后,您仍然需要创建/编辑一些配置文件:


/etc/apache2/环境变量

在末尾/etc/apache2/envvars添加以下几行:

CAPKIHOME=/opt/CA/webagent/CAPKI
LD_LIBRARY_PATH=/opt/CA/webagent/bin
PATH=${PATH}:${LD_LIBRARY_PATH}

export CAPKIHOME
export LD_LIBRARY_PATH
export PATH

/etc/apache2/mods-available/auth_sm.load

通过运行来检查您正在使用的 apache 版本apache2 -v

  • 如果是 2.2(Ubuntu 12.x 中发布),你需要加载libmod_sm22.so
  • 如果是 2.4(Ubuntu 14.x 中发布),你需要加载libmod_sm24.so

创建文件/etc/apache2/mods-available/auth_sm.load并添加以下行:

LoadModule sm_module /opt/CA/webagent/bin/libmod_sm24.so
SmInitFile "/etc/apache2/WebAgent.conf"

然后你需要正确链接它,以便 Apache 可以通过运行以下命令来加载此配置/etc/apache2

ln -s ../mods-available/auth_sm.load mods-enabled/auth_sm.load


/etc/apache2/conf-available/auth_sm.conf

您还需要配置 webagent 的别名。创建文件/etc/apache2/conf-available/auth_sm.conf并添加以下行:

Alias /siteminderagent/pwcgi/   "/opt/CA/webagent/pw/"

<Directory "/opt/CA/webagent/pw/">
   Options Indexes MultiViews ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

然后你需要正确链接它,以便 Apache 可以通过运行以下命令来加载此配置/etc/apache2

ln -s ../conf-available/auth_sm.conf conf-enabled/auth_sm.conf

答案3

在 envvars 中添加以下条目后对我有用

NETE_WA_PATH="/webagent/bin"
export NETE_WA_PATH
NETE_WA_ROOT="/webagent"
export NETE_WA_ROOT
PATH="/webagent/bin:$PATH"
export PATH
LD_LIBRARY_PATH="/local/apache22/0/lib:/webagent/bin:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH

相关内容