Sun Java System Portal Server 6 2004Q2 Secure Remote Access Administration Guide |
Chapter 2
The GatewayThis chapter describes Gateway related concepts and information required for the smooth running of the Gateway. For information on configuring the Gateway, see Chapter 9, "Configuring the Gateway".
This chapter covers the following topics:
Overview of the GatewayThe Gateway provides the interface and security barrier between remote user sessions originating from the Internet and your corporate intranet. The Gateway presents content securely from internal web servers and application servers through a single interface to a remote user.
Creating a Gateway ProfileA gateway profile contains all the information related to gateway configuration, such as the port on which the Gateway listens, SSL options, and proxy options.
When you install a Gateway, if you choose the default values, a default gateway profile called "default" is created. A configuration file corresponding to the default profile exists at:
/etc/opt/SUNWps/platform.conf.default
where /etc/opt/SUNWps is the default location for all the platform.conf.* files.
See Understanding the platform.conf File for more information on the contents of the platform.conf file.
You can:
- Create multiple profiles, define attributes for each profile, and assign these profiles to different Gateways as required.
- Assign a single profile to Gateway installations on different machines.
- Assign different profiles to instances of a single Gateway running on the same machine.
To Create a Gateway Profile
- Log in to the Sun Java System Identity Server administration console as administrator.
- Select the Service Configuration tab.
- Click the arrow next to Gateway under SRA Configuration.
The Gateway page displays in the right pane.
- Click New.
The Create New Gateway Profile page displays.
- Enter the name of new gateway profile.
- Select the profile to use for creating the new profile from the drop-down list.
By default, any new profile that you create is based on the pre-packaged default profile. If you have created a custom profile, you can select that profile from the drop-down list. The new profile inherits all the attributes of the selected profile.
- Click Create.
The new profile is created you are returned to the Gateway page, where the new profile is listed.
- Restart the Gateway with this gateway profile name if you want the changes to take effect:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
To configure the Gateway, see Chapter 9, "Configuring the Gateway".
Understanding the platform.conf FileThe platform.conf file is located by default at:
/etc/opt/SUNWps
The platform.conf file contains the details that the Gateway needs. This section provides a sample platform.conf file and describes all the entries.
The advantage of including all the machine-specific details in the configuration file is that a common profile can be shared by Gateways running on multiple machines.
Here is a sample:
#
# Copyright 11/28/00 Sun Microsystems, Inc. All Rights Reserved.
# "@(#)platform.conf 1.38 00/11/28 Sun Microsystems"
#
gateway.user=noaccess
gateway.jdk.dir=/usr/java_1.3.1_06
gateway.dsame.agent=http://pserv2.iportal.com:8080/sunportal/RemoteConfigS ervlet
portal.server.protocol=http
portal.server.host=pserv2.iportal.com
portal.server.port=8080
gateway.protocol=https
gateway.host=siroe.india.sun.com
gateway.port=333
gateway.trust_all_server_certs=true
gateway.trust_all_server_cert_domains=false
gateway.virtualhost=siroe1.india.sun.com 10.13.147.81
gateway.virtualhost.defaultOrg=o=root,dc=test,dc=com
gateway.notification.url=/notification
gateway.retries=6
gateway.debug=error
gateway.debug.dir=/var/opt/SUNWps/debug
gateway.logdelimiter=&&
gateway.external.ip=10.12.147.71
gateway.certdir=/etc/opt/SUNWps/cert/portal
gateway.allow.client.caching=true
gateway.userProfile.cacheSize=1024
gateway.userProfile.cacheSleepTime=60000
gateway.userProfile.cacheCleanupTime=300000
gateway.bindipaddress=10.12.147.71
gateway.sockretries=3
gateway.enable.accelerator=false
gateway.enable.customurl=false
gateway.httpurl=http://siroe.india.sun.com
gateway.httpsurl=https://siroe.india.sun.com
gateway.favicon=https://siroe.india.sun.com
gateway.logging.password=ALKJDF123SFLKJJSDFU
portal.server.instance=
gateway.cdm.cacheSleepTime
gateway.cdm.cacheCleanUpTime
Table 2-1 lists and describes all the fields in the platform.conf file.
Running the Gateway in the chroot EnvironmentTo provide high security in a chroot environment, the chroot directory content must be as minimal as possible. For example, if any programs exist which allow a user to modify a file under the chrooted directory, then chroot will not protect the server against an attacker modifying files under the chroot tree. CGI programs should not be written in an interpreted language, such as bourne shell, c-shell, korn shell or perl, but should be compiled binaries so interpreters do not need to be present under the chroot directory tree.
To Install chroot
- As root, in a terminal window, copy the following files to an external source such as a computer on the network, a backup tape or a floppy disk.
cp /etc/vfstab external-device
cp /etc/nsswitch.conf external-device
cp /etc/hosts external-device
- Run the mkchroot script from:
portal-server-install-root/SUNWps/bin/chroot
Note
The mkchroot script cannot be terminated by pressing Ctrl-C after execution has begun.
In the event of an error during the execution of the mkchroot script, see Execution Failure of the mkchroot Script.
You are prompted for a different root directory (new_root_directory). The script creates the new directory.
In the following examples, /safedir/chroot is the new_root_directory.
- Manually mount the Java directory mentioned in the platform.conf file to the chroot directory using the following command:
mkdir -p /safedir/chroot/java-dir
mount -F lofs java-dir /safedir/chroot/java-dir
For Solaris 9, do the following:
mkdir -p /safedir/chroot/usr/lib/32
mount -F lofs /usr/lib/32 /safedir/chroot/usr/lib/32
mkdir -p /safedir/chroot/usr/lib/64
mount -F lofs /usr/lib/64 /safedir/chroot/usr/lib/64
To mount this directory at system startup, add a corresponding entry in the /etc/vfstab file:
java-dir - /safedir/chroot/java-dir lofs - no -
For Solaris 9:
/usr/lib/32 - /safedir/chroot/usr/lib/32 lofs - no -
/usr/lib/64 - /safedir/chroot/usr/lib/64 lofs - no -
- Type the command below to restart the Gateway:
Execution Failure of the mkchroot Script
In the event of an error during the execution of the mkchroot script, the script will restore the files to their initial state.
In the following examples, /safedir/chroot is the chroot directory.
If the following error message is encountered:
Not a Clean Exit
- Copy the backed up files in step 1 of the procedure To Install chroot, to their original locations, and execute the following commands:
umount /safedir/chroot/usr/java1.2
umount /safedir/chroot/proc
umount /safedir/chroot/dev/random
- Remove the /safedir/chroot directory.
Restarting Gateway in the chroot EnvironmentFollow these steps to start Gateway in a chroot environment whenever the Gateway machine is rebooted.
To Restart Gateway in the chroot Environment
- Stop Gateway running from the ’/’ directory.
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name stop
- Start the Gateway to run from the chroot directory:
chroot /safedir/chroot ./portal-server-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Note
The /safedir/chroot/etc files (such as passwd and hosts) need to be administered, just like the /etc files, but only include host and account information required by the programs running in the chroot tree.
For example, if you change the identity provider address of the system, also change the file /safedir/chroot/etc/hosts.
Creating Multiple Instances of a GatewayUse the gwmultiinstance script to create a new instance of the Gateway. It’s preferable to run this script after the gateway profile has been created.
- Log in as root and navigate to the following directory:
gateway-install-root/SUNWps/bin/
- Run the multi-instance script:
./gwmultiinstance
- Choose one of the following installation options:
1) Create a new gateway instance
2) Remove a gateway instance
3) Remove all gateway instances
4) Exit
If you chose 1, answer the following questions:
What is the name of the new gateway instance?
What protocol will the new gateway instance use? [https]
What port will the new gateway instance listen on?
What is the fully qualified hostname of the portal server?
What port should be used to access the portal server?
What protocol should be used to access the portal server? [http]
What is the portal server deploy URI?
What is the organization DN? [dc=iportal,dc=com]
What is the identity server URI? [/amserver]
What is the identity server password encryption key?
Please provide the following information needed for creating a self-signed certificate:
What is the name of your organization?
What is the name of your division?
What is the name of your city or locality?
What is the name of your state or province?
What is the two-letter country code?
What is the password for the Certificate Database? Again?
What is the password for the logging user? Again?
Have you created the new gateway profile in the admin console? [y]/n
Start the gateway after installation? [y]/n
- Start the new instance of the Gateway with the new gateway profile name.
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
where gateway-profile-name is the new Gateway instance.
In addition to the gateway profile, the AMConfig-.instance-name.properties file is created in the /etc/opt/SUNWam/config directory.
If the portal.server.instance property in the platform.conf file is present, then the corresponding AMConfig-instance-name.properties file is read by the Gateway. If the portal.server.instance property in the platform.conf file is not present, then the default AMConfig files (AMConfig.properties) is read by the Gateway.
Creating Multi-homed Gateway Instances
If you are creating multi-homed gateway instances, that is multiple gateways on one Portal Server, you must modify the platform.conf file as follows:
gatewaybindipaddress = 0.0.0.0
Creating Gateway Instances Using the Same LDAP
If you are creating multiple gateway instances that use the same LDAP, after creating the first Gatewayon all subsequent Gateways:
In /etc/opt/SUNWam/config/, modify the following areas in AMConfig-instance-name.properties to be in sync with the first installed instance of the Gateway:
- Replace the key that is used to encrypt and decrypt passwords with the same string used for the first Gateway.
am.encryption.pwd= string_key_specified_in gateway-install
- Replace the key that is the shared secret for application auth module
com.iplanet.am.service.secret= string_key_specified_in gateway-install
- In /etc/opt/SUNWam/config/ums modify the following areas in serverconfig.xml to be insync with the first installed instance of Portal-Identity Server:
<DirDN> cn=puser,ou=DSAME Users,dc=sun,dc=net</DirDN>
<DirPassword>string_key_specified_in gateway-install</DirPassword>
<DirDN>cn=dsameuser,ou=DSAME Users,dc=sun,dc=net</DirDN>
<DirPassword>string_key_specified_in gateway-install </DirPassword>
- Restart amserver services.
Starting and Stopping the GatewayBy default, the Gateway starts as user noaccess.
To Start the Gateway
- After installing the Gateway and creating the required profile, run the following command to start the Gateway:
gateway-install-root/SUNWps/bin/gateway -n default start
default is the default gateway profile that is created during installation. You can create your own profiles later, and restart the Gateway with the new profile. See Creating a Gateway Profile.
If you have multiple Gateway instances, use:
gateway-install-root/SUNWps/bin/gateway start
This command starts all the Gateway instances configured on that particular machine.
Note
Restarting the server (the machine on which you have configured instances of the Gateway) restarts all configured instances of the Gateway.
Ensure that there are no old or backed up profiles in the /etc/opt/SUNWps directory.
To Stop the Gateway
Restarting the GatewayNormally, you do not need to restart the Gateway. You need to restart only if any of the following events have occured:
To Restart the Gateway with a Different Profile
Restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n new-gateway-profile-name start
To Restart the Gateway
In a terminal window, connect as root and do one of the following:
To Configure the Gateway Watchdog
You can configure the time interval at which the watchdog monitors the status of the Gateway. This time interval is set to 60 seconds by default. To change this, edit the following line in the crontab:
0-59 * * * * gateway-install-root/SUNWps/bin/
/var/opt/SUNWps/.gw. 5 > /dev/null 2>&1
See the crontab man page to configure the crontab entries.
Specifying a Virtual HostA virtual host is an additional hostname that points to the same machine IP and a host name. For example if a host name a.b.c points to the host IP address 192.155.205.133, you can add another host name c.d.e which points to the same IP address.
To Specify a Virtual Host
- Log in as root and edit the platform.conf file of the required Gateway instance:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- Add the following entries:
gateway.virtualhost=fully-qualified-gateway-host gateway-ip-address fully- qualified-reverse-proxyhost
gateway.enable.customurl=true (This value is set to false by default.)
- Restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
If these values are not specified, then the Gateway will default to normal behavior.
Specifying a Proxy to Contact the Identity ServerYou can specify a host proxy to be used by the Gateway to contact SRA Core (RemoteConfigServlet) that is deployed over the Portal Server. This proxy is used by the Gateway to reach the Portal Server and Identity Server.
To Specify a Proxy
- From the command-line, edit the following file:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- Add the following entries:
http.proxyHost=proxy-host
http.proxyPort=proxy-port
http.proxySet=true
- Restart the Gateway to use the specified proxy for requests made to the server:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Using Web ProxiesYou can configure the Gateway to contact HTTP resources using third party web proxies. Web proxies reside between the client and the Internet.
Web Proxy Configuration
Different proxies may be used for different domains and subdomains. These entries tell the Gateway which proxy to use to contact specific subdomains in specific domains. The proxy configuration specified in the Gateway works as follows:
For information on configuring proxies for domains and subdomains, see Create List of Proxies for Domains and Subdomains.
- With the Use Proxy option enabled:
- The proxies specified in the Proxies for Domains and Subdomains field are used for the specified hosts.
- To enable direct connections for certain URLs within the domains and subdomains specified in the Proxies for Domains and Subdomains list, specify these URLs in the Do Not Use Web Proxy URLS field.
- With the Use Proxy option disabled:
- To ensure that proxies are used for certain URLs within the domains and subdomains specified in the Proxies for Domains and Subdomains field, specify these URLs in the Use Webproxy URLs list. Although the Use Proxy option is disabled, a proxy is used to connect to the URLs listed under Use Webproxy URLs. The proxies for these URLs are obtained from the Proxies for Domains and Subdomains list.
To configure the Use Proxy option, see Enable Usage of Web Proxies.
Figure 2-1 shows how the web proxy information is resolved based on the proxy configuration in the Gateway service.
Figure 2-1 Web Proxy Management
In Figure 2-1, if Use Proxy is enabled, and the requested URL is listed in the Do Not Use Webproxy URLs list, the Gateway connects to the destination host directly.
If Use Proxy is enabled, and the requested URL is not listed in the Do Not Use Webproxy URLs list, the Gateway connects to the destination host through the specified proxy. The proxy, if specified, is looked up in the Proxies for Domains and Subdomains list.
If Use Proxy is disabled, and the requested URL is listed in the Use Webproxy URLs list, the Gateway connects to the destination host using the proxy information in the Proxies for Domains and Subdomains list.
If Use Proxy is disabled, and the requested URL is not listed in the Use Webproxy URLs list, the Gateway connects to the destination host directly.
If none of the above conditions are met, and a direct connection is not possible, the Gateway displays an error saying that connection is not possible.
Note
If you are accessing the URL through the Bookmark channel of the standard Portal Desktop, and none of the above conditions are met, the Gateway sends a redirect to the browser. The browser accesses the URL using its own proxy settings.
Syntax
domainname [web_proxy1:port1]|subdomain1 [web_proxy2:port2]|......
Example
sesta.com wp1:8080|red wp2:8080|yellow|* wp3:8080
* is a wild card that matches everything
where,
sesta.com is the domain name and wp1 is the proxy to contact on port 8080.
red is a subdomain and wp2 is the proxy to contact on port 8080.
yellow is a subdomain. Since no proxy is specified, the proxy specified for the domain is used, that is, wp1 on port 8080.
* indicates that for all other subdomains wp3 needs to be used on port 8080.
Processing the Web Proxy Information
When a client tries to access a particular URL, the host name in the URL is matched with the entries in the Proxies for Domains and Subdomains list. The entry that matches the longest suffix of the requested host name is considered. For example, consider that the requested host name is host1.sesta.com
- The Proxies for Domains and Subdomains is scanned for host1.sesta.com. If a matching entry is found, the proxy specified against this entry is used to connect to this host.
- Else, the list is scanned for *.sesta.com. If an entry is found, the corresponding proxy is used.
- Else, the list is searched for sesta.com. If an entry is found, the corresponding proxy is used.
- Else, the list is searched for *.com. If an entry is found, the corresponding proxy is used.
- Else the list is searched for com. If an entry is found, the corresponding proxy is used.
- Else the list is searched for *. If an entry is found, the corresponding proxy is used.
- Else, a direct connection is attempted.
Consider the following entries in the Proxies for Domains and Subdomains list:
com p1| host1 p2 | host2 | * p3
sesta.com p4 | host5 p5 | * p6
florizon.com | host6
abc.sesta.com p8 | host7 p7 | host8 p8 | * p9
host6.florizon.com p10
host9.sesta.com p11
siroe.com | host12 p12 | host13 p13 | host14 | * p14
siroe.com | host15 p15 | host16 | * p16
* p17
The Gateway internally maps these entries into a table as shown in Table 2-2.
Table 2-2 Mapping of Entries in the Proxies for Domains and Subdomains List
Number
Entry in Proxies for Domains and Subdomains List
Proxy
Description
1
com
p1
As specified in the list.
2
host1.com
p2
As specified in the list.
3
host2.com
p1
Since there is no proxy specified against host2, the proxy for the domain is used.
4
*.com
p3
As specified in the list.
5
sesta.com
p4
As specified in the list.
6
host5.sesta.com
p5
As specified in the list.
7
*.sesta.com
p6
As specified in the list.
8
florizon.com
Direct
See the description for entry 14 for details.
9
host6.florizon.com
–
See the description for entry 14 for details.
10
abc.sesta.com
p8
As specified in the list.
11
host7.abc.sesta.com
p7
As specified in the list.
12
host8.abc.sesta.com
p8
As specified in the list.
13
*.abc.sesta.com
p9
As specified in the list. For all hosts other than host7 and host8 under the abc.sesta.com domain, p9 is used as the proxy.
14
host6.florizon.com
p10
This entry is the same as entry 9. Entry 9 indicates a direct connection, whereas this entry indicates that proxy p10 should be used. In a case where there are two entries such as this, the entry with the proxy information is considered as the valid entry. The other entry is ignored.
15
host9.sesta.com
p11
As specified in the list.
16
siroe.com
Direct
Since there is no proxy specified against siroe.com, a direct connection is attempted.
17
host12.siroe.com
p12
As specified in the list.
18
host13.siroe.com
p13
As specified in the list.
19
host14.siroe.com
Direct
Since no proxy is specified for host14, or for siroe.com, a direct connection is attempted.
20
*.siroe.com
p14
See the description for entry 23.
21
host15.siroe.com
p15
As specified in the list.
22
host16.siroe.com
Direct
Since no proxy is specified for host16, of for siroe.com, a direct connection is attempted.
23
*.siroe.com
p16
This is similar to entry 20. But the proxies specified are different. In such a case, the exact behavior of the Gateway is not known. Either of the two proxies may be used.
24
*
p17
If no other entry matches the requested URL, p17 is used as the proxy.
Note
Instead of separating the proxy entries in the Proxies for Domains and Subdomains list with the | symbol, it may be simpler to have individual entries in the list. For example, instead of an entry such as:
sesta.com p1 | red p2 | * p3
you can specify it as:
sesta.com p1
red.sesta.com p2
*.sesta.com p3
This makes it easier to trap repeated entries or any other ambiguities.
Rewriting Based on the Proxies for Domains and Subdomains List
The entries in the Proxies for Domains and Subdomains list are also used by Rewriter. Rewriter rewrites all URLs whose domains match the domains listed in the Proxies for Domains and Subdomains list.
Caution
The * entry in the Proxies for Domains and Subdomains list is not considered for rewriting. For example, in the sample provided in Table 2-2, entry 24 is not considered.
See Chapter 3, "Proxylet and Rewriter" for information on Rewriter.
Default Domain and Subdomain
When the destination host in the URL is not a fully qualified host name, the default domain and subdomain are used to arrive at the fully qualified name.
Assume that the entry in the Default Domains field of the administration console is:
red.sesta.com
In the example above, sesta.com is the default domain and the default subdomain is red.
If the requested URL is host1, this is resolved to host1.red.sesta.com using the default domain and subdomain. The Proxies for Domains and Subdomains list is then looked up for host1.red.sesta.com.
Using Automatic Proxy ConfigurationTo ignore the information in the Proxies for Domains and Subdomains list, enable the Automatic Proxy Configuration feature. To configure this, see Enable Automatic Proxy Configuration Support.
Please note the following when using a Proxy Auto Config (PAC) file:
- The js.jar must be present in the $JRE_HOME/lib/ext directory on the Gateway machine, otherwise the Gateway will not be able to parse the PAC file.
- Gateway fetches the PAC file at bootup from the location specified in the gateway profile Automatic Proxy Configuration File location field. To configure the location, see Specify Automatic Proxy Configuration File Location.
- Portal Server, Gateway, Netlet, Proxylet, and Jchardet use the Rhino software to parse the PAC file. You can install the software from the SUNWrhino package.
- Gateway uses the URLConnection API to reach this location. If the proxy needs to be configured to reach the, the proxy needs to be configured in the following way.
- From the command-line, edit the following file:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- Add the following entries:
http.proxyHost=web-proxy-hostname
http.proxyPort=web-proxy-port
http.proxySet=true
- Restart the Gateway to use the specified proxy:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
- If PAC file initialization fails, then the Gateway uses the information in the Proxies for Domains and Subdomains list.
- If "" (empty string) or "null" is returned from the PAC file, then the Gateway assumes that the host does not belong to the intranet. This is similar to the host not being in the Proxies for Domains and Subdomains list.
If you want the Gateway to use a direct connection to the host, return "DIRECT". See Example with Either DIRECT or NULL Return.
- Gateway only uses the first proxy returned when multiple proxies are specified. It will not try to failover or loadbalance among the various proxies specified for a host.
- Gateway ignores SOCKS proxies and attempts a direct connection and assumes that the host is part of the intranet.
- To specify a proxy to be used to reach any host not part of the intranet, use the proxy type "STARPROXY". This is an extension of the PAC file format and is similar to the entry * proxyHost:port in Proxies for Domains and Subdomains section of the gateway profile. See Example with STARPROXY Return
Sample PAC File Usage
The following examples show the URLs listed in the Proxies for Domains and Subdomains list and the corresponding PAC file.
Example with Either DIRECT or NULL Return
Using these proxies for domains and subdomains:
*intranet1.com proxy.intranet.com:8080
intranet2.com proxy.intranet1.com:8080
the corresponding PAC file is:
// Start of the PAC File
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".intranet1.com")) {
return "DIRECT";
}
if (dnsDomainIs(host, ".intranet2.com")) {
return "PROXY proxy.intranet1.com:8080";
}
return "NULL";
}
//End of the PAC File
Example with STARPROXY Return
Using these proxies for domains and subdomains:
the corresponding PAC file is:
// Start of the PAC File
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".intranet1.com")) {
return "DIRECT";
}
if (dnsDomainIs(host, ".intranet2.com")) {
return "PROXY proxy.intranet1.com:8080;" +
"PROXY proxy1.intranet1.com:8080";
}
return "STARPROXY internetproxy.intranet1.com:80";
}
//End of the PAC File
In this case, if the request is for a host in .intranet2.com domain, the Gateway will contact proxy.intranet1.com:8080. If proxy.intranet1.com:8080 is down, the request will fail. the Gateway will not failover and contact proxy1.intranet1.com:8080.
Using a Netlet ProxyNetlet packets are decrypted at the Gateway and sent to the destination servers. However, the Gateway needs to access all Netlet destination hosts through the firewall between the demilitarized zone (DMZ) and the intranet. This requires opening a large number of ports in the firewall. The Netlet proxy can be used to minimize the number of open ports in the firewall.
The Netlet proxy enhances the security between the Gateway and the intranet by extending the secure tunnel from the client, through the Gateway to the Netlet proxy that resides in the intranet. With the proxy, Netlet packets are decrypted by the proxy and then sent to the destination.
The Netlet proxy is useful for the following reasons:
- To add an additional layer of security.
- To minimize the use of extra IP addresses and ports from the Gateway through an internal firewall in a significantly sized deployment environment.
- To restrict the number of open ports between the Gateway and the Portal Server to 1. This port number can be configured during installation.
- To extend the secure channel between the client and the Gateway, up to the Portal Server as shown in the "With a Netlet Proxy Configured" section of Figure 2-2. The Netlet proxy offers improved security benefits through data encryption but may increase the use of system resources. See the Sun Java Enterprise System Install Guide for information on installing the Netlet proxy.
You can:
- Choose to install the Netlet proxy on the Portal Server node or on a separate node.
- Install multiple Netlet proxies and configure them for a single Gateway using the administration console. This is useful in load balancing. Enable and Create a List of Netlet Proxies for details.
- Configure multiple instances of the Netlet proxy on a single machine.
- Point multiple instances of the Gateway to a single installation of the Netlet proxy.
- Tunnel Netlet through a web proxy. To configure this, see Enable Netlet Tunneling via Web Proxy.
Figure 2-2 shows three sample implementations of the Gateway and the Portal Server with and without a Netlet proxy installed. The components include a client, two firewalls, the Gateway that resides between the two firewalls, Portal Server, and Netlet destination servers.
The first scenario shows the Gateway and Portal Server without a Netlet proxy installed. Here the data encryption extends only from the client to the Gateway. A port is opened in the second firewall for each Netlet connection request.
The second scenario shows the Gateway and Portal Server with a Netlet proxy installed on Portal Server. In this case, the data encryption extends from the client all the way to the Portal Server. Since all Netlet connections are routed through a Netlet proxy, only one port needs to be opened in the second firewall for Netlet requests.
The third scenario shows the Gateway and the Portal Server with a Netlet proxy installed on a separate node. Installing a Netlet proxy on a separate node reduces the load on the Portal Server node. Here again, only two ports need to be opened in the second firewall. One port services requests to the Portal Server, and the other port routes Netlet requests to the Netlet proxy server.
Figure 2-2 Implementation of Netlet Proxy
Creating Instances of a Netlet Proxy
Use the nlpmultiinstance script to create a new instance of a Netlet proxy on the Portal Server node or a separate node. It is preferable to run this script after the gateway profile has been created:
- Log in as root and navigate to the following directory:
netlet-install-dir/SUNWps/bin
- Run the multi-instance script:
./nlpmultiinstance
- Answer the questions asked by the nlpmultiinstance script:
- What is the name of the new netlet proxy instance?
- If you have a instance configured on this node with the same name, you are asked if you want to use the same configuration for this netlet proxy instance.
- If you answered yes, answer these two questions:
- If you answered no, answer the following questions:
- What protocol will the new netlet proxy instance use?
- What port will the new netlet proxy instance listen on?
- What is the name of your organization?
- What is the name of your division?
- What is the name of your city or locality?
- What is the name of your state or province?
- What is the two-letter country code?
- What is the password for the certificate Database?
- What is the password for the logging user?
- Have you created the new gateway profile in the admin console?
- If you answered yes, start the netlet proxy after installation?
- Start the new instance of the netlet proxy with the required gateway profile name:
netlet-proxy-install-root/SUNWps/bin/netletd -n gateway-profile-name start
where gateway-profile-name is the profile name corresponding to the required Gateway instance.
Enabling a Netlet Proxy
You enable a Netlet proxy through the Gateway service under SRA Configuration in the Identity Server administration console. See Enable and Create a List of Netlet Proxies.
Restarting a Netlet Proxy
You can configure a Netlet proxy to restart whenever the proxy is killed accidentally. You can schedule a watchdog process to monitor a Netlet proxy and restart it if it goes down.
You can also restart a Netlet proxy manually.
To Restart a Netlet Proxy
In a terminal window, connect as root and do one of the following:
- Start the watchdog process:
netlet-proxy-install-root/SUNWps/bin/netletd watchdog on
This creates an entry in the crontab and the watchdog process is now active. The watchdog monitors the Netlet proxy port and brings up the proxy if it goes down.
- Start a Netlet proxy manually:
netlet-proxy-install-root/SUNWps/bin/netletd -n gateway-profile-name start
where gateway-profile-name is the profile name corresponding to the required Gateway instance.
To Configure a Netlet Proxy Watchdog
You can configure the time interval at which the watchdog monitors the status of a Netlet proxy. This time interval is set to 60 seconds by default. To do this, edit the following line in the crontab:
0-59 * * * * netlet-install-dir/bin/checkgw /var/opt/SUNWps/.gw 5 > /dev/null 2>&1
Using a Rewriter ProxyRewriter proxy is installed in the intranet. Instead of trying to retrieve the contents directly, the Gateway forwards all the requests to Rewriter proxy which fetches and returns the contents to the Gateway.
There are two advantages to using a Rewriter proxy:
- If there is a firewall between the Gateway and server, the firewall needs to open only two ports - one between the Gateway and Rewriter proxy, and another between the Gateway and the Portal Server.
- HTTP traffic is now secure between the Gateway and the intranet even if the destination server only supports HTTP protocol (no HTTPS).
If you do not specify a Rewriter proxy, the Gateway component makes a direct connection to intranet computers when a user tries to access one of those intranet computers.
If you are using the Rewriter proxy as a load balancer, be sure that the platform.conf.instance_name for Rewriter points to the load balancer URL. Also ensure that the load balancer host is specified in the Portal Servers list.
If you have multiple instances of the Rewriter proxies for each Gateway instance (not necessarily on the portal node). In the platform.conf, rather than a single port entry for the Rewrite proxy, enter the details for each Rewriter proxy in the form of host-name:port.
Creating Instances of a Rewriter Proxy
Use the rwpmultiinstance script to create a new instance of a Rewriter proxy on the Portal Server node. It is preferable to run this script after the gateway profile has been created.
- Log in as root and navigate to the following directory:
rewriter-proxy-install-root/SUNWps/bin
- Run the multi instance script:
./rwpmultiinstance
- Answer the questions asked by the script:
- What is the name of the new rewriter proxy instance?
- If you have a rewriter proxy instance configured on this node with the same name, you are asked if you want to use the same configuration for this rewriter proxy instance.
- If you answered yes, answer these two questions:
- If you answered no, answer the following questions:
- What protocol will the new rewriter proxy instance use?
- What port will the new rewriter proxy instance listen on?
- What is the name of your organization?
- What is the name of your division?
- What is the name of your city or locality?
- What is the name of your state or province?
- What is the two-letter country code?
- What is the password for the certificate Database?
- What is the password for the logging user?
- Have you created the new gateway profile in the admin console?
- If you answered yes, start the rewriter proxy after installation?
- Start the new instance of the rewriter proxy with the required gateway profile name:
rewriter-proxy-install-root/SUNWps/bin/rwproxyd -n gateway-profile-name start
where gateway-profile-name is the profile name corresponding to the required Gateway instance.
Enabling a Rewriter Proxy
Enable a Rewriter proxy through the Gateway service under SRA Configuration in the Identity Server administration console. See Enable and Create a List of Rewriter Proxies.
Restarting a Rewriter Proxy
You can configure to restart Rewriter proxy whenever the proxy is killed accidentally. You can schedule a watchdog process to monitor and restart it if this happens.
You can also restart a Rewriter proxy manually.
To Restart a Rewriter Proxy
In a terminal window, connect as root and do one of the following:
- Start the watchdog process:
rewriter-proxy-install-root/SUNWps/bin/rwproxd watchdog on
This creates an entry in the crontab and the watchdog process is now active. The watchdog monitors the port and brings up the proxy if it goes down.
- Start manually:
rewriter-proxy-install-root/SUNWps/bin/rwproxd -n gateway-profile-name start
where gateway-profile-name is the profile name corresponding to the required Gateway instance.
To Configure a Rewriter Proxy Watchdog
You can configure the time interval at which the watchdog monitors the status of the Rewriter proxy. This time interval is set to 60 seconds by default. To do this, edit the following line in the crontab:
0-59 * * * * rewriter-proxy-install-root/bin/checkgw /var/opt/SUNWps/.gw 5 > /dev/null 2>&1
Using a Reverse Proxy with the GatewayA proxy server serves Internet content to the intranet, while a reverse proxy serves intranet content to the Internet. Deployments of reverse proxies can be configured to serve the Internet content to achieve load balancing and caching.
To Enable a Reverse Proxy
- Log in as root and edit the platform.conf file of the required Gateway instance:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- Add the following entries:
gateway.virtualhost=fully-qualified-gateway-host gateway-ip-address fully- qualified-reverse-proxyhost
gateway.enable.customurl=true (This value is set to false by default.)
gateway.httpurl=http reverse-proxy-URL
gateway.httpsurl=https reverse-proxy-URL
gateway.httpurl will be used to rewrite the response for the request received at the port which is listed as HTTP port in the gateway profile.
gateway.httpsurl will be used to rewrite the response for the request received at the port which is listed as HTTPS port in the gateway profile.
- Restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
If these values are not specified, then the Gateway will default to normal behavior.
Obtaining Client InformationWhen the Gateway forwards a client request to any internal server, it adds HTTP headers to the HTTP request. You can use these headers to obtain additional client information and detect the presence of the Gateway.
To view the HTTP request headers, set the entry in the platform.conf file to gateway.error=message, then use the request.getHeader() from the servlet API. The following table lists the information in the HTTP headers
Table 2-3 Information in HTTP Headers
Header.
Syntax
Description
PS-GW-PDC
X-PS-GW- PDC: true/false
Indicates whether PDC is enabled at the Gateway.
PS-Netlet
X-PS-Netlet:enabled=true/false
Indicates whether Netlet has been enabled or disabled at the Gateway.
If it is enabled, then the encryption option is populated, indicating whether the Gateway is running in HTTPS (encryption=ssl) or in HTTP mode (encryption=plain)
For example:
PS-Netlet: enabled=false
Netlet is disabled.
PS-Netlet: enabled=true; encryption=ssl
Netlet is enabled with the Gateway running in SSL mode.
The encryption=ssl/plain is not populated when Netlet is not enabled.
PS-GW-URL
X-PS-GW-URL: http(s)://gatewayURL(:port)
Indicates the URL that the client is connected to.
If it is non-standard port (that is the Gateway is in HTTP/HTTPS mode with port not being 80/443), then the ":port" is also populated.
PS-GW-Rewriting-URL
X-PS-GW-URL: http(s)://gatewayURL(:port)/[SessionInfo]
Indicates the URL that the Gateway rewrites all the pages to.
1. When the browser supports cookies, the value of this header would is the same as the PS-GW-URL header.
2. When the browser does not support cookies:
- and if the destination host is in the "User Session to which User Session Cookie is Forwarded" field, the value is the actual URL to which the Gateway rewrites the page to (which includes the encoded SessionID info).
- or if the destination host is not in the "User Session to which User Session Cookie is Forwarded” field, then the SessionInfo string will be "$SessionID"
Note: As part of response, if the user's Identity Server sessionId changes (like response from authentication page) then the pages are rewritten with that value (and not the value that was previously indicated in the header).
For example:
PS-GW-Rewriting-URL: https://siroe.india.sun.com:10443/
PS-GW-Rewriting-URL: https://siroe.india.sun.com:10443/SessIDValCustomEncodedValue/
PS-GW-Rewriting-URL: https://siroe.india.sun.com:10443/$SessionID
PS-GW-CLientIP
X-PS-GW-CLientIP: IP
This is the IP that the Gateway obtained from recievedSocket.getInetAddress().getHostAddress()
This gives the client's IP if directly connected to the Gateway.
Note: Due to a JSS/NSS bug, this is currently not present.
Using Authentication ChainingAuthentication chaining provides a higher level of security over the regular mechanism of authentication. You can enable users to be authenticated against more than one authentication mechanism.
The procedure described here is only for enabling authentication chaining along with a Personal Digital Certificate (PDC) authentication at the Gateway. For authentication chaining without PDC authentication at the Gateway please refer to the Identity Server Administration Guide.
For example, if you chain the PDC, Unix, and Radius authentication modules, the user will have to authenticate against all three modules to access the standard Portal Desktop.
To Add Authentication Modules to an Existing PDC Instance
- Log in to the Identity Server administration console as administrator.
- Choose the required organization.
- Select Services from the View drop-down menu.
The services are displayed in the left pane.
- Click the arrow next to Authentication Configuration.
The Service Instance List displays.
- Click gatewaypdc.
The Gatewaypdc properties page displays.
- Click Edit in front of Authentication Configuration.
Add Module displays.
- Select Module Name and set Flag to Required. Option can be blank.
- Click OK.
- Click Save after adding one or more modules.
- Click Save in the gatewaypdc properties page.
- For the changes to take effect, restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Using Wild Card CertificatesA wild card certificate accepts a single certificate with a wild card character in the fully-qualified DNS name of the host.
This allows the certificate to secure multiple hosts within the same domain. For example, a certificate for *.domain.com can be used for abc.domain.com, and abc1.domain.com. In fact, this certificate is valid for any host in the domain.com domain.
You need to specify a * in the fully-qualified host name. For example, if the fully-qualified host name is abc.florizon.com, specify it as *.florizon.com. The certificate that is generated is now valid for all host names in the florizon.com domain.
Disabling Browser CachingAs the Gateway component provides secure access to backend corporate data from any location using just a web browser, it may be necessary that the information not be cached locally by the client.
You can disable caching of pages redirected through the Gateway by modifying the attribute in the platform.conf file of the specific Gateway.
Disabling this option can have an impact on the Gateway performance. Every time the standard Portal Desktop is refreshed, the Gateway has to retrieve everything referenced by the page, such as images which may have been previously cached by the browser. However, by enabling this feature, remotely accessing secure content will not leave a cached footprint on the client site. This could outweigh performance implications if the corporate network is being accessed from an Internet cafe or similar remote location that is not under corporate IT control.
To Disable Browser Caching
- Log in as root and edit the platform.conf file of the required Gateway instance:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- Edit the following line:
gateway.allow.client.caching=true
This value is set to true by default. Change the value to false to disable browser caching at the client side.
- Restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Customizing the Gateway Service User InterfaceThis section discusses the various property files that can be edited.
srapGateway.properties File
You can edit this file for the following purposes:
- Customize the error messages that may appear when the Gateway is running.
- HTML-CharSets=ISO-8859-1 specifies the character set that was used to create this file.
- The number in braces (for example, {0}) indicates that the value will be displayed at run time. You can change the label associated with this number, or rearrange the labels as required. Ensure that the label corresponds to the message that will be displayed since the number and the message are associated.
- Customize the log information.
By default the srapGateway.properties file is located under the portal-server-install-root/SUNWps/locale directory. All messages that appear on the Gateway machine (Gateway related messages) are located in this file, irrespective of the language of the messages.
If you need to change the language of the messages that appear on the client standard Portal Desktop, copy this file into the respective locale directory, for example portal-server-install-root/SUNWps/locale_en_US.
srapgwadminmsg.properties File
You can edit this file for the following reasons:
Using Federation ManagementFederation Management allows users to aggregate their local identities so that they have one network identity. Federation Management uses the network identity to allow users to login at one service provider’s site and access other service provider’s sites without having to re-authenticate their identity. This is referred to as single sign-on.
Federation management can be configured in open mode and secure mode on the Portal Server. The Portal Server Administration Guide describes how to configure federation management in open mode. Before configuring Federation management in secure mode, using Secure Remote Access, ensure that it works in open mode. If you want your users to use Federation Management from the same browser in both open and secure mode, they must clear the cookies and cache from the browser.
Refer to the Identity Server Customization and API Guide for detailed information on Federation Management.
Federation Management Scenario
A user authenticates to an initial service provider. Service providers are commercial or not-for-profit organizations that offer web-based services. This broad category can include internet portals, retailers, transportation providers, financial institutions, entertainment companies, libraries, universities, and governmental agencies.
The service provider uses a cookie to store the user’s session information in the client browser. The cookie also includes the user’s identity provider.
Identity providers are service providers that specialize in providing authentication services. As the administrating service for authentication, they also maintain and manage identity information. Authentication accomplished by an identity provider is honored by all service providers with whom it is affiliated.
When the user attempts to access a service that is not affiliated with the identity provider, the identity provider forwards the cookie to the unaffiliated service provider. This service provider can then access the identity provider called out in the cookie.
However, cookies cannot be read across different DNS domains. Therefore a Common Domain Cookie Service is used to redirect the service provider to the correct identity provider thus enabling single sign-on for the user.
Configuring Federation Management Resources
The Federation resources, the service providers, identity providers, and the Common Domain Cookie Service (CDCS), are configured in the gateway profile based on where they reside. This section describes how to configure three scenarios:
- when all resources are inside the corporate intranet
- when all resources are not inside the corporate intranet or the identity provider resides in the Internet
- when all resources are not inside the corporate intranet or the service provider is a third party residing in the Internet while the identity provider is protected by the Gateway.
Configuration 1
In this configuration the service providers, identity providers and the Common Domain Cookie Service are deployed in the same corporate intranet and the identity providers are not published in the Internet Domain Name Server (DNS). The CDCS is optional.
In this configuration the Gateway points to the service provider, which is the Portal Server. This configuration is valid for multiple instances of the Portal Server.
- Log in to the Identity Server administration console as administrator.
- Select the Service Configuration tab from the administration console.
- Click the arrow next to Gateway under SRA Configuration.
The Gateway page displays.
- Click Edit... next to the gateway profile for which you want to set the attribute.
The Edit Gateway Profile page displays.
- Click the Core tab.
- Select the Enable Cookie Management checkbox to enable cookie management.
- Scroll to the Portal Server field and enter Portal Server names so that you can use relative URLs like /amserver or /portal/dt listed in the Non-authenticated URLs list. For example:
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- Scroll to the Portal Server field and enter the Portal Server name. For example /amserver.
- Click Save.
- Click the Security tab.
- Scroll to the Non-authenticated URLs list and add the Federation resources. For example:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- Click Add.
- Click Save.
- If web proxies are needed to reach the URLs listed in the Non-authenticated URLs list, click the Proxies tab.
- Scroll to the Proxies for Domains and Subdomains field and enter the necessary web proxies.
- Click Add.
- Click Save.
- From a terminal window, restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Configuration 2
In this configuration the identity providers, identity providers and the Common Domain Cookie Provider (CDCP) are not deployed in the corporate intranet or the identity provider is a third party provider residing the in Internet.
In this configuration the Gateway points to the service provider, which is the Portal Server. This configuration is valid for multiple instances of the Portal Server.
- Log in to the Identity Server administration console as administrator.
- Select the Service Configuration tab from the administration console.
- Click the arrow next to Gateway under SRA Configuration.
The Gateway page displays.
- Click Edit... next to the gateway profile for which you want to set the attribute.
The Edit Gateway Profile page displays.
- Click the Core tab.
- Select the Enable Cookie Management checkbox to enable cookie management.
- Scroll to the Portal Server field and enter service provider portal server names so that you can use relative URLs like /amserver or /portal/dt listed in the Non-authenticated URLs list.
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- Click Save.
- Click the Security tab.
- Scroll to the Non-authenticated URLs list and add the Federation resources. For example:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- Click Add.
- Click Save.
- If web proxies are needed to reach the URLs listed in the Non-authenticated URLs list, click the Proxies tab.
- Scroll to the Proxies for Domains and Subdomains field and enter the necessary web proxies.
- Click Add.
- Click Save.
- From a terminal window, restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
Configuration 3
In this configuration the identity providers, identity providers and the Common Domain Cookie Provider (CDCP) are not deployed in the corporate intranet or the service provider is a third party provider residing the in Internet and the identity provider is protected by the Gateway.
In this configuration the Gateway points to the identity provider, which is the Portal Server.
This configuration is valid for multiple instances of the Portal Server. This configuration is very unlikely on the Internet, however, some corporate networks may have such a configuration within their intranet, that is the identity provider may reside in a subnet this is protected by a firewall and the service providers are directly accessible from within the corporate network.
- Log in to the Identity Server administration console as administrator.
- Select the Service Configuration tab from the administration console.
- Click the arrow next to Gateway under SRA Configuration.
The Gateway page displays.
- Click Edit... next to the gateway profile for which you want to set the attribute.
The Edit Gateway Profile page displays.
- Click the Core tab.
- Select the Enable Cookie Management checkbox to enable cookie management.
- Scroll to the Portal Server field and enter identity provider portal server so that you can use relative URLs like /amserver or /portal/dt listed in the Non-authenticated URLs list.
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- Click Save.
- Click the Security tab.
- Scroll to the Non-authenticated URLs list and add the Federation resources. For example:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- Click Add.
- Click Save.
- If web proxies are needed to reach the URLs listed in the Non-authenticated URLs list, click the Proxies tab.
- Scroll to the Proxies for Domains and Subdomains field and enter the necessary web proxies.
- Click Add.
- Click Save.
- From a terminal window, restart the Gateway:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start