Sun Java System Portal Server Secure Remote Access (SRA)

Popis produktu a administrace

Lukáš Cirkva


Obsah

Úvod
1. Popis komponent
1.1. URL Access Control
1.2. Gateway
1.3. Rewriter
1.4. Netlet
2. Instalace
2.1. Gateway
2.1.1. Postřehy
2.1.2. Průběh instalace
3. Konfigurace
3.1. Default profile
3.2. Vytvoření dalšího profilu
3.3. Access Manager
3.4. Registrace uživatele do SRA
3.5. Práce se SSL certifikáty
3.5.1. List Tokenu
3.5.2. Import CA
3.6. Nastavení přístupu na anonymní desktop (authlessanonymous)
3.7. Sun Java System Communications Express 6 (UWC)
3.8. Ladění
4. Zdroje použité literatury

Seznam tabulek

3.1. Certificate Trust Attribut

Seznam příkladů

2.1. Gateway login user
3.1. platform.conf.default
3.2. AMConfig-default.properties - ukázka části konfiguračního souboru
3.3. Registrace SRA služeb uživateli amadmin
3.4. Oprava v UWC - javascript

Úvod

Sun Java System Portal Server Secure Remote Access (SRA) poskytuje vzdálený zabezpečený přístup do interní sítě respektive na Sun Java System Portal Server. Stačí k tomu mít web prohlížeč a nainstalovanou javu na klientovi pro spuštění aplikace k tunelování portů (Netlet a Netfile) z vnitřní sítě, například IMAP4 nebo pro vzdálené ukládání souborů do portálu.

Pro ilustraci je na obrázku vidět tzv. open mode portálu bez SRA:

a Secure Mode s použitím SRA:

Kapitola 1. Popis komponent

1.1. URL Access Control

Součástí SRA je i systém omezení přístupu uživatele na portál. Přes Access Manager lze zadat pomocí jednoduchých pravidel - seznamu zdrojových ip rozsahů.

1.2. Gateway

Komponenta SRA Gateway slouží jako malý program v demilitarizované zóně k bezpečnému přesměrování požadavků z externí sítě do intranetu. Mezi klienty a Gateway programem se využívá šifrovaného protokolu HTTPs a mezi Gateway a aplikacemi v intranetu lze i http pro odlehčení (round-dobin) zátěže aplikačním a databázovým serverům.

Gateway slouží ke komunikaci mezi klientem a webové servery a webově založené produkty pomocí protokolů jako jsou HTML, JavaScript a XML. http://seznam

1.3. Rewriter

Rewriter komponenta umožňuje uživatelům vytvářet a využívat URL odkazy na další stránky v intranetu se zapojením Gateway.

Rewriter přidává ve webovém prohlížeči na začátek URL Gateway: z URL http://portal na URL: https://gateway/cokoliv a tedy umožňuje přesměrování toku informací přes Gateway.

1.4. Netlet

Netlet komponenta poskytuje vzdáleně intranetové služby například SMTP, IMAP, POP, FTP apod.

V portálu se spustí malá javovská aplikace, která šifrovaně protuneluje pomocí SSL porty z intranetu na klienta. Pomocí této aplikace lze například ukládat soubory do vnitřní sítě, kdekoliv vybírat a zasílat elektronickou poštu z MS-Outlooku apod.

Kapitola 2. Instalace

Secure Remote Access je součástí JESu, lze nainstalovat s portálem nebo zvlášť. Získat SW lze na adrese:www.sun.com/download.

2.1. Gateway

Pro standalone instanci Gateway je nutné nainstalovat samotnou gateway + Access Manager SDK. Při instalaci je nutný přístup k instanci Access Manageru (AM) a do adresářového serveru (Sun Java System Directory Server). Pro samotný chod Gateway dostačuje přístup na portál s AM a nainstalovaným minimálně SRA Core.

2.1.1. Postřehy

  • Nainstaloval jsem instanci na Solaris i RH, fungují na sobě nezávisle.

  • Na jednom stroji může fungovat více instancí, jedna instance na jeden procesor.

  • Gateway má více profilů (nastavení), použitý profil se definuje při startu procesu.

  • Nedoporučuji instalovat GW na https AM a PS (AM na https nelze i podle manuálů) a použít standatní port pro GW 443.

  • hostname Gateway serveru viditelné v URL http://hostname musí být totožné s nastavení gateway:

    gateway.host=hostname

    ale nemusí být totožné s lokálním nastavením operačního systému.

2.1.2. Průběh instalace

Popis instalace SRA na AM/PS/DS serveru je shodný s níže uvedenou instalací. Na tyto primární servery je třeba instalovat SRA nejdříve a doporučuji instalaci všech součástí SRA.

Popis instalace dedikované Gateway (GW + AM SDK):

  1. Spustit instalátor

  2. Vybrat instalaci Gateway + Identity SDK

  3. Vybrat instalační adresář: /opt/sun

  4. Základní údaje:

    hostname: sun
    Domain name: iforce.cz
    IP: xxx.xxx.xxx.xxx
    Administrator ID: admin
    Administrator password: ****
    System User (UID): root
    GID: other

    instalace probíhá pod uživatelem root, při spuštění gateway je proces dostupný ze sítě vlastněn uživatelem noaccess.

  5. Zadat přístupy na Access Manager:

    AmAdmin password musí být alespoň 5 znaků dlouhé, pokud není, stačí změnit jen po dobu instalace. SRA nepoužívá k provozu amAdmin uživatele/

    amadmin passwd:
    amldapuser passwd:
    Password encryption key:

    V souboru AMConfig.properties parametr

    am.encryption.pwd=

    obsahuje klíč určení pro šifrování a dešifrování hesel.

    Změna hesla uživatele je sepsaná v mém taháku.

  6. Přístup do adresářového serveru:

    Přístup na adresářový server je instalací otestován

    Directory server host: sun.iforce.cz
    DS port: 389
    dc=iforce,dc=cz
    cn=Directory Manager
    passwd: ***
  7. Access Manager server adresa a port

  8. Generovaní SSL certifikátu pod heslem

  9. Gateway heslo se musí shodovat s heslem uživatele amService-srapGateway vytvořeného pří instalaci SDK Core.

    Příklad 2.1. Gateway login user

    dn: uid=amService-srapGateway,ou=People,dc=iforce,dc=cz
    changetype: add
    sn: amService-srapGateway
    cn: amService-srapGateway
    iplanet-am-modifiable-by: cn=Top-level Admin Role,dc=iforce,dc=cz
    uid: amService-srapGateway
    objectClass: sunportalnetmailperson
    objectClass: top
    objectClass: iplanet-am-managed-person
    objectClass: iplanet-am-user-service
    objectClass: inetadmin
    objectClass: organizationalperson
    objectClass: person
    objectClass: inetuser
    objectClass: sunssoadapterperson
    objectClass: sunportalpksubscriptionsperson
    objectClass: iplanetpreferences
    objectClass: inetorgperson
    objectClass: sunportaldesktopperson
    inetUserStatus: Active
    userPassword: {crypt}Ge4HaT42Ptsg
    creatorsName: cn=puser,ou=dsame users,dc=iforce,dc=cz
    modifiersName: cn=puser,ou=dsame users,dc=iforce,dc=cz
    createTimestamp: 20050609081813Z
    modifyTimestamp: 20050609081813Z

Kapitola 3. Konfigurace

Většina nastavení je uložena v adresářovém serveru a nastavuje se v amconsoli.

3.1. Default profile

Profil je ke každé instanci v samostatném souboru, konfiguruje se v souboru nebo v amconsoli.

  • Předpokládané umístění souboru v Solarisu:

    /etc/opt/SUNWps/platform.conf.defaul
  • a v Linuxu:

    /etc/opt/portal/platform.conf.defaul

Příklad 3.1. platform.conf.default

gateway.cdm.cacheSleepTime=60000
gateway.protocol=https
gateway.jdk.dir=/usr/jdk/entsys-j2se
gateway.userProfile.cacheCleanupTime=300000
gateway.userProfile.cacheSize=1024
gateway.external.ip=192.168.1.100
gateway.logdelimiter=&&
gateway.httpurl=
portal.server.instance=default
gateway.port=443
gateway.debug=message
gateway.bindipaddress=192.168.1.100
gateway.certdir=/etc/opt/SUNWps/cert/default
gateway.host=sun.iforce.cz
gateway.logging.password=of7JMF5gSRD5wgsA/cFghg\=\= x0mfS5km2KkRIRdGkeZW3g\=\=
gateway.sockretries=3
gateway.enable.customurl=false
gateway.userProfile.cacheSleepTime=60000
gateway.enable.accelerator=false
gateway.cdm.cacheCleanupTime=300000
gateway.favicon=
gateway.notification.url=notification
gateway.httpsurl=
portal.server.port=80
gateway.virtualhost=sun.iforce.cz 192.168.1.100
gateway.allow.client.caching=true
gateway.retries=6
gateway.dsame.agent=http\://sun.iforce.cz\:80/portal/RemoteConfigServlet
portal.server.host=sun.iforce.cz
gateway.user=noaccess
gateway.trust_all_server_certs=true
gateway.debug.dir=/var/opt/SUNWps/debug
portal.server.protocol=http

3.2. Vytvoření dalšího profilu

Lze nastavit v Access Manageru, ale neuložilo se mi do souboru v /etc/opt/portal. Pro správnou funkci stačí zkopírovat nebo vytvořit soubor platform."profile", kdy "profile", je název profilu pro start Gateway.

cp platform.conf.default platform.conf.test

Další možností jak vytvořit instanci GW je pomocí skriptu:

gateway-install-root/SUNWps/bin/gwmultiinstance

3.3. Access Manager

U každé gateway brány musí být nainstalován minimálně SDK. Konfigurační soubor se nachází (v Linuxu): /etc/opt/sun/identity

Pro změnu nastavení stačí poeditovat soubor AMConfig-default.properties (default je profil GW) a restartnout GW:

/etc/init.d/gateway start

Příklad 3.2. AMConfig-default.properties - ukázka části konfiguračního souboru

com.iplanet.am.defaultOrg=dc=iforce,dc=cz 
com.iplanet.am.directory.ssl.enabled=false 
com.iplanet.am.directory.host=DIRECTORY_SERVER
com.iplanet.am.directory.port=DIRECTORY_PORT
com.iplanet.am.server.protocol=http
com.iplanet.am.server.host=sun.iforce.cz
com.iplanet.am.server.port=80 
com.iplanet.am.console.protocol=http 
com.iplanet.am.console.host=sun.iforce.cz
com.iplanet.am.console.port=80
com.iplanet.am.profile.host=sun.iforce.cz
com.iplanet.am.profile.port=80
com.iplanet.am.naming.url=http://sun.iforce.cz:80/amserver/namingservice
com.iplanet.am.notification.url=http://sun.iforce.cz:80//amserver/notificationservice
com.iplanet.am.daemons=unix securid
com.iplanet.am.cookie.name=iPlanetDirectoryPro
com.iplanet.am.cookie.secure=false
com.iplanet.am.cookie.encode=COOKIE_ENCODE
com.iplanet.am.pcookie.name=DProPCookie
com.iplanet.am.locale=en_US
com.iplanet.am.jdk.path=/usr/jdk/entsys-j2se 
com.iplanet.am.logstatus=ACTIVE
com.iplanet.am.rootsuffix=ROOT_SUFFIX
com.iplanet.am.domaincomponent=dc=iforce,dc=cz
com.iplanet.am.version=6 2005Q1

3.4. Registrace uživatele do SRA

Aby mohl uživatel využívat služby vzdáleného přístup, je nutné aby měl zaregistrované servisy SRA, které jsou v adresářovém serveru reprezentovány atributem objectclass:

objectClass: sunPortalGatewayAccessService
objectClass: sunPortalNetFileService
objectClass: sunPortalNetletService

Tyto atributy se vytvoří registraci servisu v amconsoli a to konkrétně Access list apod., dalším způsob je zápisem přímo pomocí ldapmodify do adresářového serveru.

Příklad 3.3. Registrace SRA služeb uživateli amadmin

dn: uid=amadmin,ou=people,dc=iforce,dc=cz
changetype: modify
add: objectClass
objectClass: sunPortalGatewayAccessService
objectClass: sunPortalNetFileService
objectClass: sunPortalNetletService

3.5. Práce se SSL certifikáty

Soubory s certifikáty jsou uloženy:

/etc/opt/SUNWps/cert/default/gateway-profile-name

v tomto adresáři jsou uloženy 3 soubory:

  • cert8.db

  • key3.db

  • secmod.db

Tabulka 3.1. Certificate Trust Attribut

pValid
PTrusted peer (implies p)
cValid CA
TTrusted CA to issue client certificates (implies c)
CTrusted CA to issue server certificates (SSL only) (implies c)
uCertificate can be used for authentication or signing
wSend warning (use with other attributes to include a warning when the certificate is used in that context)

Generování a práce s certifikáty:

portal-server-install-root/SUNWps/bin/certadmin -n gateway-profile-name

Po spuštění se zobrazí následující obrazovka:

1) Generate Self2-Signed Certificate
2) Generate Certificate Signing Request (CSR)
3) Add Root CA Certificate
4) Install Certificate From Certificate Authority (CA)
5) Delete Certificate
6) Modify Trust Attributes of Certificate (e.g., for PDC)
7) List Root CA Certificates
8) List All Certificates
9) Print Certificate Content
10) Quit
choice: [10] 1

3.5.1. List Tokenu

Výpis tokenu (popis je v Linuxu):

  1. Mít nalinkovanou knihovnu:

    export LD_LIBRARY_PATH="/opt/java/j2sdk/jre/lib/i386:/opt/sun/private/lib/"
  2. Vstup do adresáře s modutil:

    ./modutil -dbdir /etc/opt/sun/portal/cert/default -list
  3. Výstup příkazu:

    Using database directory /etc/opt/sun/portal/cert/default...
    
    Listing of PKCS #11 Modules
    -----------------------------------------------------------
      1. NSS Internal PKCS #11 Module
             slots: 2 slots attached
            status: loaded
    
             slot: NSS Internal Cryptographic Services                            
            token: NSS Generic Crypto Services
    
             slot: NSS User Private Key and Certificate Services                  
            token: NSS Certificate DB
    
      2. Root Certs
            library name: /etc/opt/sun/portal/cert/default/libnssckbi.so
             slots: 1 slot attached
            status: loaded
    
             slot: 
            token: Builtin Object Token
    -----------------------------------------------------------

3.5.2. Import CA

Import Certifikační autority:

  1. Spuštění toolu:

    portal-server-install-root/SUNWps/bin/certadmin -n gateway-profile-name
  2. Zvolit instalaci root CA:

    3) Add Root CA Certificate
  3. Vypsání seznamu importovanych certifikátů:

    7)  List Root CA Certificates

    A výstup:

    iForce.cz           CT,C,c
    server-cert         u,u,u
    

Další postup pomocí certutil:

  1. certifikát je v PCKSC#12:

    # /opt/sun/private/bin/pk12util -i /sun.p12 -d /etc/opt/sun/portal/cert/test/
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    
    Enter new password:
    Re-enter password:
    Enter password for PKCS12 file:
    pk12util: PKCS12 IMPORT SUCCESSFUL
    
  2. import CA s heslem v souboru sslpassword:

    # /opt/sun/private/bin/certutil -d /etc/opt/sun/portal/cert/test/ \
    -f ./sslpasswd -M -n CA -t "CTu,CTu,CTu"
  3. Import certifikátu:

    # /opt/sun/private/bin/certutil -d /etc/opt/sun/portal/cert/test/ \
    -f ./sslpasswd -M -n SunCert -t "CTPu,CPu,TPu"
  4. Výpis seznamu certifikátů v databázi:

    # /opt/sun/private/bin/certutil -d /etc/opt/sun/portal/cert/test/ -L
    iForceCert                                CTu,Cu,Pu
    iForceCA                                     CT,C,C

3.6. Nastavení přístupu na anonymní desktop (authlessanonymous)

Když se uživatel připojuje přes gateway komponentu SRA je automaticky přesměrován (při standardní nastavení) na adresu http://GW/http//portal.server.cz/amserver/UI/Login. Tato adresa lze změnit maličko nesystémově v daném Login.jsp souboru přidáním redirectu.

Do souboru v případě aplikačního serveru verze 7:

vi [APP-ROOT]/domains/domain1/server1/applications/j2ee-modules/amserver_1/config/auth/default/Login.jsp

přidat redirect:

<%
String redirectURL = "http://portal.server/porta/dt";
response.sendRedirect(redirectURL);
%>

3.7. Sun Java System Communications Express 6 (UWC)

CE - Unified Web Centrum je javovská webová aplikace centralizující webmail, web kalendář a adresář. Nebudu popisovat tuto aplikaci, jen se zaměřím na jednu chybku (která je možná již opravena nějakým patchem) a projevuje se pří použití SRA GW.

V této chybě dochází k špatnému interpretování záložky s mailem. Oprava této chyby je v javaskriptu:

Příklad 3.4. Oprava v UWC - javascript

Stačí přepsat funkci do následujícího tvaru:

vi /opt/SUNWmsgsr/data/config/html/main.js
function getUWCHost()
{
 var prot = msgHREF.substring(0,5);
 if(prot != "https")
   prot = "http://";
 else
   prot = "https://";

 var port = cfgFrame.uwcport;
 if(port != null)
   port = ":" + port + "/";

 index = msgHREF.lastIndexOf(':');
 if(msgHREF.length - index > 6)
   index = msgHREF.length - 1;

 var href = msgHREF.substring(0,index) + port;

 ctxuri = main.cfgFrame['uwccontexturi'];

 if(ctxuri == null)
    ctxuri = '';
 else
   ctxuri += '/'

 return  href + ctxuri;
}

3.8. Ladění

Doporučuji:

  • nastavit v platform.conf nejvyšší level logování

    gateway.debug=message

    Logy jsou v adresáři portálu, v Solarisu v /var/opt/SUNWps/debug/

  • při instalaci je třeba prohlédnout všechny logy v adresáři /var/sadm/install/log zda instalace proběhla v pořádku

  • Při startu GW se podívat do adresářového serveru, zda se dokázal uživatel autentizovat.

  • Před startem GW je třeba počkat až se ukončí všechny konekce teprve poté lze opět nastartovat GW.

Kapitola 4. Zdroje použité literatury

Seznam odkazů použité literatury: