In this blog example, we will explore expanding the ability of Virtual Appliances to use X11 programs where possible instead of requiring a 2nd server to host the solutions’ client tools.

We will review how to enable the following client tools: CX (Symantec IM Connector Xpress), WF Designer (Symantec Workflow Designer), Wildfly/JBOSS Management UI, Jxplorer (LDAP Management UI), and Apache Directory Studio (LDAP Management UI). Note there is no java version for the Symantec Identity Manager GUI (32bit VC++ client)

Challenge:

The Symantec Identity Suite Virtual Appliance is locked down from updating libraries as the ‘root’ user and the default login service ID of ‘config’ does not have access to the package installer, e.g. yum.

The Symantec Identity Suite Virtual Appliance like other tools, have an enhancement request process to add new functionality. While we wait for this to be delivered, we can address these gaps ourselves with knowledge of what X11 functionality is required to be enabled with the limited resources we have available to ourselves.

https://community.broadcom.com/participate/ideation-home/viewidea?IdeationKey=34adb887-a1c0-4d59-a977-4b65f4274425

To first identify what drivers may be needed, we can use the Linux OS “strace” command to capture which files are “open” or “openat” and used by the programs.

Example for tracing the files/drivers for Java (Oracle or AdoptOpenJDK) jconsole program:

STRACE

Using “strace -e trace=open,openat /opt/CA/java/bin/policytool” we can see the files that were found ” = 3″ versus those not found “= -1 ENOENT (No such file or directory)”. Some files are required for Centos 8 Stream and others for Centos 6.4

Using this iterative process above will help to identify either the primary file used or a supporting file required to start and use the UI version of the program.

We can use both Java jconsole or policytool to help identify the drivers required. There may be a different of drivers version or additional ones require for the OS of the virtual appliances.

Trace Example with Java Policytool program and compare between Centos 8 Stream (openat) and Centos 6.4 (open)

Now that we have a process to help identify the drivers required, we can walk through the challenges and the value statement.

First challenge for X11 access, is the DISPLAY environment variable must be defined. Otherwise we will see this error message: “No X11 DISPLAY variable

To address this challenge, we could manually set this value every time, but why not use our bash shell to manage this.

DISPLAY OS Variable

Add the below two (2) lines to config’s .bash_profile

DISPLAY=$(who -m | gawk -F'(' '{ print $2}' | gawk -F')' '{print $1}'):0.0;export DISPLAY
env | grep DISPLAY

Our DISPLAY variable will now be updated every time we log into the vApp with the config userID.

We should now see this:

When using the “strace” method, we may see that we have a file on the OS, but it is reporting it as not found due to an internal dependency.

Example for policytool, we can see that the file libXext.so.6 (or link) is not referenced correctly.

If we search the OS of the vApp, we can find this file (and its link) with no issue.

The file libXext.so.6 (or libXext.so.6.4.0) requires a supporting file of libX11.so.6 (libX11.so.6.3.0). As we search for these files, we can now start collecting them from nonVapp OS servers (that do have access to package updates), and make them available to the ‘config’ userID via scp/rsync.

On another server, that has these file (same OS release), find and copy these files.

After we have identified all the required files that are missing from the vApp r14.3 (Centos 6.4) or r14.4 (Centos 8 Stream), we can package them up for the ‘config’ userID and scp/rsync them to the vApp.

Soft Links

Before we use these files, we may need to validate that the soft-links are properly defined. If you have any issues, use strace to help identify the missing soft-link to the real file.

LD_LIBRARY_PATH

LD_LIBRARY_PATH is the OS variable we will use to redirect the libraries files (x86/x64) for the ‘config’ userID. Again edit the config’s .bash_profile and ensure the following lines exist:

#### ANA - Add X11 process & supporting libraries to vApp r14.3 config service ID ####
DISPLAY=$(who -m | gawk -F'(' '{ print $2}' | gawk -F')' '{print $1}'):0.0;export DISPLAY
env | grep -i DISPLAY

LD_LIBRARY_PATH=/tmp/x11_libraries_for_centos6_vapp143/usr/lib64:/tmp/x11_libraries_for_centos6_vapp143/usr/lib;export LD_LIBRARY_PATH
env | grep -i LD_LIBRARY_PATH
#### ANA - Add X11 process & supporting libraries to vApp config service ID ####

OR

#### ANA - Add X11 process & supporting libraries to vApp r14.4 config service ID ####
DISPLAY=$(who -m | gawk -F'(' '{ print $2}' | gawk -F')' '{print $1}'):0.0;export DISPLAY
env | grep -i DISPLAY

LD_LIBRARY_PATH=/tmp/x11_for_centos8_for_vapp144/usr/lib64:/tmp/x11_for_centos8_for_vapp144/usr/lib;export LD_LIBRARY_PATH
env | grep -i LD_LIBRARY_PATH
#### ANA - Add X11 process & supporting libraries to vApp config service ID ####

We should now see the following upon login:

Summary Page of X11 Functionality for vApp r14.3cp2 (Centos 6.4)

Centos 6.4 OS Files required for X11 functionality

/tmp/x11_libraries_for_centos6_vapp143/usr/lib64:
-rwxr-xr-x 1 config config   62176 Jun 18 15:04 libXi.so.6.1.0
-rwxr-xr-x 1 config config   38272 Jun 18 15:04 libXrender.so.1.3.0
-rwxr-xr-x 1 config config   21952 Jun 18 15:04 libXtst.so.6.1.0
-rwxrwxr-x 1 config config   74336 Jun 18 15:04 libXext.so.6.4.0
-rwxr-xr-x 1 config config 1297928 Jun 18 15:04 libX11.so.6.3.0
lrwxrwxrwx 1 config config      14 Jun 18 15:05 libXi.so.6 -> libXi.so.6.1.0
lrwxrwxrwx 1 config config      16 Jun 18 15:03 libXtst.so.6 -> libXtst.so.6.1.0
lrwxrwxrwx 1 config config      19 Jun 18 15:01 libXrender.so.1 -> libXrender.so.1.3.0
lrwxrwxrwx 1 config config      15 Jun 18 14:52 libX11.so.6 -> libX11.so.6.3.0
lrwxrwxrwx 1 config config      16 Jun 18 14:14 libXext.so.6 -> libXext.so.6.4.0

/tmp/x11_libraries_for_centos6_vapp143/usr/lib:
-rwxr-xr-x 1 config config   59180 Jun 18 15:04 libXi.so.6.1.0
-rwxr-xr-x 1 config config   20044 Jun 18 15:04 libXtst.so.6.1.0
-rwxrwxr-x 1 config config   68588 Jun 18 15:04 libXext.so.6.4.0
-rwxr-xr-x 1 config config 1279168 Jun 18 15:04 libX11.so.6.3.0
lrwxrwxrwx 1 config config      14 Jun 18 15:05 libXi.so.6 -> libXi.so.6.1.0
lrwxrwxrwx 1 config config      16 Jun 18 15:03 libXtst.so.6 -> libXtst.so.6.1.0
lrwxrwxrwx 1 config config      15 Jun 18 14:52 libX11.so.6 -> libX11.so.6.3.0
lrwxrwxrwx 1 config config      16 Jun 18 14:14 libXext.so.6 -> libXext.so.6.4.0

Summary Page of X11 Functionality for vApp r14.4 (Centos 8 Stream)

Centos 8 Stream’s OS Files required for X11 functionality

/tmp/x11_for_centos8_for_vapp144/usr/lib64:
-rwxrwxr-x 1 config config  170208 Jun 18 17:34 libxcb.so.1.1.0
-rwxr-xr-x 1 config config   49256 Jun 18 17:34 libXrender.so.1.3.0
-rwxr-xr-x 1 config config   29104 Jun 18 17:34 libXtst.so.6.1.0
-rwxr-xr-x 1 config config   80728 Jun 18 17:34 libXext.so.6.4.0
-rwxr-xr-x 1 config config   70720 Jun 18 17:34 libXi.so.6.1.0
-rwxr-xr-x 1 config config 1343952 Jun 18 17:34 libX11.so.6.3.0
-rwxr-xr-x 1 config config   16352 Jun 18 17:34 libXau.so.6.0.0
lrwxrwxrwx 1 config config      15 Jun 18 17:35 libXau.so.6 -> libXau.so.6.0.0
lrwxrwxrwx 1 config config      15 Jun 18 17:33 libxcb.so.1 -> libxcb.so.1.1.0
lrwxrwxrwx 1 config config      14 Jun 18 17:32 libXi.so.6 -> libXi.so.6.1.0
lrwxrwxrwx 1 config config      16 Jun 18 17:31 libXtst.so.6 -> libXtst.so.6.1.0
lrwxrwxrwx 1 config config      19 Jun 18 17:30 libXrender.so.1 -> libXrender.so.1.3.0
lrwxrwxrwx 1 config config      15 Jun 18 17:28 libX11.so.6 -> libX11.so.6.3.0
lrwxrwxrwx 1 config config      16 Jun 18 17:27 libXext.so.6 -> libXext.so.6.4.0

/tmp/x11_for_centos8_for_vapp144/usr/lib:
-rwxrwxr-x 1 config config  181952 Jun 18 17:34 libxcb.so.1.1.0
-rwxr-xr-x 1 config config   78200 Jun 18 17:34 libXi.so.6.1.0
-rwxr-xr-x 1 config config   87788 Jun 18 17:34 libXext.so.6.4.0
-rwxr-xr-x 1 config config   15700 Jun 18 17:34 libXau.so.6.0.0
-rwxr-xr-x 1 config config 1411660 Jun 18 17:34 libX11.so.6.3.0
lrwxrwxrwx 1 config config      15 Jun 18 17:28 libX11.so.6 -> libX11.so.6.3.0
lrwxrwxrwx 1 config config      16 Jun 18 17:27 libXext.so.6 -> libXext.so.6.4.0

Final Value Statement – X11 UI on vApp

Jxplorer

Script to add jxplorer on the vApp (if you have internet access to the vApp). This script will maintain the configuration file “connections.txt” where hostname/ports/userDN are stored for Jxplorer.

#!/bin/bash
##############################################
#  Name: add_jxplorer.sh
#  Goal: Add Jxplorer (jar) to vApp r14.4 (Centos 8 Stream) with X11 enabled
#  Ref: http://jxplorer.org/downloads/users.html
# ANA 2021
##############################################
cd
mkdir -p jxplorer;cd jxplorer
find . -type f -not -name 'connections.txt' -delete
curl -OL https://netactuate.dl.sourceforge.net/project/jxplorer/jxplorer/version%203.3.1.2/jxplorer-3.3.1.2-linux-installer.run
chmod 555 jxplorer-3.3.1.2-linux-installer.run; ./jxplorer-3.3.1.2-linux-installer.run --unattendedmodeui minimal --mode unattended
pwd
./jxplorer.sh >/dev/null &
echo "Done"

Wildfly / JBoss CLI X11 UI

Use for managing the standalone-full-ha.xml file via jboss-cli.sh scripts and to update values.

Ensure you have created a management user credential to access the running Wildfly/JBoss release.

config@vapp14401 VAPP-14.4.0 (192.168.2.210):~ > sudo /opt/CA/wildfly-idm/bin/add-user.sh -m -u jboss-admin -p Password01!
Added user 'jboss-admin' to file '/opt/CA/wildfly-idm/standalone/configuration/mgmt-users.properties'
Added user 'jboss-admin' to file '/opt/CA/wildfly-idm/domain/configuration/mgmt-users.properties'
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~ >
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~ > /opt/CA/wildfly-idm/bin/jboss-cli.sh   --connect  --user=jboss-admin  --password=Password01!  --gui

Next Steps

We can use the X11 functionality for the IM Workpoint Designer tool, the Connector Xpress (CX) UI tool, and any other tools, e.g. Symantec Layer7 Management UI (manager.jar)

Side Note:

The IM Workpoint Designer tool and other tools have been removed from the vApp r14.4 IAMSuite samples.

Installed IAMSuite tools only under config service ID, to determine if there is any value. Do not see any X11 client applications under this installed component.

Workpoint Designer

Extract the workpoint designer from the standalone deployment tools to a media folder.

Update the shell script files to be executable, replace the localhost entry for another host alias that will resolve to an IP address that the IM solution with Workpoint is actively listening to. Then run the designer from the virtual appliance.

config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media > unzip CA-IG_WorkpointDesigner.zip  > /dev/null
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media > cd CA-IG_WorkpointDesigner/Workpoint/WorkPointDesigner/bin/
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media/CA-IG_WorkpointDesigner/Workpoint/WorkPointDesigner/bin > chmod 555 *.sh
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media/CA-IG_WorkpointDesigner/Workpoint/WorkPointDesigner/bin > cp -r -p ../conf/workpoint-client.properties ../conf/workpoint-client.properties.org
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media/CA-IG_WorkpointDesigner/Workpoint/WorkPointDesigner/bin > sed -i 's|localhost|caim-srv|g' ../conf/workpoint-client.properties
config@vapp14401 VAPP-14.4.0 (192.168.2.210):~/media/CA-IG_WorkpointDesigner/Workpoint/WorkPointDesigner/bin > ./Designer.sh

Ref: https://techdocs.broadcom.com/us/en/symantec-security-software/identity-security/identity-manager/14-4/administrating/workflow/how-to-use-the-workpoint-method/configure-workpoint-administrative-tools.html

Connector Xpress

Connector Xpress only has a MS Windows installer, but we can still use this component on Linux OS. Install the CX UI on MS Windows, then zip up the installed folder with all sub-folders. Copy this compress file over to a media folder for the ‘config’ userID and extract the file.

Review the startup file of “ConnectorXpress.bat” and we will create a version for Linux OS. Copy the last line with the conxp.jar file to a new bash script file. Update the file path from MS Windows format, to Linux OS format.

We can now use CX UI from the vApp.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: