Installazione su Debian Lenny di Shibboleth 2.4.3 e migrazione
by user
Comments
Transcript
Installazione su Debian Lenny di Shibboleth 2.4.3 e migrazione
Divisione Infrastrutture e Servizi Informativi (ISI) Installazione su Debian Lenny di Shibboleth 2.4.3 e migrazione dalla versione da repository preconfigurata Diego Fantoma ([email protected]) – Arjuna Scagnetto ([email protected]) Il presente documento rappresenta una breve guida per aggiornare Shibboleth e le relative librerie dalla versione da repository di Debian Lenny in modo da rendere operativa l'autenticazione federata tramite WAYF. Prerequisito indispensabile per completare con successo la migrazione è che: Shibboleth 2 sia già installato; si sia verificato il buon funzionamento su un singolo IdP; si sia verificato il solo mancato funzionamento della configurazione in modalità federata. La macchina inoltre deve essere configurata in rete, eventualmente con le impostazioni del proxy per l'utilizzo con wget. Il presente documento è redatto in marzo 2012: prima di procedere assicurarsi che i link e le versioni presenti al momento dell'installazione siano conformi a quanto descritto. Si declina ogni responsabilità sull'uso della presente guida. Aggiornamento del sistema e scaricamento delle librerie necessarie, da eseguire come root: apt-get update apt-get install wget gcc g++ make libssl0.9.8 libssl-dev libcurl3 libcurl4-openssl-dev libxerces-c28 apt-get install libxerces-c2-dev libxml-security-c14 libxml-security-c-dev apache2-threaded-dev export MYBUILD=~/shibsp2.4.3-build mkdir -p $MYBUILD cd $MYBUILD wget http://www.shibboleth.net/downloads/log4shib/latest/log4shib-1.0.4.tar.gz wget http://www.shibboleth.net/downloads/c++-opensaml/latest/opensaml-2.4.3.tar.gz wget http://www.shibboleth.net/downloads/c++-opensaml/latest/xmltooling-1.4.2.tar.gz wget http://www.shibboleth.net/downloads/service-provider/latest/shibboleth-sp-2.4.3.tar.gz tar xvfz log4shib-1.0.4.tar.gz tar xvzf xmltooling-1.4.2.tar.gz tar xvfz opensaml-2.4.3.tar.gz tar xvfz shibboleth-sp-2.4.3.tar.gz export SHIB_HOME=/opt/shibboleth-sp-2.4.3 mkdir $SHIB_HOME !" # $ %!& '"' (() !! ,,,$ * %!& '"' (() !! + - $ . $ $ Build delle librerie e del software cd $MYBUILD;pushd $MYBUILD/log4shib-1.0.4/ && ./configure --disable-static --disable-doxygen --prefix=$SHIB_HOME && make && make install && popd cd $MYBUILD;pushd $MYBUILD/xmltooling-1.4.2/ && ./configure --with-log4shib=$SHIB_HOME --prefix=$SHIB_HOME -C && make && make install && popd cd $MYBUILD;pushd $MYBUILD/opensaml-2.4.3/ && ./configure --prefix=$SHIB_HOME --with-log4shib=$SHIB_HOME -C && make && make install && popd cd $MYBUILD;pushd $MYBUILD/shibboleth-2.4.3/ && ./configure --with-saml=$SHIB_HOME --enable-apache-22 --with-log4shib=$SHIB_HOME --with-xmltooling=$SHIB_HOME --prefix=$SHIB_HOME -C && make && make install && popd Operazioni di aggiornamento: /etc/init.d/apache2 stop /etc/init.d/shibd stop cp -rp /etc/shibboleth /etc/shibboleth_ORG a2dismod shib2 apt-get remove libapache2-mod-shib2 apt-get remove libshibsp1 apt-get remove shibboleth-sp2-schemas dpkg --purge libshibsp1 dpkg --purge libapache2-mod-shib2 rm -rf /var/run/shibboleth mv /var/log/shibboleth /var/log/shibboleth_ORG ln -s $SHIB_HOME /opt/shibboleth-sp2 export SHIBSP_CONFIG=/etc/shibboleth mkdir -p $SHIBSP_CONFIG cp /etc/shibboleth_ORG/accessError.html /etc/shibboleth cp /etc/shibboleth_ORG/bindingTemplate.html /etc/shibboleth cp /etc/shibboleth_ORG/globalLogout.html /etc/shibboleth cp /etc/shibboleth_ORG/localLogout.html /etc/shibboleth cp /etc/shibboleth_ORG/metadataError.html /etc/shibboleth cp /etc/shibboleth_ORG/sessionError.html /etc/shibboleth cp /etc/shibboleth_ORG/sslError.html /etc/shibboleth cp /etc/shibboleth_ORG/discoveryTemplate.html /etc/shibboleth cp /etc/shibboleth_ORG/attribute-map.xml /etc/shibboleth cp /etc/shibboleth_ORG/attribute-policy.xml /etc/shibboleth cp /etc/shibboleth_ORG/example-metadata.xml /etc/shibboleth 2/7 cp /etc/shibboleth_ORG/shibboleth2.xml /etc/shibboleth cp /etc/shibboleth_ORG/GARR-CA.pem /etc/shibboleth cp /etc/shibboleth_ORG/sp-cert.pem /etc/shibboleth cp /etc/shibboleth_ORG/sp-key.pem /etc/shibboleth cp /etc/shibboleth_ORG/console.logger /etc/shibboleth cp /etc/shibboleth_ORG/upgrade.xsl /etc/shibboleth mkdir -p /var/log/shibboleth cp ${SHIB_HOME}/etc/shibboleth/native.logger ${SHIBSP_CONFIG} cp ${SHIB_HOME}/etc/shibboleth/shibd.logger ${SHIBSP_CONFIG} cp ${SHIB_HOME}/etc/shibboleth/syslog.logger ${SHIBSP_CONFIG} echo 'log4j.appender.native_log.fileName=/var/log/shibboleth/native.log' >> /etc/shibboleth/native.logger echo 'log4j.appender.shibd_log.fileName=/var/log/shibboleth/shibd.log' >> /etc/shibboleth/shibd.logger echo 'log4j.appender.tran_log.fileName=/var/log/shibboleth/transaction.log' >> /etc/shibboleth/shibd.logger Editare nella directory /etc/init.d il file shibd che si trova nell'appendice del presente documento e renderlo avviabile di default alla partenza del sistema: chmod +x /etc/init.d/shibd update-rc.d shibd defaults Preparazione dei log files touch /var/log/shibboleth/shibd.log touch /var/log/shibboleth/native.log chown root:www-data /var/log/shibboleth/native.log chmod g+w /var/log/shibboleth/native.log chown root:www-data /var/log/shibboleth/shibd.log chmod g+w /var/log/shibboleth/shibd.log Configurazione di Apache2 echo 'ShibConfig /etc/shibboleth/shibboleth2.xml' > /etc/apache2/mods-available/shib2.conf echo >> /etc/apache2/mods-available/shib2.conf echo '<IfModule mod_alias.c>' >> /etc/apache2/mods-available/shib2.conf echo ' echo ' <Location /shibboleth-sp>' >> /etc/apache2/mods-available/shib2.conf Allow from all' >> /etc/apache2/mods-available/shib2.conf echo ' </Location>' >> /etc/apache2/mods-available/shib2.conf echo ' Alias /shibboleth-sp/main.css /etc/shibboleth/main.css' >> /etc/apache2/mods-available/shib2.conf echo ' Alias /shibboleth-sp/EDIT-Logo.png /etc/shibboleth/EDIT-Logo.png' >> /etc/apache2/modsavailable/shib2.conf echo '</IfModule>' >> /etc/apache2/mods-available/shib2.conf 3/7 echo 'LoadModule mod_shib /opt/shibboleth-sp2/lib/shibboleth/mod_shib_22.so' > /etc/apache2/modsavailable/shib2.load echo 'export LD_LIBRARY_PATH=/opt/shibboleth-sp2/lib' >> /etc/apache2/envvars a2enmod shib2 Riavvio dei server: /etc/init.d/shibd start /etc/init.d/apache2 start Operazioni di verifica: Accedere alle posizioni sicure verificando anche nei log di shibboleth il buon funzionamento del sistema. 4/7 File shibd da inserire in /etc/init.d #! /bin/sh ### BEGIN INIT INFO # Provides: shibd # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Shibboleth 2 Service Provider Daemon # Description: Starts the separate daemon used by the Shibboleth # Apache module to manage sessions and to retrieve # attributes from Shibboleth Identity Providers. ### END INIT INFO # # Written by Quanah Gibson-Mount <[email protected]> # Modified by Lukas Haemmerle <[email protected]> for Shibboleth 2 # Based on the dh-make template written by: # # Written by Miquel van Smoorenburg <[email protected]>. # Modified for Debian # by Ian Murdock <[email protected]>. PATH=/sbin:/bin:/usr/sbin:/usr/bin DESC="Shibboleth 2 daemon" NAME=shibd SHIB_HOME=/opt/shibboleth-sp2 SHIBSP_CONFIG=/etc/shibboleth/shibboleth2.xml LD_LIBRARY_PATH=$SHIB_HOME/lib DAEMON=$SHIB_HOME/sbin/$NAME SCRIPTNAME=/etc/init.d/$NAME PIDFILE=/var/run/$NAME.pid DAEMON_OPTS="" # Force removal of socket DAEMON_OPTS="$DAEMON_OPTS -f" # Use defined configuration file DAEMON_OPTS="$DAEMON_OPTS -c $SHIBSP_CONFIG" 5/7 # Specify pid file to use DAEMON_OPTS="$DAEMON_OPTS -p $PIDFILE" # Specify wait time to use DAEMON_OPTS="$DAEMON_OPTS -w 30" # Exit if the package is not installed. [ -x "$DAEMON" ] || exit 0 # Read configuration if it is present. [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Get the setting of VERBOSE and other rcS variables. [ -f /etc/default/rcS ] && . /etc/default/rcS case "$1" in start) # Don't start shibd if NO_START is set. if [ "$NO_START" = 1 ] ; then echo "Not starting $DESC (see /etc/default/$NAME)" exit 0 fi echo -n "Starting $DESC: " start-stop-daemon --start --quiet \ --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile $PIDFILE \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; 6/7 *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 7/7