How To Configure DHN Security

From Gcube Wiki
Revision as of 09:04, 29 October 2007 by Roccetti (Talk | contribs) (Install host credentials)

Jump to: navigation, search

This page contains useful information for DILIGENT administrators about configuration of DHN to comply with the DILIGENT Security Model.

Configure DHN security

This step must be performed only once when the DHN is installed. With this step CA certificates and DHN credentials are installed. At the end the container is ready to host secure services.

Run the ntp daemon

It is necesary to run the ntp daemon on your machine to properly validate credentials. This can be done with the command:

/etc/init.d/ntpd start

For more information about the installation and configuration of the ntp daemon see here.

Install CA certificates

Follows this document to install trusted CA certificates in your new DHN node.

You have now to install certificates of the CA trusted in DILIGENT. You can find these certificates in rpm format here It is always a good idea to (periodically) refresh Certificates Revocation Lists (CRL), these lists contains certificates revoked by trusted CAs. To refresh these certificate execute this command: /usr/sbin/fetch-crl -o /etc/grid-security/certificates

Info.gif You should schedule the execution of the /usr/sbin/fetch-crl command using the cron to avoid certificate verification exception. The wikipedia cron page explains how to do this in detail

Install host credentials

Copy host certificate and private key respectively in:

  • /etc/grid-security/hostpubliccert.pem (please check that the certificate file has -rw-r--r-- permissions)
  • /etc/grid-security/hostprivatekey.pem (please check that the private key file has -r-------- permissions).

Both certificate and private key must be owned by the user that run the container.

You can obtain host credentials (certificate and private key from an official Certification Authority)

Configure container security

Set Global security descriptor of Java-WS-Core container in file $GLOBUS_LOCATION/etc/globus_wsrf_core/global_security_descriptor.xml.

See Media:global_security_descriptor.xml example.

Modify the $GLOBUS_LOCATION/etc/globus_wsrf_core/server-config.wsdd file adding following lines inside the <globalConfiguration> tag:

<parameter name="logicalHost" value="yourHostName.yourDomain">
<parameter name="publishHostName" value="true"/>

<parameter name="containerSecDesc" value="etc/globus_wsrf_core/global_security_descriptor.xml"/>

(of course you have to replace yourHostName and yourDomain properties with correct values, E.g: grids15.eng.it)

Then start the contianer using the -nosec option (This disable HTTPS transport and enbale GSISecureConversation support)

Configure VOMS credentials

VOMS credentials must be installed in the local system to verify VOMS assertions. To do this first of all copy in the /etc/grid-security/vomsdir directory certificates of trusted VOMS servers. You can find certificates of VOMS used in DILIGENT here (please check that certificate files have -rw-r--r-- permissions).

You also need to create vomses files in /opt/glite/etc/vomses. These files should follows this naming convention:

<name of the VO>-<hostname of the VOMS service>

(E.g: diligent-grids10.eng.it)

The content of each file must be as follows (on one single line):

"<name of the VO>" "<hostname of the VOMS service>" "<port of the VOMS service>" 
"<Distinguished Name of the VOMS certificate>" "<local name of the VO>"

E.g:

"diligent" "grids13.eng.it" "15001" "/C=IT/O=INFN/OU=Host/L=ENGINEERING RDLAB/CN=grids13.eng.it" "diligent"

Info.gif Please notice that the VO name 'diligent' should be associated to the VOMS service running on grids13.eng.it, this will assure to properly validate assertions contained in proxy credentials

Optional Configuration

Install voms-proxy-init command

Download from BSCW required rpm and configuration file.

Install rpm in the order they appear in the BSCW.

Copy the configuration file to the directory /etc/glite/profile.d/

Modify the configuration file to set the right JAVA_HOME and GLOBUS_LOCATION.