Sympa

Helper

Sur le serveur « server », sous /usr/local/adm se trouve un Makefile qui automatise l'installation et la configuration de sympa comme décrit ci-dessous.

/usr/local/adm/Makefile
sympa_install :
	yum -y install epel-release
	yum -y install wget
	cd /etc/yum.repos.d && wget http://sympa-ja.org/download/rhel/6/sympa-ja.org.rhel6.repo
	yum -y install sympa sympa-httpd perl-DBD-Pg perl-LDAP mod_ssl mod_auth_cas
 
sympa_config :
	cp etc/sympa/auth.conf /etc/sympa/
        chown sympa:sympa /etc/sympa/auth.conf
        cp etc/sympa/sympa.conf /etc/sympa/
        chown sympa:sympa /etc/sympa/sympa.conf
        cp etc/httpd/conf.d/auth_cas.conf /etc/httpd/conf.d/
        cp etc/httpd/conf.d/sympa.conf /etc/httpd/conf.d/
        mkdir /var/run/mod_auth_cas
        chown apache:apache /var/run/mod_auth_cas
[root@server ~]# cd /usr/local/adm
[root@server adm]# make sympa_install
[root@server adm]# make sympa_config

Dépôts

EPEL

On a besoin du dépot EPEL pour les dépendances de sympa

  • perl(MIME::Lite::HTML)
  • perl(MIME::Charset)
  • perl(MIME::EncWords)
  • perl(Net::Netmask)
  • perl(Crypt::CipherSaber)
  • perl(Unicode::MapUTF8)
  • perl(EMail::Simple)
[root@server ~]# yum -y install epel-release

Sympa-ja

C'est le dépôt qui contient les RPM de sympa.

[root@server ~]# cd /etc/yum.repos.d && wget http://sympa-ja.org/download/rhel/6/sympa-ja.org.rhel6.repo

Description

Installation

cf https://sourcesup.cru.fr/tracker/index.php?func=detail&aid=7372&group_id=23&atid=167
Le script de création de base SQLite et le code Upgrade.pm fourni par la distribution sympa sont à la fois faux et incohérents.
On va utiliser Postgresql en lieu et place de sqlite.

  • sympa
  • sympa-httpd
  • perl-DBD-SQLite perl-DBD-Pg
  • perl-LDAP
  • mod_ssl
  • mod_auth_cas
[root@server ~]# yum -y install sympa sympa-httpd perl-DBD-Pg perl-LDAP mod_ssl mod_auth_cas

Configuration

Syslog

Sous RHEL, c'est rsyslog qui est installé. Le paquet sympa configure le fichier /etc/syslog.conf; il faut donc modifier le fichier /etc/rsyslog.conf pour avoir les logs de sympa.

/etc/rsyslog.conf
...
local1.* /var/log/sympa.log
...

Postgresql

Configuration
/var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'
...
Création de la base
[root@server ~]# /etc/init.d/postgresql initdb
Initialisation de la base de données :                     [  OK  ]
[root@server ~]# /etc/init.d/postgresql start
Démarrage du service postgresql :                          [  OK  ]
[root@server ~]# chkconfig postgresql on
[root@server ~]# su - postgres
-bash-4.1$ psql -c "alter user postgres with password 'secret'"
ALTER ROLE
-bash-4.1$ createuser sympa
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
-bash-4.1$
[root@server ~]# su - postgres
-bash-4.1$ psql -c "alter user sympa with password 'secret'"
ALTER ROLE
-bash-4.1$ psql -c "create database sympa"
CREATE DATABASE
-bash-4.1$ psql -c "grant all on database sympa to sympa"
GRANT
-bash-4.1$
[root@server ~]# psql -U sympa -d sympa < /usr/share/sympa/bin/create_db.Pg
Mot de passe pour l'utilisateur sympa :
...
[root@server ~]# chown -R sympa:sympa /etc/sympa/
[root@server ~]# sympa.pl --upgrade
info Configuration file read, default log level 4
debug3 Upgrade::probe_db() List::probe_db()
debug2 List::db_connect() List::db_connect
debug2 SQLSource::connect() Connected to Database sympa
debug3 List::db_connect() Connected to Database sympa
...

Apache HTTP Server

/etc/httpd/conf.d/auth_cas.conf
#45bff700_BEGIN
#
#       cf https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=708550
#       To circumvent a bug of mod_auth_cas package in RHEL 6.x
#       relative to mod_ssl not loaded before mod_auth_cas
# 
<IfModule !mod_ssl.c>
        LoadModule ssl_module modules/mod_ssl.so
</IfModule>
#
#45bff700_END
 
LoadModule auth_cas_module modules/mod_auth_cas.so
 
#
# la version de mod_auth_cas utilisée ne supporte pas l'attribut CASValidateSAML
# permettant de récupérer des attributs comme l'adresse email, retourné par le
# serveur CAS la version de mod_auth_cas utilisé ne supporte pas l'attribut CASValidateSAML
# permettant de récupérer des attributs comme l'adresse email, retourné par le
# serveur CAS
#
#CASVAlidateSAML        On
#CASAuthNHeader         CAS_AUTHENTICATED_USER
 
CASDebug                On
CASCookiePath           /var/run/mod_auth_cas/
CASCertificatePath      /etc/httpd/conf/example.com-cacert.pem
CASLoginURL             https://sso.example.com:8443/cas-server-webapp-3.4.11/login
CASValidateURL          https://sso.example.com:8443/cas-server-webapp-3.4.11/serviceValidate
CASProxyValidateURL     https://sso.example.com:8443/cas-server-webapp-3.4.11/proxyValidate

On protége l'url /sympa/generic_sso/CAS/ pour provoquer l'authentification CAS.

/etc/httpd/conf.d/sympa_generic_sso_cas.conf
<Location /sympa/generic_sso/CAS/>
	AuthType cas
	require valid-user
</Location>

On active la prise en charge des urls /sympa et /sympasoap par les fcgi de sympa.

/etc/httpd/conf.d/sympa.conf
	<Location /sympa>
		SetHandler fcgid-script
 
	</Location>
 
	ScriptAlias /sympa /usr/libexec/sympa/wwsympa-wrapper.fcgi
...
	<Location /sympasoap>
 
	</Location>

Sympa

On utilise le mécanisme d'authentification generic_sso qui délégue l'authentification SSO au serveur WEB.

/etc/sympa/auth.conf
generic_sso
	#
	# le texte affiché sur le bouton
	#
	service_name		Connexion
	#
	# la partie de l'url après sso_login -> http://listes.example.com/sso_login/<service_id>/init
	# qui sera protégée par Location/mod_auth_cas sous Apache HTTP Serveur
	#
	service_id		CAS
	#
	#
	#
	logout_url		https://listes.example.com/sympa
	#
	# Pour recuperer l'attribut email une fois l'utilisateur authentifie
	# aupres du serveur CAS
	# la version de mod_auth_cas utilisée ne traitant pas les attributs SAML
	# retournés par le serveur CAS
	#
	ldap_host		directory.example.com:10389
	ldap_bind_dn		uid=admin,ou=system
	ldap_bind_password	secret
	ldap_suffix		ou=users,dc=example,dc=com
	ldap_scope		sub
	#
	# mod_auth_cas met l'identité de l'utilisateur authentifié dans la variable d'environement
	# REMOTE_USER du serveur Apache HTTP
	#
	ldap_get_email_by_uid_filter	(uid=[REMOTE_USER])
	ldap_email_attribute	email

cf https://www.sympa.org/manual/web-interface#installing_wwsympa.fcgi_in_your_apache_server

/etc/sympa/sympa.conf
...
http_host	https://listes.example.com
...
domain          exmaple.com
...
create_list     intranet
...
db_type         Pg
db_name         sympa
db_host         localhost
db_port         5432
db_user         sympa
db_passwd       secret
...
wwsympa_url     https://listes.example.com/sympa
...
sympa.txt · Last modified: 2012/02/05 19:22 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki