Tags:
,
view all tags
---+!! CREAM Service Reference Card for EMI-2 %TOC% ---++ Daemons running The following processes should run on a CREAM CE: * tomcat (e.g. =/usr/lib/jvm/java/bin/java -server -Xms128m -Xmx512m -Dglite.log.path=/var/log/cream -Dcatalina.ext.dirs=/usr/share/tomcat5/shared/lib:/usr/share/tomcat5/common/lib -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSource=) * blahpd ( =/usr/bin/blahpd=). This is automatically started by starting tomcat * resource BDII ( =/usr/sbin/slapd -f /etc/bdii/bdii-slapd.conf -h ldap://0.0.0.0:2170 -u ldap=, =/usr/bin/python /usr/sbin/bdii-update -c /etc/bdii/bdii.conf -d=) * gridftp server ( =/usr/sbin/globus-gridftp-server=) * LB locallogger ( =/usr/bin/glite-lb-logd=, =/usr/bin/glite-lb-interlogd=) * mysqld ( =/usr/libexec/mysqld=). Actually mysqld could be deployed and run in another machine different than the CREAM CE) * new blparser daemons ( =/usr/libexec/BNotifier=, =/usr/libexec/BUpdaterxxx=) if the new BLAH blparser is used. They are automatically started by blahpd, which is started by tomcat * old blparser daemon (BLParserxxx) if the old BLAH blparser is used. It runs where the batch system log files are available (which can be the CREAM CE node or a different node) ---++ Init scripts and options (start|stop|restart|...) * Init script for tomcat: =/etc/init.d/tomcat5 {start|stop|restart|condrestart|try-restart|reload|force-reload|status|version}= * Init script for resource BDII: =/etc/init.d/bdii {start|stop|restart|condrestart|status}= * Init script for gridftp server: =/etc/init.d/globus-gridftp {start|stop|restart|status}= * Init script for LB locallogger: =/etc/init.d/glite-lb-locallogger {start,stop,restart,status}= * Init script for mysql: =/etc/init.d/mysqld {start|stop|status|condrestart|restart}= * Init script for old blparser: =/etc/init.d/glite-ce-blparser {start|stop|restart|status}= * Init script for new blparser: =/etc/init.d/glite-ce-blahparser {start|stop|restart|status}=. Actually the new blparser is automatically started by blahpd, which is started by tomcat ---++ Configuration files location with example or template * CREAM configuration file ( =/etc/glite-ce-cream/cream-config.xml=). This file is created by yaim-cream-ce. A template for ARGUS is installed as =/etc/glite-ce-cream/cream-config-argus.xml.template=, and one for gJAF is installed as =/etc/glite-ce-cream/cream-config-gjaf.xml.template=. * CREAM ES configuration file ( =/etc/glite-ce-cream-es/cream-config.xml=). This file is created by yaim-cream-ce. A template for ARGUS is installed as =/etc/glite-ce-cream-es/cream-es-config-argus.xml.template=, and one for gJAF is installed as =/etc/glite-ce-cream-es/cream-es-config-gjaf.xml.template=. * BLAH configuration file ( =/etc/blah.config=). This file is created by yaim-cream-ce. A template is installed as =/etc/blah.config.template=. * BLparser configuration file ( =/etc/blparser.conf=) only for the old blparser. This file is created by yaim-cream-ce. A template is installed as =/etc/blparser.conf.template=). * glexec configuration file ( =/etc/glexec.conf=). This file is created by yaim-cream-ce only when gJAF is used as authorization system. * LCAS configuration file for glexec ( =/etc/lcas/lcas-glexec.db=). This file is created by yaim-cream-ce only when gJAF is used as authorization system. * LCMAPS configuration file for glexec ( =/etc/lcmaps/lcmaps-glexec.db=). This file is created by yaim-cream-ce only when gJAF is used as authorization system. * LCAS configuration file for gridftpd ( =/etc/lcas/lcas.db=). This file is created by yaim-core (only when gJAF is used as authorization system). * LCMAPS configuration file for gridftpd ( =/etc/lcmaps/lcmaps.db=). This file is created by yaim-core (only when gJAF is used as authorization system). * ARGUS configuration file for gridftpd ( =/etc/grid-security/gsi-pep-callout.conf=) only when the CREAM CE is configured to use ARGUS. This file is created by yaim-core. ---++ Logfile locations (and management) and other useful audit information The relevant log files are: * The tomcat log file ( =/usr/share/tomcatx/logs/catalina.out=) * The trustmanager log file ( =/usr/share/tomcatx/logs/trustmanager.log=) * The CREAM log file ( =/var/log/cream/glite-ce-cream.log=). The verbosity of this file can be increased modifying the file =/etc/glite-ce-cream/log4j.properties= replacing: <verbatim> log4j.logger.org.glite=info, fileout </verbatim> $ : with: <verbatim> log4j.logger.org.glite=debug, fileout </verbatim> $ : You may also change the attributes =log4j.appender.fileout.MaxFileSize= and =log4j.appender.fileout.MaxBackupIndex= to change the maximum file size and the maximum number of log files to be kept. * The CREAM ES log file ( =/var/log/cream-es/glite-ce-cream-es.log=) if EMI-ES is deployed. The verbosity of this file can be increased modifying the file =/etc/glite-ce-cream-es/log4j.properties= replacing: <verbatim> log4j.logger.org.glite=info, fileout </verbatim> $ : with: <verbatim> log4j.logger.org.glite=debug, fileout </verbatim> $ : You may also change the attributes =log4j.appender.fileout.MaxFileSize= and =log4j.appender.fileout.MaxBackupIndex= to change the maximum file size and the maximum number of log files to be kept. * The glexec log files. glexec by default logs on syslog but it is also possible to log on file instead. Check the meaning of the variables =GLEXEC_CREAM_LOG_DESTINATION=, =GLEXEC_CREAM_LOG_FILE=, =GLEXEC_CREAM_LCASLCMAPS_LOG= in the [[https://twiki.cern.ch/twiki/bin/view/LCG/Site-info_configuration_variables#cream_CE][yaim reference guide]]. The verbosity can be changed editing the glexec configuration file =/etc/glexec.conf=. * The new BLAH blparser log files ( =/var/log/cream/glite-ce-bnotifier.log= and =/var/log/cream/glite-ce-bupdater.log=) if the new blparser is used * The old BLAH blparser log files (=/var/log/cream/glite-xxxparser.log) if the old blparser is used * The gridftp log files ( =globus-gridftp.log= and =gridftp-session.log=) ---++ Open ports | *Service* | *From node* | *From port* | *To node* | *To port* | *Other info* | | CREAM Service | {UI, WMS} | * | CREAM-CE | 8443 | | | Gridftp control | {{UI, WMS, WN} | C | CREAM-CE | 2811 | | | Gridftp data | {UI, WMS, WN} | C | CREAM-CE | C | | | Notifications to CREAM by BLparser and !JobWrapper | {WN, Blparser host} | * | CREAM-CE | 49152 | Specified by =LRMS_EVENT_LISTENER_PORT= in CREAM conf file | | Notifications to CREAM by BLparser and !JobWrapper | {WN, Blparser host} | * | CREAM-CE | 49155 | Specified by =BLAH_NOTIFICATION_LISTENER_PORT= in CREAM-ES conf file | | CREAM job sensor | CEMon host | * | CREAM-CE | 49154 | Specified by =CREAM_JOB_SENSOR_PORT= in CREAM conf file. CEMON Host is usually the CREAM CE | | LB locallogger | WN | C | CREAM-CE | 9002 | | | LB locallogger | CREAM-CE | C | LB server | 9001 || | mysql | CREAM-CE | * | mysql server | 3306 | By default the mysql server is the CREAM CE | | BDII | Resource BDII | * | CREAM-CE | 2170 || | Old BLparser listening port | CREAM-CE | * | Blparser host | 33333 | Specified by yaim variable =BLP_PORT= | | Old BLparser CREAM listening port | CREAM-CE | * | BLparser host | 56565 | Specified by yaim variable =CREAM_PORT= | C: Controllable Ephemeral range (e.g. 20000-25000). Note: In practice, although this port-range is locally configurable using the =GLOBUS_TCP_PORT_RANGE= environment variable, the values applying at a remote service cannot be predicted. Consequently reliable connection can only be established if all ports >1023 are left open for outbound connections. ---++ Where is service state held (and can it be rebuilt) CREAM job related information are kept in the CREAM DB and in the filesystem in the directory referred:by * =CREAM_SANDBOX_DIR= (default =/var/glite/cream_sandbox=) in the CREAM configuration file ( =/etc/glite-ce-cream/cream-config.xml=) for the legacy interface. * =CREAM_SANDBOX_DIR= (default =/var/glite/cream_sandbox=) in the CREAM ES configuration file ( =/etc/glite-ce-cream-es/cream-config.xml=) for the EMI-ES interface. ---++ Cron jobs The cron jobs can be found in =/etc/cron.d= and are: * =bdii-proxy= * =fetch-crl= * =lcg-expiregridmapdir= * =cleanup-grid-accounts= * =locallogger.cron= * =glite-apel-xxx-parser= (batch system dependent) ---++ Security information ---+++ Access control Mechanism description (authentication & authorization) ---++++ Authentication Authentication in CREAM is managed via the trustmanager. The Trust Manager is the component responsible for carrying out authentication operations. It is an implementation of the J2EE security specifications. Authentication is based on PKI. Each user (and Grid service) wishing to access CREAM is required to present an X.509 format certificate. These certificates are issued by trusted entities, the Certificate Authorities (CA). The role of a CA is to guarantee the identity of a user. This is achieved by issuing an electronic document (the certificate) that contains the information about the user and is digitally signed by the CA with its private key. An authentication manager, such as the Trust Manager, can verify the user identity by decrypting the hash of the certificate with the CA public key. This ensures that the certificate was issued by that specific CA. The Trust Manager can then access the user data contained in the certificate and verify the user identity. ---++++ Authorization for the CREAM service Authorization in the CREAM CE can be implemented in two different ways (the choice is done at configuration time): * Authorization with ARGUS * Authorization with gJAF Argus is a system meant to render consistent authorization decisions for distributed services (e.g. compute elements, portals). In order to achieve this consistency a number of points must be addressed. First, it must be possible to author and maintain consistent authorization policies. This is handled by the Policy Administration Point (PAP) component in the service. Second, authored policies must be evaluated in a consistent manner, a task performed by the Policy Decision Point (PDP). Finally, the data provided for evaluation against policies must be consistent (in form and definition) and this is done by the Policy Enforcement Point (PEP). Argus is also responsible to manage the Grid user - local user mapping. gJAF (Grid Java Authorization Framework) provides a way to invoke a chain of policy engines and get a decision result about the authorization of a user. The policy engines are divided in two types, depending on their functionality. They can be plugged into the framework in order to form a chain of policy engines as selected by the administrator in order to let him set up a complete authorization system. A policy engine may be either a PIP or a PDP. PIP collect and verify assertions and capabilities associated with the user, checking her role, group and VO attributes. PDP may use the information retrieved by a PIP to decide whether the user is allowed to perform the requested action, whether further evaluation is needed, or whether the evaluation should be interrupted and the user access denied. In CREAM CE VO based authorization is supported. In this scenario, implemented via the VOMS PDP, the administrator can specify authorization policies based on the VO the jobs' owners belong to (or on particular VO attributes). When gJAF is used as authorization mechanism, the Grid user - local user mapping is managed via glexec, For what concerns authorization on job operations, by default each user can manage (e.g. cancel, suspend, etc.) only her own jobs. However, the CREAM administrator can define specific super-users who are empowered to manage also jobs submitted by other users. ---++++ Authorization for gridftpd When the CREAM CE is configured to use Argus, ARGUS manages also the authorization for gridftp server If instead gJAF is used to manage the authorization, LCAS and LCMAPS are used to implement authorization for gridftp server. ---+++ How to block/ban a user If ARGUS is used as authorization system, ARGUS can be used to ban users. If instead gJAF is used, add the DN of the user to be banned in =/etc/lcas/ban_users.db=. Please note that the DN must be in quotes in this file. ---+++ Security recommendations * It is recommended to close ports 49152 (that is =LRMS_EVENT_LISTENER_PORT= in the CREAM conf file ) and 49155 (that is = =BLAH_NOTIFICATION_LISTENER_PORT= in CREAM-ES conf file) to all nodes, expect the WNs and the one running the BLparser * It is recommended to close port 49154 (that is =CREAM_JOB_SENSOR_PORT=) to all nodes except the one running CEMon (which by default is the CREAM_CE node) * Use pool accounts instead of static accounts where possible * Configure enough pool accounts so that recycling occur rarely . Releasing accounts should be an exception to the rule and should happen only then, if there's other way round. However, if this happens, it should be taken care of, that really all jobs of that account are finished * Ensure that each VO software area is only writable by the software manager for that VO (group writable only for the "sgm" accounts group, not the VO) * Do not mount the VO software areas on the CREAM CE node, but only on the WNs * If there are more than one computing elements at a site, that access the same worker nodes, it`s recommended to set up individual, unique accounts for all CEs (such as "user001" ... "user100" on CE1 and "user101" ... "user200" on CE2 and so on) or to centrally mount gridmapdir, in order to guarantee, that no user is able to read the data of any other users.If ARGUS is used, gridmapdir must be centrally mounted. ---+++ Other security relevant comments * A user can manage (check status, cancel, etc.) only her jobs * It is possible to define admins for a CREAM CE. An admin of a CREAM CE can manage all (not only her own) jobs submitted to that CE and it can also disable/re-enable job submissions to that CREAM CE: * An admin can decide to disable new job submissions (e.g. because that CE will have to be turned off) * This is done calling a proper operation (provided by the CREAM CLI as glite-ce-disable-submission) * When job submissions have been disabled, the other operations (e.g. job status, etc.) are still allowed * An admin can then re-enable job submissions * This is done calling a proper operation (provided by the CREAM CLI as glite-ce-enable-submission) * To specify an admin for a CREAM CE, just add her DN on /etc/grid-security/admin-list -- Main.MassimoSgaravatto - 2012-01-18
Edit
|
Attach
|
PDF
|
H
istory
:
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
More topic actions...
Topic revision: r2 - 2012-04-17
-
MassimoSgaravatto
Home
Site map
CEMon web
CREAM web
Cloud web
Cyclops web
DGAS web
EgeeJra1It web
Gows web
GridOversight web
IGIPortal web
IGIRelease web
MPI web
Main web
MarcheCloud web
MarcheCloudPilotaCNAF web
Middleware web
Operations web
Sandbox web
Security web
SiteAdminCorner web
TWiki web
Training web
UserSupport web
VOMS web
WMS web
WMSMonitor web
WeNMR web
General Doc
Functional Description
Batch System Support
CREAM and Information Service
Release Notes
Known Issues
Security in CREAM
Nagios Probes to monitor CREAM and WN
Papers
Presentations
User Doc
CREAM User Guide for EMI-1
CREAM User Guide for EMI-2
CREAM User Guide for EMI-3
CREAM JDL Guide
BLAH User Guide
Troubleshooting Guide
System Administrator Doc
System Administrator Guide for CREAM (EMI-3 release)
System Administrator Guide for CREAM (EMI-2 release)
System Administrator Guide for CREAM (EMI-1 release)
The CREAM configuration file
The CEMonitor configuration file
The CREAM CE Service Reference Card (EMI-2 release)
The CREAM CE Service Reference Card (EMI-1 release)
Batch System related documentation
Troubleshooting Guide
The guide for integrating EMIR in CREAM
]
Developers Doc
CREAM Client API C++ Documentation
CREAM Client API for Python
Other Doc
Contacts
Moving to CREAM from LCG-CE
Testing
Internal Collaboration Information
Credits
CREAM Web utilities
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Edit
Attach
Copyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback