“urgl! argl! aua!”, sagt teldemokles zu mac’s java_home

29. Juni 2010

Falls Ihr bei einem GT4 ./configure einen:

hobro:gt4.2.1-all-source-installer globus$ ./configure
--prefix=$GLOBUS_LOCATION --enable-xacml
checking build system type... i686-apple-darwin10.4.0
checking for javac... /usr/bin/javac
configure: WARNING: the javac in your path is not from your $JAVA_HOME environment
checking for ant... /usr/bin/ant
configure: creating ./config.status
config.status: creating Makefile

bekommt, dann tauscht doch einfach Euer $JAVA_HOME von /usr/ zu /usr.

Sagt Teldemokles! Hört auf ihn!

globus toolkit 4.2.1 und der XACML authorization test

4. Juni 2010

Hier ein paar Dinge, die ich - auf Anraten des guten alten Teldemokles - bisher getan habe:

  1. Installation des GT4.2.1, logo!
  2. Installation der SAML/XACML WS Authorization Komponenten, incl. JUnit-Tests

Nun kommt Part drei, nämlich das Laufen lassen des XACML JUnit-Tests. Hierbei wählte ich als nutzer meinen Globus-Nutzer (globus), der auch administrative Tätigkeiten für das installierte Globus Toolkit ausführt, wie z.B. das Signieren von Nutzerzertifikaten mit dem SimpleCA-Zertifikat, mit dem meine GT-Installation läuft.

Nach einem grid-proxy-init mit besagtem Nutzer globus bekomme ich einen:

runSecurityTests:
[echo] Java Authorization XACML Providers Test
[junit] Running org.globus.authz.xacml.TestXACMLAuthzCallout
[junit] org.globus.gsi.gssapi.auth.AuthorizationException: Mutual authentication failed
[junit] Expected target subject name="/O=Grid/OU=GlobusTest/OU=simpleCA-ingrid.sub.uni-goettingen.de/OU=sub.uni-goettingen.de/CN=globus"
[junit] Target returned subject name="/O=Grid/OU=GlobusTest/OU=simpleCA-ingrid.sub.uni-goettingen.de/CN=host/ingrid.sub.uni-goettingen.de")
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 18,767 sec

Was ich irgendwie komisch finde. Wo ist das Problem? Wird sofort untersucht…

Wenn ich *nicht* Nutzer globus bin, sondern ein weiterer Nutzer, der authorisiert ist - also mit grid-proxy-init ein Proxyx-Zertifikat bekomme, darf ich nicht schreibend auf das Globus-Verzeichnis zugreifen, wenn ich die dortigen Tests ausführe (wird von den Tests benötigt, um Config-Dinge zu schreiben). Wenn ich den Testcode in meinem Home-Verzeichnis installiere und dort ausführe, ebenfalls.

Ja, wer hat sich das bloß ausgedacht… aber eigentlich ja ganz einfach, die Lösung! Teldemokles sagt: “Wer einen Globus-Toolkit-Webservice-Container-XACML-Test tut, der baue sich sein Proxyzertifikat aus dem Containercert und dem Containerkey: grid-proxy-init -cert /etc/grid-security/containercert.pem -key /etc/grid-security/containerkey.pem!”.

So geht das (Das wiederum sagte nicht Teldemokles, sondern Mr Maloney)! Weiter geht’s! Danke, Teldemokles! Mein Chef wird sich freuen :-)

Hier der Beweis:

runSecurityTests:
[echo] Java Authorization XACML Providers Test
[junit] Running org.globus.authz.xacml.TestXACMLAuthzCallout
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 21,857 sec

BUILD SUCCESSFUL
Total time: 29 seconds

installation of a gt4 simpleCA: a step-by-step tutorial….

10. November 2009

Another note from Teldemokles: “User globus needs read/write permissions in the $GLOBUS_LOCATION dir!”

1. Creating a simple CA

setup simple CA
as globus:
$GLOBUS_LOCATION/setup/globus/setup-simple-ca

setup gsi things
as root:
$GLOBUS_LOCATION/setup/globus_simple_ca_#CAHASH#_setup/setup-gsi -default
or as globus: add
-nonroot

2. Obtaining and signing the host certificate - using the simple CA cert

request host certificate
as root:
grid-cert-request -host 'my.host'

sign the host cert using the CA cert
as globus:
grid-ca-sign -in /etc/grid-security/hostcert_request.pem -out /homeLocal/globus/hostsigned.pem

move the signed host cert and change owner
as root:
mv /homeLocal/globus/hostsigned.pem /etc/grid-security/hostcert.pem
chown root:root /etc/grid-security/hostcert.pem

3. Obtaining and signing the user certificate - using the host cert

request user cert
as user:
grid-cert-request

move it to the globus home dir and change owner to globus (instead of mailing)
as root:
cp /home/user/.globus/usercert_request.pem /homeLocal/globus/usercert_request.pem
chown globus:users /homeLocal/globus/usercert_request.pem

sign the user cert with the CA cert
as globus:
grid-ca-sign -in /homeLocal/globus/usercert_request.pem -out /homeLocal/globus/usercert_signed.pem

copy the signed user cert back to the user’s dir
as root:
cp /homeLocal/globus/usercert_signed.pem /home/user/.globus/usercert.pem
chown user:users /home/user/.globus/usercert.pem

4. verify the simple CA cert installation

do a grid-proxy-init
as user:
grid-proxy-init -debug -verify

5. DONE, if NO ERRORS occur, otherwise UNDONE!! Then look at the articles below :-)

ein neuer globus simpleCA!

10. November 2009

Tekdemokles sagte neulich zu mir:

“Lieber fugu, falls Du jemals einen neuen simpleCA brauchen solltest, und Du bekommst folgende Meldung beim Verifizieren Deines Proxy-Zertifikates:

fugu@my_globus_host:/etc> grid-proxy-init -debug -verify

User Cert File: /home/fugu/.globus/usercert.pem
User Key File: /home/fugu/.globus/userkey.pem

Trusted CA Cert Dir: /home/fugu/.globus/certificates

Output File: /tmp/x509up_u2004
Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-my.globus.host/OU=globus.host/CN=fugu
Enter GRID pass phrase for this identity:
Creating proxy ........++++++++++++
...++++++++++++
Done
Error: Couldn't verify the authenticity of the user's credential to generate a proxy from.
grid_proxy_init.c:971: globus_credential: Error verifying credential: Failed to verify credential
globus_gsi_callback_module: Could not verify credential
globus_gsi_callback_module: Could not verify credential: certificate signature failure
OpenSSL Error: a_verify.c:168: in library: asn1 encoding routines, function ASN1_item_verify: EVP lib
OpenSSL Error: rsa_eay.c:676: in library: rsa routines, function RSA_EAY_PUBLIC_DECRYPT: padding check failed
OpenSSL Error: rsa_pk1.c:100: in library: rsa routines, function RSA_padding_check_PKCS1_type_1: block typeis not 01

Dann lösche doch einfach VOR dem Erstellen des neuen simpleCA Dein /etc/grid-security/, Dein /home/fugu/.globus/ und Dein /home/globus/.globus/simpleCA/. Dann geht das auch (warum auch immer….)!”

hmpf. why is my globus toolkit (4.2.1) gridftp not working?

8. Oktober 2009

Now it does! Please have a look into the following:

Xinet logs: /var/log/xinetd.log
Xinetd config files: /etc/xinetd.d/gridftp or /etc/xinetd.d/gsiftp

Check your gridmap-file: /etc/grid-security/grid-mapfile for the correct GRID user and local user!

You can log via server_args = -i -d all -l /tmp/gridftp.log and don’t forget to mention some ports: env += GLOBUS_TCP_PORT_RANGE=20000,25000 in your /etc/xinetd.d/gridftp (don’t forget to restart xinedt).

Test with:

gsissh -v -p 2811 localhost

and then be sure to have something like the following in your log /tmp/gridftp.log:


[9408] Thu Oct 8 17:55:56 2009 :: Server started in inetd mode.
[9408] Thu Oct 8 17:55:56 2009 :: New connection from: hmpf.hostname.de:1865
[9408] Thu Oct 8 17:55:56 2009 :: hmpf.hostname.de:1865: [CLIENT]: USER :globus-mapping:
[9408] Thu Oct 8 17:55:56 2009 :: hmpf.hostname.de:1865: [SERVER]: 331 Password required for :globus-mapping:.
[9408] Thu Oct 8 17:55:56 2009 :: hmpf.hostname.de:1865: [CLIENT]: PASS dummy
[9408] Thu Oct 8 17:55:56 2009 :: DN /O=Grid/OU=GlobusTest/OU=simpleCA-hmpf.hostname.de/OU=hmpf.hostname.de/CN=Your Name successfully authorized.
[9408] Thu Oct 8 17:55:56 2009 :: User hmpf0039 successfully authorized.
[9408] Thu Oct 8 17:55:56 2009 :: hmpf.hostname.de:1865: [CLIENT]: PASS dummy
[9408] Thu Oct 8 17:55:56 2009 :: hmpf.hostname.de:1865: [SERVER]: 230 User hmpf0039 logged in.

And not this:

[18330] Thu Oct 8 17:58:35 2009 :: Server started in inetd mode.
[18330] Thu Oct 8 17:58:35 2009 :: New connection from: hmpf.hostname.de:20095
[18330] Thu Oct 8 17:58:35 2009 :: hmpf.hostname.de:20095: [CLIENT]: USER :globus-mapping:
[18330] Thu Oct 8 17:58:35 2009 :: hmpf.hostname.de:20095: [SERVER]: 331 Password required for :globus-mapping:.
[18330] Thu Oct 8 17:58:35 2009 :: hmpf.hostname.de:20095: [CLIENT]: PASS dummy
[18330] Thu Oct 8 17:58:35 2009 :: hmpf.hostname.de:20095: [CLIENT]: PASS dummy
[18330] Thu Oct 8 17:58:35 2009 :: hmpf.hostname.de:20095: [SERVER]: 530-Login incorrect. : globus_gss_assist: Gridmap lookup failure: Could not map /O=Grid/OU=GlobusTest/OU=simpleCA-hmpf.hostname.de/OU=hmpf.hostname.de/CN=Your Name
530-
530 End.
[18330] Thu Oct 8 17:58:35 2009 :: Closed connection from hmpf.hostname.de:
20095

And do not forget to open ports 8211 (gridftp), 2222 (gsissh), and 20000:20500 for outgoing GSIFTP…

Oh my, Teldemokles REALLY was a bright guy!!

PS. Some additional documentation for gridftp-server configuration can be found here: http://www.globus.org/toolkit/docs/4.2/4.2.1/commands/globus-gridftp-server.html

containercert’s owner settings

7. Oktober 2009

Teldemokles says: “If you always check the containercert’s files’ owner and permissions, then you can start the globus’ container!”.

Permissions for containercert (644) and containerkey (600) files in /etc/grid-security must be set to globus:globus, respectively to your globus admin user! Else you get the following error:

Failed to start container: Failed to initialize 'ReliableFileTransferFactoryService' service [Caused by: [SEC] Service credentials not configured and was not able to obtain container credentials.; nested exception is: org.globus.wsrf.security.SecurityException: [SEC] Error obtaining container credentials; nested exception is: org.globus.wsrf.config.ConfigException: Failed to initialize container security config [Caused by: [Caused by: Failed to load credentials. [Caused by: /etc/grid-security/containerkey.pem (Permission denied)]]]]

Huh!

compiling globus toolkit 4.2.1

29. September 2009

Mein alter Kumpel Teldemokles sagte neulich:

“Kompilierst Du gerade ein neues Globus Toolkit, dann muss Dein bin/javac zu Deiner $JAVA_HOME passen!”

Recht hat er!

globus toolkit und das containercert…

27. September 2009

Da erinnere ich mich doch gerade an einen Ausruf von Teldemokles:

“Willst Du schreiben in DAS GRID, nimm dir ein hostcert.pem mit!
Klappt es dann noch immer nicht, kopier’s Dir auch als containercert.pem!”

:-)

Hm, ja, reimt sich nicht so ganz, aber so gut im Reimen waren die alten Griechen eben doch nicht… also nochmal im Klartext: Für einen funktionierenden Globus-Container brauchen wir ein aktuelles containercert.pem im Verzeichnis /etc/grid-security. Dazu kopieren wir einfach ein gültiges hostcert.pem, natürlich auch die zugehörigen Schlüssel-Dateien… Gut, was? Und natürlich Neustarten nicht vergessen: /etc/init.d/globus-container restart (oder so ähnlich).