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
On a besoin du dépot EPEL pour les dépendances de sympa
[root@server ~]# yum -y install epel-release
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
[root@server ~]# yum -y install sympa sympa-httpd perl-DBD-Pg perl-LDAP mod_ssl mod_auth_cas
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.
... local1.* /var/log/sympa.log ...
... listen_addresses = '*' ...
[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 ...
#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.
<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.
<Location /sympa> SetHandler fcgid-script </Location> ScriptAlias /sympa /usr/libexec/sympa/wwsympa-wrapper.fcgi ... <Location /sympasoap> </Location>
On utilise le mécanisme d'authentification generic_sso qui délégue l'authentification SSO au serveur WEB.
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
... 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 ...