Sun ONE logo      Previous      Contents      Index      Next     

Sun ONE Instant Messaging Administrator's Guide

Chapter 2
Administering Instant Messaging Server and Multiplexor

This chapter explains how to administer Instant Messaging server and Multiplexor, and perform other administrative tasks, such as changing configuration parameters and managing user privileges. This chapter also lists the administrative tasks for Sun ONE Portal Server deployments.

This chapter contains the following sections:


Administering Instant Messaging an Overview

The administrative tasks in Instant Messaging are:

User Administration

Instant Messaging does not provide user provisioning tools. You need to use a directory provisioning tool for provisioning Instant Messaging users. Instant Messaging does not provide specific commands to add, modify, or delete Instant Messaging users.

Likewise in a standalone deployment, you cannot prevent a user from using Sun ONE Instant Messenger. In a standalone deployment, the only way to prevent users from using Instant Messaging is to delete them from the directory. In a portal deployment using the policy attributes, you can prevent a user from accessing Instant Messenger.

The administrator can manage Instant Messaging users, using the Instant Messaging Administrator Access Control mechanism. For more information on Instant Messaging Administrator Access Control, see Sun ONE Instant Messaging Access Control. In a portal deployment, Sun ONE Identity Server is used for provisioning Instant Messaging users. For more information, see Sun ONE Identity Server.


Caution

If you deny users the privilege to set up watches on other users by editing the sysWatch.acl file, the Sun ONE Instant Messenger’s Main window is not displayed for these users. This effectively denies the user the ability to send instant messages. However, users would still be able to see alerts and news channels.



Stopping and Starting the Server and Multiplexor (On Unix)

The imadmin command enables you to:

The imadmin command-line utility can be executed only by the user who has administration rights to the system(s) on which the Sun ONE Instant Messaging server and multiplexor are running. This user is typically the identity that the server runs as and is designated during installation:

The imadmin command-line utility is located in the following directory:

Starting the Sun ONE Instant Messaging server enables Sun ONE Instant Messenger to connect to it. Stopping the Instant Messaging server closes all connections and disconnects all the Instant Messengers.

If required, you can start and stop the multiplexor instance separately. For example, if you have changed a configuration parameter which only affects the multiplexor, or if you only have the multiplexor installed on a different host, you can start and stop the multiplexor instance separately.

To Start the Instant Messaging Server and Multiplexor

For a given instance, the configuration specifies whether only the multiplexor or only the server or both these components are enabled.

Use the imadmin command to start the Sun ONE Instant Messaging Server and/or multiplexor, depending on which component is enabled:

imadmin start

If both server and multiplexor are enabled, this command first starts the Instant Messaging server, and then starts the multiplexor.

To Stop the Instant Messaging Server and Multiplexor

Use the imadmin command to stop the Sun ONE Instant Messaging server and/or multiplexor, depending on which component is enabled.

imadmin stop

This command stops the server and the multiplexor, terminates all user connections, and disconnects any inbound and outbound servers configured.

To Refresh the Configuration (Instant Messaging Server and Multiplexor)

Use the imadmin command with the refresh parameter to refresh the server and/ or multiplexor configuration, as shown in the following example:

imadmin refresh

This command stops and restarts the enabled server and/or multiplexor components.


Note

Whenever you change a configuration parameter in the iim.conf file, make sure to refresh the configuration.


If necessary, you can stop, start or refresh the multiplexor or server only, regardless of which components are enabled in the configuration. To do this, use the multiplexor or server argument with the imadmin command.

To Start and Stop the Instant Messaging Server and Multiplexor (Windows Only)

On Windows, open the Services dialog box from the Control Panel to start and stop the Instant Messaging server and the multiplexor. For more instructions on starting and stopping services, refer to the documentation provided with the Windows operating system.


Changing Instant Messaging Server and Multiplexor Configuration Parameters

Instant Messaging stores configuration parameters in the iim.conf file. For a complete list of configuration parameters, see Instant Messaging Configuration Parameters.

To change configuration parameters, manually edit the configuration parameters and values in the iim.conf file, then refresh the Sun ONE Instant Messaging server configuration. If you change a multiplexor parameter, you only need to refresh the multiplexor using the following imadmin command:

imadmin refresh multiplexor

To Change Configuration Parameters

For a complete list of parameters and their values, see Instant Messaging Configuration Parameters.

To Change Configuration Parameters:

  1. Change to the config directory. For example, on Solaris type:
  2. cd /etc/opt/SUNWiim/default/config

  3. Edit the iim.conf file. For example:
  4. vi iim.conf

  5. Save your changes.
  6. Refresh the configuration.

  7. Caution

    If you change the multiplexor listen port (iim_mux.listenport) or the multiplexor host, update the im.html or the im.jnlp files accordingly. Failure to do so disables the Sun ONE Instant Messenger from connecting to the server. For more information, see the section on Managing Instant Messenger.



Managing Logging

Instant Messaging creates log files that record events, related status of various software components, system errors, and other aspects of the server and multiplexor. By examining the log files, you can monitor many aspects of the server’s operation.

You can configure the level of logging for both the Sun ONE Instant Messaging server and the multiplexor by specifying the parameters in the iim.conf file. For information on configuring the level of logging in the iim.conf file, see the section on To Change Configuration Parameters.

The location of the log files are specified during Instant Messaging installation.

As part of the regular Instant Messaging server system maintenance, you need to periodically review and trim the log files from occupying more disk space. The server does not perform this action.

Logging Levels

The level or priority of maintaining the error log defines how detailed, or verbose, the log should be. A higher priority level implies less details as only events of high priority (high severity) are recorded in the log file. In contrast a lower priority level implies greater details as more events are recorded in the log file.

You can set the logging level separately for the Instant Messaging server and the multiplexor.

Table 2-1 contains the logging levels for the Instant Messaging server and their description. These logging levels are a subset of the levels defined by the Unix syslog facility.

Table 2-1  Logging Levels for the Instant Messaging Server and the Multiplexor

Level

Description

FATAL

This priority level records minimum logging details in the log file. A log record is added to the log file whenever a severe problem or critical condition occurs. If a FATAL problem occurs, the application might stop functioning.

ERROR

A log record is added to the log file whenever a recoverable software error condition occurs or a network failure is detected. For example, when the server fails to connect to a client or to another server.

WARNING

A log record is added to the log file whenever a user error is detected. For example, when the server cannot understand the communication sent by the client.

NOTICE

A periodic event is written to the log file to report the status of the server. This includes state (running), the number of clients connected, and number of inbound and outbound servers connected.

INFO

A log record is added to the log file whenever a significant action takes place. For example, when a user successfully logs in or logs out.

DEBUG

The tasks are recorded in the log file. This information is useful for debugging purposes only. Each event with individual steps within each process or task are written to the log file, to help the user identify the problems while debugging the application.

When you select a particular logging level, events corresponding to that level and to all higher and less verbose levels are logged.

NOTICE is the default level for both the server and the multiplexor log files.


Note

If you specify DEBUG as the logging level, your log files will occupy more disk space. Monitor and trim your log files to prevent them from occupying more disk space.


To Set Log File Levels

The log file levels are set within the iim.conf file. The following are the two log file logging level options:

For more information on configuring Instant Messaging, see To Change Configuration Parameters.


Managing User Privileges

The Administrator can control user access to Instant Messaging information by restricting privileges to the user. These privileges determine if the user can add and delete news channels, send alerts, and setup watches on other users. These features provide the users the access to the required features and views in the Instant Messaging. All the Instant Messaging features are controlled by the privilege system that determines what a user can view or perform on Instant Messaging.

Sun ONE Instant Messaging provides the following access control mechanisms:

Global Access Control

Global access control provides all the users the privilege to access the following Instant Messaging features:

By default, the end user is provided the privileges to access the presence status of other users, send alerts to users, and save properties to the server. In most of the deployments, the default values need not be changed. These default values need to be changed when Instant Messaging is used exclusively for the popup functionality.


Note

Although certain privileges can be set globally, the administrator can also define exceptions for these privileges. For example, the administrator can deny certain default privileges to select users or groups.


The location of the global access control ACL files are:

Table 2-2 contains the global access control ACL files for Sun ONE Instant Messaging and the privileges these ACL files provide the users.

Table 2-2  Global Access Control ACL Files

ACL File

Privileges

sysSaveUserSettings.acl

The User Settings privilege enables the users to change their preferences in the User Settings dialog.

sysTopicsAdd.acl

The News Channel Creation privilege enables the users to create News channels.

sysRoomsAdd.acl

The Conference Room Creation privilege enables the users to create Conference rooms.

sysSendAlerts.acl

The Send Alert privilege enables the users to send alerts.

sysWatch.acl

The Watch privilege enables the users to watch changes on other users. The Sun ONE Messenger window is not displayed for users who do not have this privilege.

Conference Room and News Channel Access Controls

For each Conference room and News channel, you can define the default access the users can have. The access privileges the users can have on Conference rooms and News channels are:

Users with the MANAGE privilege can set the default privilege level for all the other users. They can also define the exception rules to grant an access level that is different from the default access level to specific users or groups.


Note

Setting the WRITE privilege, grants the users the READ privilege.


The conference room and news channel privileges are set through Sun ONE Instant Messenger. These files are updated automatically when you use Sun ONE Instant Messenger to manage conference rooms and news channels.

Table 2-3 lists the Conference room and News channel access control ACL files and the privileges that these files provide the users. These ACL files are located in the db/acls directory.

Table 2-3  Conference Room and News Channel Access Control ACL Files

ACL File

Privileges

roomname.acl

This file sets access privileges that the users can have on conference rooms.

news channelname.acl

This file sets access privileges that the users can have on news channels.

Presence Access Control

You can specify if other users can see your presence or not. By default, all users can see your presence status. You can also set exceptions for denying this access to certain users and groups.

If you have denied other users from accessing your presence status, then these users will see your availability status as offline in their contact lists. These users will not be able to send alerts or chat invitations to you, as your presence status is offline.

Presence access control can be configured using the User Settings window in the Instant Messenger. For more information on configuring presence access control, see Sun ONE Instant Messaging Online Help.

Instant Messaging Administrator Access Control

The Instant Messaging Administrator has access to all Instant Messaging features. The Administrator has MANAGE access to all conference rooms and news channels. They can also see the presence information of any user, view and modify properties such as Contact Lists and Instant Messenger Users Settings of any user. The global access control settings have no impact on the Administrator.

Table 2-4 lists the Administrator access control ACL file and the privileges this ACL file provides the Administrator. This ACL file is located in the config/acls directory:

Table 2-4  Administrator Access Control ACL File

ACL File

Privilege

sysAdmin.acl

This file sets administrative privileges to all Sun ONE Instant Messaging features for the users. This privilege overrides all the other privileges, and hence is reserved for the administrators.

Access Control File Format

The access control file contain a series of entries that define the privileges. Each entry starts with a tag as follows:

The tag is followed by a colon (:). In case of the default tag it is followed by true or false.

The user and group tags are followed by the user or group name.

Multiple users and groups are specified by having multiple users (u)and groups (g) in lines.

If default is set to true, all other entries in the file are redundant. If default is set to false, only the users and groups specified in the file will have that particular privilege.

The following are the default d: tag entries in the ACL files for a new installation:


Note

The format and also the existence of all the ACL files might undergo changes in the future release of the product.


Access Control File Examples

This section consist of sample ACL files that show privileges set at the system level, (sysTopicsAdd.acl) and at the conference room or news channel level (newschannel.acl).

sysTopicsAdd.acl File

In the following example, the default d: tag entry for sysTopicsAdd.acl file is false. So the Add and the Delete news channels privileges are available to the users and groups that appear before the default, namely user1, user2, and the sales group.

# Example sysTopicsAdd.acl file

u:user1

u:user2

g:sales

d:False

Room and News Channels ACL Files

The format of the roomname.acl and news channelname.acl files is slightly different from the system level ACL files. The roomname.acl and news channelname.acl files contain an additional number entry after the user or group entry that defines the access level. The access levels are:

In the following news channel ACL example, the default access is Read, with Manage access given to user1, Write access given to user2, and an access of None to user3.

# Example newschannel.acl file

v:3.0.1

u:user1:14

u:user2:6

u:user3:1

d:2


Note

The line v:3.0.1 in the newschannel.acl file, tells the server how to interpret the values. If this line is not included, the server will not be able to associate the value of 2 with Read access, and the value 6 with Write access.



Note

Do not edit the roomname.acl and news channelname.acl files manually. These files are updated automatically as you use Sun ONE Instant Messenger to manage conference rooms and news channels. Because Sun ONE Instant Messaging server reads and writes these files when the users change access using Sun ONE Instant Messenger, the users can lose their changes if the files are edited manually while the server is running.


Changing User Privileges

To change user privileges:

  1. Change to the config/acls directory. For example, on Solaris:
  2. cd /etc/opt/SUNWiim/default/config/acls

  3. Edit the appropriate ACL file. For example:
  4. vi sysTopicsAdd.acl

  5. Save the changes.
  6. Users need to refresh the Sun ONE Instant Messenger window to see the changes.


Federating Deployment of Multiple Instant Messaging Servers

When you federate multiple Sun ONE Instant Messaging deployments, you form a larger instant messaging community with multiple domains. Users in different domains can communicate with each other, use conference rooms on other domains, and subscribe to news channels on other domains based on the access privileges.

For enabling communication between multiple Sun ONE Instant Messaging servers in your network, you need to configure your server to identify itself to the other Instant Messaging servers in the network. The Instant Messaging server identifies itself with its domain name, host and port number, serverID, and password.

Within the server configuration, you can assign each Instant Messaging server a symbolic name, consisting of letters and digits, for example, IMserver1.


Caution

It is recommended that the server-to-server communication is secured using TLS (SSL). This is required to prevent third party infringement of security when data is exchanged between two servers. This precaution is extremely desirable in the case where the link between the two servers uses the public internet. Follow the instructions outlined below to configure SSL between Instant Messaging servers.


To Configure Communication Between Instant Messaging Servers

This procedure describes how to enable communication between two Instant Messaging servers, iim.company22.com and iim.i-zed.com.

  1. Gather the following information listed in Table 2-5.
  2. Table 2-5 lists the parameters in the iim.conf file for server-to-server communication and the values for these parameters in the Instant Messaging servers, iim.company22.com and iim.i-zed.com.

    Table 2-5  Configuration Information for Server-to-Server Communication

    Parameter in iim.conf File

    Value for Server iim.company22.com

    Value for Server iim.i-zed.com

    iim_server.serverid

    Iamcompany22

    Iami-zed

    iim_server.password

    secretforcompany22

    secret4i-zed

    iim_server.coservers

    coserver1

    coserver1

    iim_server.coserver1.host

    iim.i-zed.com:9919

    iim.company22.com:9919

    iim_server.coserver1.serverid

    Iami-zed

    Iamcompany22

    iim_server.coserver1.password

    secret4i-zed

    secretforcompany22

    For more information on the configuration parameters, see Instant Messaging Configuration Parameters.


    Note

    You can configure your server to communicate with other Instant Messaging servers. Each Instant Messaging server is identified by its symbolic name. The symbolic name of the server is added in the iim_server.coservers parameter in the iim.conf file. This parameter has multiple values and each value is separated by a comma.


  3. Change to the config directory on the server iim.company22.com. For example, on Solaris:
  4. cd /etc/opt/SUNWiim/default/config

  5. Edit the iim.conf file, for example:
  6. vi iim.conf


    Note

    The iim.conf file should be owned by the Instant Messaging server account you created during installation. If the iim.conf file cannot be read by the Instant Messaging server account, Instant Messaging server and multiplexor would be unable to read the configuration. Additionally, you might lose the ability to edit the iim.conf file.


    The following example shows the section of the iim.conf file on iim.company22.com corresponding to the server-to-server communications that you can modify:

    iim_server.serverid=Iamcompany22

    iim_server.password=secretforcompany22

    iim_server.coservers=coserver1

    iim_server.coserver1.host=iim.i-zed.com:9919

    iim_server.coserver1.serverid=Iami-zed

    iim_server.coserver1.password=secret4i-zed

  7. Follow Step 2 through Step 3 for the iim.conf file on server iim.i-zed.com.
  8. The following example shows the section of the iim.conf file on iim.i-zed.com corresponding to the server-to-server communications that you can modify:

    iim_server.serverid=Iami-zed

    iim_server.password=secret4i-zed

    iim_server.coservers=coserver1

    iim_server.coserver1.host=iim.company22.com:9919

    iim_server.coserver1.serverid=Iamcompany22

    iim_server.coserver1.password=secretforcompany22

  9. Save the changes and refresh the configurations on both servers.


Configuring SSL

This section describes how to set up the Secure Sockets Layer (SSL) security protocol for use between Sun ONE Instant Messaging servers. Before following the procedures in this section, become familiar with public-key cryptography concepts. See Appendix B in the Sun ONE Console and Administration Server 5.0 Management Guide for public-key cryptography concepts.

The high-level steps to configure SSL for Instant Messaging servers are:

  1. Generating a self-signed certificate.
  2. Generating a Certificate Signing Request.
  3. Sending a Certificate Signing Request to a Certificate Authority (CA) and getting back a signed certificate.
  4. Installing the Certificate on the Sun ONE Instant Messaging server, and the CA’s certificate on other servers. This means that you also have to install the other server’s CA certificate on your system.
  5. Activating SSL.

To configure SSL, Instant Messaging server requires a key file that contains the public and private key installed in a directory that you specify using the iim.conf parameter, iim_server.sslkeystore. In most of the installations these files are stored in the config directory.

To verify certificates Sun ONE Instant Messenger server uses the keys stored in the nlcacerts file in its Java install directory on Solaris, Javahome/lib/security/ and on Windows, Javahome\lib\security\.

You need to create the nlcacerts file by including the CA’s certificate into the file, if the CA is not in the nlcacerts file. The nlcacerts file can be located:

On Unix - Javahome/lib/security/cacerts

On Windows - Javahome\lib\security\cacerts.

The cacerts file is created by the Java install.

When enabling SSL for use with the Instant Messaging server, choose one of the following methods:

When enabling SSL for use with the Instant Messaging server remember that your Instant Messaging server is the “client” of the other servers, and therefore you might have to import the CA’s certificate for that server.

To Generate a Self-Signed Certificate

  1. Run the following command on the Sun ONE Instant Messaging server from its config directory. For example, on Solaris:
  2. Javahome/bin/keytool -genkey -alias iim -keypass value -keystore iimkeys -storepass value -validity 365

    Substitute your own values for value.

  3. When prompted, enter the information to create a distinguished name.
  4. This creates a keystore entry containing a private key and a self-signed certificate for the public key. The certificate is signed using the corresponding private key.


    Note

    If you are using the self-signed certificate for your Sun ONE Instant Messaging server, then this certificate is put in the nlcacerts file:

    On Unix - Javahome/lib/security/nlcacerts

    On Windows - Javahome\lib\security\nlcacerts).

    If you are using self-signed certificate, skip the section To Get Your Self-Signed Certificate Signed by a Certificate Authority and Install it.


To Get Your Self-Signed Certificate Signed by a Certificate Authority and Install it

Getting the Instant Messaging certificate signed by a Certificate Authority enables the other Sun ONE Instant Messaging servers to verify the Instant Messaging certificate. This occurs because the servers’ CA keystore (on Solaris, Javahome/lib/security/cacerts; on Windows, Javahome\lib\security\cacerts) already has the certificates from Verisign and Thawte Certificate Authorities.

Follow these steps to send the certificate information to the CA and install it:

  1. Generate a Certificate Signing Request (CSR) to send to a Certificate Authority (CA). For example, on Solaris:
  2. Javahome/bin/keytool -certreq -keystore iimkeys -alias iim -file iim.csr

  3. Submit the iim.csr file to your chosen CA.
  4. You can email your iim.csr file, or cut and paste it in a browser window, if the CA, such as Thawte, allows it.


    Note

    Once you have emailed your request, you must wait for the CA to assign you with your certificate. The response time for your certificate request varies. For example, if your CA is internal to your company, it might only take a day or two to respond to your request. If your selected CA is external to your company, it could take several weeks to respond to your request.


  5. When the CA sends a response, be sure to save the information in a text file. For example, a file named careplyfile. You will need the data when you install the certificate.
  6. You should also back up the certificate data in a safe location. If your system ever loses the certificate data, you can reinstall the certificate using your backup file.

    Once you receive your certificate, you are ready to install it in your Sun ONE Instant Messaging server’s certificate database.

  7. Import the Certificate Reply from the CA.
  8. This might require that you import the certificate of the CA that signed your certificate first as a “trusted certificate.”


    Caution

    Ensure that the CA’s certificate is valid prior to importing it as a “trusted” certificate. View it first (by using the keytool -printcert command or the keytool -import command without the -noprompt option), and make sure that the displayed certificate fingerprints match the expected ones. You can contact the person who sent the certificate and compare the fingerprints that you see with the ones that the certificate show or that a secure public key repository shows. Only if the fingerprints match is it guaranteed that the certificate has not been replaced in transit with someone else’s (for example, an attacker’s) certificate.


    If you trust that the certificate is valid, you can add it to your keystore.

    Assuming the CA’s certificate is in a file called myfavca.cert, run the following command on the Sun ONE Instant Messaging server in the config directory.

    keytool -import -alias myfavca -file myfavca.cert -keystore iimkeys

    Then import your new certificate on the Sun ONE Instant Messaging server to replace your self-signed certificate. Run this command on the Sun ONE Instant Messaging server in the config directory:

    keytool -import -trustcacerts -keystore iimkeys -alias iim -file careplyfile

  9. Your server is now ready for SSL activation. See To Activate SSL For Server To Server Communication.

To Export a Public Key Certificate and Import it on other Instant Messaging Servers

The cacerts file is used by Java to verify code signing but can also be used for SSL. The following is the location of the cacerts file:

On Unix- Javahome/lib/security/cacerts

On Windows - Javahome\lib\security\cacerts

If the nlcacerts file exists then that will be used by the Sun ONE Instant Messaging server. The following is the location of the nlcacerts file:

On Unix - Javahome/lib/security/nlcacerts

On Windows - Javahome\lib\security\nlcacerts

Use this procedure if you are using a self-signed certificate or a certificate that is signed by a CA that is not in the default trusted CA keystore:

  1. Export the Public Key Certificate.
  2. If you are self-signed, export your self-signed certificate. For example, run the following command on the Sun ONE Instant Messaging server, in the config directory:

    keytool -export -keystore iimkeys -alias iim -file export.cert

    If your certificate is signed by a CA not in the existing cacerts file on the other server, then export your signing CA’s certificate to the other server. For example, run the following command on the Instant Messaging server, in the config directory:

    keytool -export -keystore iimkeys -alias myfavca -file export.cert

    Then copy the export.cert file to the other server, in the Javahome/lib/security directory.

  3. Import the Public Key Certificate as trusted on every other Sun ONE Instant Messaging server that will talk SSL to this server. To import Public Key Certificate create the Javahome/lib/security/nlcacerts file with the command:
  4. keytool -import -keystore nlcacerts -alias iimca -file export.cert

    Enter a password when prompted.

    For more information see the complete documentation for keytool at:

    http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/keytool.html

    http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html

  5. Your server is now ready for SSL activation. See To Activate SSL For Server To Server Communication.

To Activate SSL For Server To Server Communication

Before you can activate SSL, you must create a certificate database, obtain and install a server certificate, and trust the CA’s certificate as described earlier.

  1. Set these iim.conf parameters:
    • iim_server.usesslport=true
    • iim_server.sslport=9910
    • These parameters should already be in the iim.conf file.

  2. Set the server-to-server configurations as described in Federating Deployment of Multiple Instant Messaging Servers, and add the following:
    • iim_server.coserver1.usessl=true
    • Change the port number of the following:

    • iim_server.coserver1.host=hostname:9910
    • The port number should be the SSL port of the other server.

      Following is a section of iim.conf file with the required SSL configuration:

      ! Server to server communication port.

      iim_server.port = "49919”

      ! Should the server listen on the server to server communication port

      iim_server.useport = "True”

      ! Should this server listen for server-to-server communication using ssl port

      iim_server.usesslport = "True”

      iim_server.sslport=49910

      iim_server.sslkeystore=/opt/SUNWiim/config/iimkeys

      iim_server.sslkeystorepassphrase=somepassword

      iim_server.coservers=coserver1

      iim_server.coserver1.serverid=Iamcompany22

      iim_server.coserver1.password=secretforcompany22

      iim_server.coserver1.usessl=true

      iim_server.coserver1.host=iim.i-zed.com:49910

      iim_server.serverid=Iami-zed

      iim_server.password=secret4i-zed


Configuring SSL between Sun ONE Instant Messenger and Multiplexor

Instant Messenger communicates with the multiplexor component of the server. For a secured connection between the Instant Messaging server and the Instant Messenger, you need to configure SSL between Sun ONE Instant Messenger and the multiplexor.


Note

The Instant Messaging server implements SSL differently when compared to the multiplexor. For this reason the steps to configure SSL in multiplexor is enumerated in this section separately.


The following are the steps necessary to configure SSL between Sun ONE Instant Messenger and Multiplexor:

Requesting a Certificate From The Certificate Authority

To enable SSL between Instant Messenger and multiplexor, you need to install the certificate and create databases for secure communication. You can request and install the certificate using Sun ONE Web Server Enterprise Edition.

To request and install a certificate using Sun ONE Web Server Enterprise Edition:

  1. Type the following URL for starting the administration server in your browser:
  2. http://hostname.domain-name:administration_port

    Sun ONE Web Server then displays a window prompting you for a user name and password.

  3. Type the administration user name and password you specified during the Web Server installation.
  4. Sun ONE Web Server displays the Administration Server page.

  5. Create a separate Web Server instance. For more information on installing multiple instances of the server, see Installing Multiple Instances of the Server in Sun ONE Web Server, Enterprise Edition Administrator's Guide at:
  6. http://docs.sun.com/source/816-5682-10/esgstart.htm#1003083

  7. Create a trust database to store the public and private keys, referred as the key-pair file. The key-pair file is used for SSL encryption.
  8. For information on creating a trust database, see Creating a Trust Database in Sun ONE Web Server, Enterprise Edition Administrator's Guide at:

    http://docs.sun.com/source/816-5682-10/esecurty.htm#1004127

  9. Request a certificate from the Certificate Authority.
  10. For more information on requesting a certificate, see Requesting and Installing Other Server Certificates in Sun ONE Web Server, Enterprise Edition Administrator's Guide at:

    http://docs.sun.com/source/816-5682-10/esecurty.htm#1004981

Installing the Certificate

When you receive the server certificate from your Certificate Authority, you need to install the certificate.

To install the certificate:

  1. Type the following URL for starting the administration server in your browser:
  2. http://hostname.domain-name:administration_port

    Sun ONE Web Server then displays a window prompting you for a user name and password.

  3. Type the administration user name and password you specified during the Web Server installation.
  4. Sun ONE Web Server displays the Administration Server page.

  5. Install the server certificate.
  6. For more information on installing the certificate, see Requesting and Installing Other Server Certificates in Sun ONE Web Server, Enterprise Edition Administrator's Guide at:

    http://docs.sun.com/source/816-5682-10/esecurty.htm#1004981

  7. Change to your Web Server alias directory.
  8. Copy the database files from your Web Server alias directory to the Instant Messenger config directory.
  9. To copy the database files from Web Server alias directory to the Instant Messenger config directory, type the following:

    cp https-serverid-hostname-cert7.db /etc/opt/SUNWiim/default/config/cert7.db

    cp https-serverid-hostname-key3.db /etc/opt/SUNWiim/default/config/key3.db

    cp secmod.db /etc/opt/SUNWiim/default/config/secmod.db


    Note

    The user on which the Instant Messaging server runs should have Read permission on cert7.db, key3.db,and secmod.db files.


  10. Change to your Instant Messaging config directory.
  11. cd /etc/opt/SUNWiim/default/config

  12. Create the sslpassword.conf file. Type:
  13. vi sslpassword.conf

  14. Enter the following line to the sslpassword.conf file.
  15. Internal (software) Token:password

    Password: The password specified during the creation of the trust database.

  16. Save the file.

    Note

    All Instant Messenger users should have Ownership and Read permission on the sslpassword.conf file.


  17. After verifying the functioning of SSL, log in to Sun ONE Web Server as an administrator and remove the web server instance that you have created while requesting the certificate.

Configuring the Instant Messaging server to enable SSL between the Multiplexor and the Instant Messenger

Table 2-6 lists the parameters in the iim.conf file for enabling SSL between Sun ONE Instant Messenger and multiplexor. It also contains the description and the default value of these parameters:

Table 2-6  Configuration Information for enabling SSL between Sun ONE Instant Messenger and Multiplexor

Parameter

Default Value

Description

iim_mux.usessl

off

If the value is set to “on”, the multiplexor requires an SSL handshake for each connection it accepts, before exchanging any application data.

iim_mux.secconfigdir

/etc/opt/SUNWiim/default/config

This directory contains the key and certificate databases. It usually contains the security module database.

iim_mux.keydbprefix

None

This value should contain the key database filename prefix. The key database file name must always end with key3.db.

If the Key database contains a prefix, for example This-Database-key3.db, then value of this parameter is This-Database.

iim_mux.certdbprefix

None

This value should contain the certificate database filename prefix. The certificate database file name must always end with cert7.db.

If the certificate database contains a prefix, for example Secret-stuff-cert7.db, then value of this parameter is Secret-stuff.

iim_mux.secmodfile

secmod.db

This value should contain the name of the security module file.

iim_mux.certnickname

Server-Cert

This value should contain the name of the certificate you entered while installing the certificate.

The certificate name is case-sensitive.

iim_mux.keystorepasswordfile

sslpassword.conf

This value should contain the relative path and the name of the file containing the password for the key database. This file should contain the following line:

Internal (software) Token:password

Where password is the password protecting the key database.

To enable SSL between Sun ONE Instant Messenger and Multiplexor:

  1. Change to the config directory. For example, on Solaris:
  2. cd /etc/opt/SUNWiim/default/config

  3. Edit the iim.conf file, for example:
  4. vi iim.conf

  5. Add the values mentioned in the Table 2-6 to the Multiplexor configuration parameters.
  6. The following is an example of the iim.conf file with the Multiplexor configuration parameters:

    ! IIM multiplexor configuration

    ! =============================

    !

    ! Multiplexor specific options

    ! IP address and listening port for the multiplexor.

    ! WARNING: If this value is changed, the port value of ’-server’ argument

    ! in the client’s im.html and im.jnlp files should also be changed to match th

    is.

    iim_mux.listenport = "siroe.com:49909"

    ! The IM server and port the multiplexor talks to.

    iim_mux.serverport = "siroe.com:49999"

    ! Number of instances of the multiplexor.

    iim_mux.numinstances = "1"

    ! Maximum number of threads per instance

    iim_mux.maxthreads = "10"

    ! Maximum number of concurrent connections per multiplexor process

    iim_mux.maxsessions = "1000"

    iim_mux.usessl = "on"

    iim_mux.secconfigdir = "/etc/opt/SUNWiim/default/config"

    iim_mux.keydbprefix = "This-Database"

    iim_mux.certdbprefix = "Secret-stuff"

    iim_mux.secmodfile = "secmod.db"

    iim_mux.certnickname = "Server_Cert"

    iim_mux.keystorepasswordfile = "sslpassword.conf"

Invoking The Secure Version Of Instant Messenger

The secure version of Instant Messenger can be invoked by accessing the imssl.html file or imssl.jnlp file from your browser. These files are located under imdocroot, the base directory under which all the messenger resources are stored.

The links to these applet descriptor files can also be added to index.html file.


Managing Sun ONE Instant Messaging's LDAP Configuration

A standalone deployment of Instant Messaging requires a directory server. In a standalone deployment, the Instant Messaging server uses the directory server to perform user authentication and to search for users.

In a portal deployment, Instant Messaging Server uses the directory used by Sun ONE Portal Server. When installed in a portal deployment environment, Instant Messaging server uses that directory used by the Portal Server to search for users, and not for user authentication. In a portal deployment, Sun ONE Portal Server performs the authentication.

If you use an LDAP directory to maintain your user namespace, the default configuration makes the following assumptions regarding the schema used by this directory:

You can change these default settings by editing the iim.conf file.

Searching the Directory as Anonymous Users

Instant Messaging needs to be able to search the directory to function correctly. If your directory is configured to be searchable by anonymous users, Instant Messaging has the capability to search the directory. If the directory is not readable by anonymous users, you must take additional steps to configure the iim.conf file with the credentials of a user ID that has at least read access to the directory.

These credentials consist of:

To Enable Instant Messaging server to Conduct Directory Searches as a Specific User (Not Anonymous)

  1. Identify values for the following parameters in the iim.conf file:
    • iim_ldap.usergroupbinddn - Specifies the distinguished name (dn) to use to bind to the directory for searches.
    • iim_ldap.usergroupbindcred - Specifies the password to use with the distinguished name (dn)
  1. In a portal deployment, the directory is in general not accessible by anonymous users. In a portal deployment, the following values are added to the iim.conf file:
    • iim_ldap.usergroupbinddn= "bind dn"
    • iim_ldap.usergroupbindcred= ldap credentials/password
    • where:

      bind dn

      Specifies the value of the distinguished name (dn) the super user has to use bind to the directory from the

      AMSERVER_BASEDIR/SUNWam/lib/AMConfig.properties file.

      ldap credentials/password

      The password will be taken from the package parameters.


      Note

      You do not have to use administrator-level credentials with write level access, as all that is necessary is read access to the domain tree. Thus, if there is an LDAP user with read level access, use its credentials instead. This is a safer alternative as it does not force you to disseminate the administrator-level credentials.


  2. Edit the iim.conf file.
  3. For instructions on editing the iim.conf file, see To Change Configuration Parameters.

    If the iim_ldap.usergroupbinddn and iim_ldap.usergroupbindcred parameters do not appear in the iim.conf file, you can add them anywhere in the file.

Configuring Dynamic LDAP Server Group

In the LDAP Server, the dynamic groups filter users based on their DN and include them in a single group. The dynamic groups are defined in Sun ONE Directory Server as the memberOfUrls objectclass.

To enable the users to view the dynamic groups in search results and add them to their contact list, you need to include the memberOfUrls objects to the group search filters in the contact list.

The following modifications need to be made to the server configuration file iim.conf:

  1. Change to the config directory. For example, on Solaris:
  2. cd /etc/opt/SUNWiim/default/config

  3. Edit the iim.conf file. For example:
  4. vi iim.conf

  5. Add the following information to the iim.conf file:

    iim_ldap.usergroupbynamesearchfilter=(|(&(|(objectclass=groupofu niquenames)(objectclass=groupofurls)))(cn={0}))(&(objectclass=in etorgperson)(cn={0})))

    iim_ldap.groupbrowsefilter=(|(objectclass=groupofuniquenames)(ob jectclass=groupofurls))

    iim_ldap.groupclass=groupOfUniqueNames,groupOfURLs

The attribute and objectclass names are configurable. The membership attribute of a dynamic group which contains the LDAP filter or LDAP URL, can be specified using the iim_ldap.groupmemberurlattr option.


Displaying Calendar Reminders and Notifications as Instant Messenger Popups

You can configure the Instant Messenger to display calendar reminders and notifications as Instant Messenger popups if you have deployed Sun ONE Calendar Server and Sun ONE Instant Messaging server. The calendar notifications that are formatted as text/xml or text/calendar are parsed by Instant Messaging and are displayed as popups in Instant Messenger.

To access only the popup feature the calendar users can use the “POPUP” Messenger Flavor instead of using the full Instant Messenger capability. For more information on setting the Messenger Flavor, see Controlling The Exposed Messenger Feature Set.


Note

As Single Sign-on is not provided between Sun ONE Calendar Server and Sun ONE Instant Messaging, the user has to authenticate separately on both these services. You need not reauthenticate if these services are deployed in a portal environment.


Figure 2-1  Instant Messenger Pop-up Architecture.

Instant Messenger Pop-up Architecture.

The Instant Messenger popups architecture for displaying calendar reminders and notifications as can be explained as follows:

  1. Java Messaging Service (also referred as JMS) Subscriber subscribes for the calendar events to the Calendar Event Notification Server (ENS).
  2. Calendar Server publishes events or notification to the Event Notification Server (ENS).
  3. The JMS Subscriber receives these reminders and events as messages from the Calendar Event Notification Server (ENS).
  4. From these messages the JMS Subscriber generates text or calendar Instant Messaging messages.
  5. If the owner of the calendar is online, the server sends these Instant Messaging messages to the owner.

  6. The text/calendar message handler in the Instant Messenger generates the HTML alerts based on the content of these messages that is parsed by the Instant Messaging server.

Displaying calendar reminders and notifications as Instant Messenger popups contain the following components:

JMS Message Listener or Subscriber. This module implements the JMS javax.jms.MessageListener interface. For each JMS message received, it builds Instant Messaging notification (alert) message. The following server configuration and contents of incoming JMS messages is used:

Text/Calendar Message Handler. This module is a Messenger Bean defined by the Messenger Bean specification. It intercepts all Instant Messaging messages or message type. For each message it intercepts, it generates an HTML alert and displays this alert in the Instant Messenger. It uses the following attributes of the incoming Instant Message to convert it to an HTML alert:

Configuring Calendar Server for Displaying Calendar Reminders and Notifications as Instant Messenger popups

The following needs to be configured in the Calendar Server for displaying calendar reminders and notifications as Instant Messenger popups:

Enabling Alarms

Alarms need to be enabled in the Calendar server and the Calendar Event Notification Server (ENS) needs to be configured to send and receive alarm notifications.

Code Example 2-1 shows the values for alarm configuration parameters in the file ics.conf in the directory calserver-root/cal/bin/config/.

Code Example 2-1  Alarm configuration parameters in the file ics.conf.

caldb.serveralarms = yes

caldb.serveralarms.dispatch = yes

caldb.serveralarms.dispatchtype = ens

A custom alarm URL must be defined in the ics.conf file to enable text/xml or text/calendar formatted notifications.

Code Example 2-2 shows an example of the custom alarm URL and content type defined in the file ics.conf.

Code Example 2-2  Custom alarm URL defined in the file ics.conf.

caldb.serveralarms.url = enp:///ics/customalarm

caldb.serveralarms.contenttype = text/calendar

Configuring Instant Messaging Server for Displaying Calendar Reminders and Notifications as Instant Messenger Popups

The Instant Messaging server has to be configured for displaying calendar reminders and notifications as Instant Messenger popups. The JMS client in Instant Messaging server needs to be provided with the instructions on how to communicate to the ENS broker as the Calendar Server uses the Event Notification Server (ENS) as a JMS Bus.This is performed using the server configuration options in the file iim.conf.

Table 2-7 shows the server configuration options in the file iim.conf and their description.

Table 2-7  The Server Configuration Options in the file iim.conf and their description.

Option

Description

jms.consumers

This option contains the list of consumers identifiers separated by comma. Each consumers identifier is used to build option names whose values describe a specific consumer.

jms.providers

This option contains the list of JMS provider identifiers separated by comma. Each identifier is associated with a JMS provider and used in option names whose values describe the provider

jms.consumer.consumer.provider

Identifier of the JMS provider is associated with the JMS consumer module called consumer. Consumer is replaced by an actual consumer identifier specified in the option iim.jms.consumers.

jms.consumer.consumer.name

This option contains JMS topic or queue name associated with consumer consumer.

jms.consumer.consumer.type

This option contains the JMS consumer consumer type. It may contain the following values:

  • topic for JMS Topic subscription or
  • queue for JMS queue bindings.

The default value is topic.

jms.consumer.consumer.factory

Using JMSMessageListenerFactory a Message Listener for consumer consumer can be instantiated and registered as a JMS callback.

jms.consumer.consumer.param

This option contains a free-form ascii string which is made available to the Message Listener. The string may contain additional information needed to process the incoming JMS messages that is specific to the consumer.

jms.provider.provider.broker

This option contains the JMS broker host and port used while initializing the JMS provider provider.

jms.provider.provider.factory

This option contains the ConnectionFactory class name for the provider

Code Example 2-3 shows the JMS provider definition that is to be provided in the file iim.conf.

Code Example 2-3  JMS Provider definition in the file iim.conf.

jms.providers = ens

jms.provider.ens.broker = ical.example.com:7997

jms.provider.ens.factory = com.iplanet.ens.jms.ENSConnectionFactory

Code Example 2-4 contains JMS consumers definition for the calendar in the file iim.conf.

Code Example 2-4  JMS consumers definition for the calendar.

jms.consumers = calendar [,...]

Code Example 2-5 contains the JMS consumer type and the JMS provider for the Calendar Server in the file iim.conf.

Code Example 2-5  JMS consumer type and the JMS provider for the Calendar Server.

jms.consumer.calendar.type = topic

jms.consumer.calendar.provider = ens

Code Example 2-6 contains the JMS consumer topic name for the Calendar Server in the file iim.conf file.

Code Example 2-6  JMS consumer topic name for the Calendar Server

jms.consumer.calendar.topic = enp:///ics/customalarm

Additional parameters need to be added to build the Instant Messenger message. The jms.consumer.consumer.param option is used for building the message. Calendar Server message listener uses a list of parameters in the following URL style:

params := param "=" value *("&" param "=" value)

param := URL-ENCODED

value := URL-ENCODED

The following parameters are supported by the Calendar Server message listener:

Table 2-8 contains the values for the parameter eventtype and their description.

Table 2-8  Values for the parameter eventtype and their description.

eventtype Value

Description

calendar.alarm.event

This value contains the event reminder.

calendar.alarm.todo

This value contains the task reminder.

calendar.alarm

This value contains both the event and the task reminder. The event or the task nature is determined from comptype URL parameter.

calendar.notification.new.event

This value contains the event creation notification.

calendar.notification.new.todo

This value contains the task creation notification

calendar.notification.new

This value contains the component creation notification. The event or task nature is determined from the comptype URL parameter.

calendar.notification.mod.event

This value contains the event modification notification.

calendar.notification.mod.todo

This value contains the task modification notification.

calendar.notification.mod

This value contains the component modification notification. The event or the task nature is determined from the comptype URL parameter.

calendar.notification.del.event

This value contains the subject to be used for event deletion notification.

calendar.notification.del.todo

This value contains the subject to be used for task deletion notification.

calendar.notification.del

This value contains component deletion notification. The event or the task nature is determined from the comptype URL parameter.

The following example shows jms.consumer.calendar.param option with the parameters eventtype and originator:

jms.consumer.calendar.param = eventtype=calendar.alarm&originator=ical

Example for Displaying Calendar Reminders and Notifications as Instant Messenger Popups

In this example, lets assume Sun ONE Calender Server 5.1.1 is installed on cal.example.com and Sun ONE Instant Messaging server 6.0 is installed on im.example.com. After configuring the Calendar Server and Instant Messaging server the Instant Messaging users should be able to receive reminders for calendar events and tasks.

Configuring Calendar Server

Ensure that you have installed Sun ONE calendar server with the latest patch. Based on the assumption that Calendar is installed on cal.example.com and Instant Messaging is installed on im.example.com, the following are the options that needs to be configured in the file ics.conf:

caldb.serveralarms = "yes"

caldb.serveralarms.contenttype = "text/xml"

caldb.serveralarms.dispatch = "yes"

caldb.serveralarms.dispatchtype = "ens"

caldb.serveralarms.url = "enp:///ics/customalarm"

If the configuration changes are made, restart the calendar server with the following commands:

stop-cal

start-cal

Configuring Instant Messaging Server

The following options needs to be configured in the file iim.conf:

! JMS Consumers

jms.consumers=cal_reminder

jms.consumer.cal_reminder.destination=enp:///ics/customalarm

jms.consumer.cal_reminder.provider=ens

jms.consumer.cal_reminder.type=topic

jms.consumer.cal_reminder.param="eventtype=calendar.alarm"

jms.consumer.cal_reminder.factory=com.iplanet.im.server.JMSCalen darMessageListener

! JMS providers

jms.providers=ens

jms.provider.ens.broker=cal.example.com:7997

jms.provider.ens.factory=com.iplanet.ens.jms.EnsTopicConnFactory

After configuring the Instant Messaging server, restart the server with the following command:

/opt/SUNWiim/sbin/imadmin refresh

Enabling Calendar Alerts in Instant Messenger

To enable the Calendar alert in Sun ONE Instant Messenger:

  1. Click Settings icon in the Main window or select Settings from the Tools menu to display the User Settings window.
  2. Select the Alerts tab, and check “Enable calendar alerts” options.

Troubleshooting Display Calendar Reminders and Notifications as Instant Messenger Popups

If calendar alerts are not displayed, follow the steps outlined below to troubleshoot the problem.

  1. Check whether the reminder was generated. The best way to do this is to check if the email reminder was received.
  2. Does the Instant Messaging server receive reminders from the Calendar Server (ENS). Check the Instant Messaging server log file to see whether any data is received from calendar. In the log file, look for records which have CalendarReminder in them. Change the log severity in the server (iim.log.iim_server.severity) to debug in order to gather this information. If you observe that the log file has not logged in any reminders it means that the Instant Messaging server has not received any reminders from the Calendar Server. This may have occurred due to a problem in connecting with ENS or a mismatch between ENS event references used by Calendar and Instant Messaging (enp:///ics/customalarm in the example above).
  3. If calendar reminders are logged in to the log file but the events and tasks are not displayed on the Instant Messenger then move to the next step.

  4. Instant Messenger may have received the calendar alert but is unable to display it. More information on this problem can be obtained by enabling the Java console. For more information on the debug applet parameter, set the value of the parameter to true in the applet page im[ssl].html or im[ssl].jnlp or jnlpLaunch.jsp or pluginLaunch.jsp.


Taking a Back Up of Instant Messaging Data

Instant Messaging does not come with any disaster recovery tools. Use your site’s backup system to backup the configuration and database directories periodically.

Backup Information

The Instant Messaging information that needs to be backed up are of the following types:

The configuration information is stored in the following directories:

The Instant Messaging user data is stored in the following directories:

Performing Backup

While the configuration information does not change frequently, the Instant Messaging user data changes rapidly and to prevent any loss of user data it is recommended that the Instant Messaging user data is backed up on a periodic basis. Backup needs to be performed before running the installation program and the uninstallation program.

To backup the user data and the configuration information you do not have to stop the Instant Messaging server as all the disk commits by the server are automatically performed.

Restoring the Back Up Information

The back up of the user data and the configuration information needs to be restored when there is a disk failure and all the user data and the configuration information is lost.

To restore the backed up user data:

  1. Change to the runtime directory. For example:
  2. cd $runtimedir

  3. Grant read-only permission to the db directory, type:
  4. chmod -R 400 db

  5. Stop the Instant Messaging server, type:
  6. imadmin stop

  7. Grant Write permission on the user data files for the server user, type:
  8. chmod -R 600 $runtimedir/db/.

  9. To restore the data, copy the backed up data to the db directory.
  10. Start the Instant Messaging server, type:
  11. imadmin start



Previous      Contents      Index      Next     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.