...

Installazione su Debian Lenny di Shibboleth 2.4.3 e migrazione

by user

on
Category: Documents
13

views

Report

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
Fly UP