20765
Commentaire: nouvelle version des extensions
|
25611
Séparateur dossier IMAP pour SIEVE
|
Texte supprimé. | Texte ajouté. |
Ligne 18: | Ligne 18: |
* créez et configurez un serveur virtuel de base à votre sauce. Ensuite, installez les prérequis de SOGo et SOGo lui-même : | * créez et configurez un serveur virtuel de base à votre sauce |
Ligne 27: | Ligne 27: |
* reconfigurer les locales : | * reconfigurer les locales : |
Ligne 40: | Ligne 40: |
* reconfigurer le fuseau horaire : | * reconfigurer le fuseau horaire : |
Ligne 47: | Ligne 47: |
dans un objectif SSL et PHP5 (installe le mpm-prefork au lieu du mpm-worker par défaut) |
|
Ligne 51: | Ligne 49: |
aptitude install apache2 libapache2-mod-php5 | aptitude install apache2 apache2-mpm-prefork # supprimer PHP5 si vous l'aviez insallé aptitude purge php5 libapache2-mod-php5 |
Ligne 54: | Ligne 55: |
Ligne 56: | Ligne 58: |
# Configuration Apache2 en mode ssl # cf http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL pour la création du certif dans IGC (http://igc.auf.org) |
# Configuration Apache2 en mode ssl : # - pour la création du certif dans IGC (http://igc.auf.org), # voir http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL # - installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), # voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird |
Ligne 77: | Ligne 82: |
DocumentRoot /var/www | Alias /plugins /srv/sogo-plugins/ <Directory /srv/sogo-plugins/> Options +ExecCGI AddHandler cgi-script .py </Directory> |
Ligne 79: | Ligne 88: |
# pour l'auto-détection par les iPhone RedirectMatch ^/principals/users/(.*)$ https://sogo.xx.auf.org/SOGo/dav/$1 RedirectMatch ^/principals/$ https://sogo.xx.auf.org/SOGo/dav/ RedirectMatch ^/.well-known/(caldav|carddav)$ https://sogo.xx.auf.org/SOGo/dav/ |
|
Ligne 91: | Ligne 104: |
# installer les sites | |
Ligne 93: | Ligne 107: |
Ligne 96: | Ligne 109: |
# Activer les modules proxy requis par SOGo #a2enmod proxy A VERIFIER |
# activer les modules requis par SOGo |
Ligne 102: | Ligne 113: |
}}} * création du certificat dans la PKI AUF : * [[PKI/CréationCertificatServeurSSL]]. * Le ficher PKCS#12 devra être décomposé et mis dans le dossier `/etc/ssl/auf` * redémarrer apache : `service apache2 restart` |
# relancer Apache service apache2 restart }}} |
Ligne 135: | Ligne 144: |
general_log = /var/log/mysql/mysql.log | log = /var/log/mysql/mysql.log |
Ligne 148: | Ligne 157: |
/etc/init.d/mysql restart | service mysql restart |
Ligne 153: | Ligne 162: |
# installation et configuration de sogo (cf http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationSOGo et http://wiki.auf.org/wikiteki/ZA/Montr%C3%A9al/SOGo/ProcedureInstallationVersionDebian) | |
Ligne 156: | Ligne 164: |
echo "deb http://inverse.ca/debian squeeze squeeze" >> /etc/apt/sources.list # ajouter la clé inverse.ca apt-key adv --keyserver subkeys.pgp.net --recv 19CDA6A9810273C4 |
echo "deb http://apt.auf.org/ squeeze auf sogo" >> /etc/apt/sources.list |
Ligne 169: | Ligne 176: |
sed -i -e "s/yourhostname/sogo.ca.auf.org/g" /etc/apache2/conf.d/SOGo.conf | sed -i -e "s/yourhostname/sogo.xx.auf.org/g" /etc/apache2/conf.d/SOGo.conf |
Ligne 178: | Ligne 185: |
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx'; GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; GRANT select ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; # autoriser les autres SOGo à se connecter sur notre sogo |
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx'; -- pour les tests GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- attention à bien changer le 'xx' ici GRANT SELECT,INSERT,UPDATE,DELETE ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- autoriser les autres SOGo à accéder à notre sogo |
Ligne 210: | Ligne 217: |
service sogod start ; sleep 10 ; service sogod stop cat > /root/config_sogo.sh << __EOF__ defaults -u sogo write sogod SOGoMailDomain xx.auf.org |
service sogo stop ; sleep 10 ; service sogo start cat > /root/sogo-config.sh << __EOF__ defaults -u sogo write sogod SOGoMailDomain auf.org |
Ligne 239: | Ligne 247: |
defaults -u sogo write sogod SOGoSieveServer sieve://imap.XX.auf.org:4190/?tls=YES defaults -u sogo write sogod SOGoSieveScriptsEnabled YES defaults -u sogo write sogod NGImap4ConnectionStringSeparator '.' |
|
Ligne 242: | Ligne 253: |
id = public; displayName = ANNUAIRE-AUF; type = sql; |
|
Ligne 243: | Ligne 257: |
displayName = ANNUAIRE-AUF; id = users; |
|
Ligne 246: | Ligne 258: |
type = sql; | |
Ligne 265: | Ligne 276: |
sh /root/config_sogo.sh # augmenter le nombre d'instance de sogo |
sh /root/sogo-config.sh # augmenter le nombre d'instances de sogo |
Ligne 279: | Ligne 290: |
# Relancer Apache service apache2 restart |
|
Ligne 283: | Ligne 297: |
* ouvrir un navigateur et aller à `https:sogo.xx.auf.org` * accepter le certificat * et zou on y est, saisir son prenom.nom (sans le @auf.org), et son mot de passe |
* ouvrir un navigateur et aller à `https://sogo.xx.auf.org/` * on ne peut pas se connecter, car les comptes utilisateurs ne sont pas encore créés. |
Ligne 298: | Ligne 311: |
# après l'installation du paquet rm /usr/local/sbin/sogocentral /etc/cron.d/sogocentral # se référer à la doc pour la suite cat /usr/share/doc/sogocentral-clients/mysql.sql |
# reprendre le modèle de configuration MySQL cp /usr/share/doc/sogocentral-clients/mysql.sql /root/ edit /root/mysql.sql # bien lire et adapter ce qu'il faut mysql sogo < /root/mysql.sql # # Editer le fichier /etc/sogocentral/config.py ===> bien lire et adapter ce qu'il faut, et .... # ... Demander une clé à MoussaNombré et/ou ProgFou |
Ligne 305: | Ligne 321: |
sogocentral-sync }}} * génération des entrées dns pour /etc/hosts (régler les problèmes de DNS inverse pas toujours disponibles) {{{ sogocentral-gen-hosts >> /etc/hosts # vérifier et supprimer au besoin le doublon sur votre serveur local |
sogocentral-sync -v }}} NB : (fichier de config /etc/sogocentral/config.py) {{{ Progfou : j'ai aussi désactivé par défaut l'utilisation du login local venant de la gestion des alias, puisqu'on sait que cela pose des problèmes avec SOGo => par défaut ça mettra le prenom.nom dans mail_pays maintenant, sauf si on fixe USE_LOCAL_LOGIN = True dans /etc/sogocentral/config.py }}} * génération des entrées dns et mise à jour de /etc/hosts (régler les problèmes de DNS inverse pas toujours disponibles) {{{ sogocentral-update-hosts |
Ligne 323: | Ligne 347: |
* vérifier s'il manque des tables sogo dans mysql : `sogocentral-check` * fichiers de log : `/var/log/sogocentral/*.log` |
|
Ligne 326: | Ligne 354: |
# télécharger ces deux fichiers | mkdir -p /home/sogo/GNUstep/Library/SOGo/Templates/MainUI # télécharger ces deux fichiers (template modifié et styles) |
Ligne 340: | Ligne 370: |
INSERT INTO auf_users VALUES ('agenda.[ville_bureau]','agenda.[ville_bureau]',ENCRYPT('[mot_de_passe]',),'Agendas public [nom_bureau]','agenda.[ville_bureau]@xx.auf.org','agenda.[ville_bureau]@xx.auf.org','Agendas public','[nom_bureau]','AUF','[nom_bureau]','[num_tel]','LOCAL'); | INSERT INTO auf_users VALUES ('agenda.[ville_bureau]','agenda.[ville_bureau]',ENCRYPT('[mot_de_passe]'),'Agendas public [nom_bureau]','agenda.[ville_bureau]@xx.auf.org','agenda.[ville_bureau]@xx.auf.org','Agendas public','[nom_bureau]','AUF','[nom_bureau]','[num_tel]','LOCAL'); |
Ligne 348: | Ligne 378: |
* règles importantes dans la création des évènements : préfixer les évènements par leur intitulé explicite. Exemple : | * règles importantes dans la création des évènements : préfixer les évènements par leur intitulé explicite. Exemple : |
Ligne 358: | Ligne 388: |
# module apache-php pour le script aptitude install libapache2-mod-php5 mkdir /var/www/plugins cd /var/www/plugins |
mkdir /srv/sogo-plugins cd /srv/sogo-plugins |
Ligne 364: | Ligne 392: |
wget --user-agent="Client-sogo-config" -O updates.php "http://wiki.auf.org/wikiteki/Projet/SOGo/MiseAJourDesExtensions?action=AttachFile&do=get&target=updates.php" # adaptation du script sed -i -e "s/inverse.ca\/downloads\/extensions/sogo.xx.auf.org\/plugins/" updates.php sed -i -e "s/102/105/" updates.php |
wget --user-agent="Client-sogo-config" -O updates.py "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=updates.py" # le rendre exécutable chmod a+x /srv/sogo-plugins/updates.py # et modifier la ligne 'BASE_URL = "https://sogo.vn.auf.org/plugins"' en remplaçant le 'vn' par le bon code pays |
Ligne 373: | Ligne 401: |
# installation d'un utilitaire pour manipuler les .xpi aptitude install fastjar |
|
Ligne 374: | Ligne 405: |
# utilitaire pour manipuler les .xpi aptitude install fastjar cd /tmp |
|
Ligne 378: | Ligne 406: |
mkdir SOGo cd SOGo jar xf /tmp/sogo-integrator-3.106.xpi |
mkdir tmp cd tmp jar xf ../sogo-integrator-3.106.xpi # configuration des valeurs par défaut pour Lightning edit defaults/preferences/site.js # retirer la ligne suivante : # pref("calendar.timezone.local", "/mozilla.org/20070129_1/America/Montreal"); # configuration de la gestion des extensions |
Ligne 390: | Ligne 425: |
isi:updateURL="http://sogo.xx.auf.org/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%"> | isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%"> |
Ligne 409: | Ligne 444: |
jar cf sogo-integrator-3.106.xpi * cp sogo-integrator-3.106.xpi /var/www/plugins |
# ATTENTION à bien adapter le `sogo.xx.auf.org` ci-dessus jar cf ../sogo-integrator-3.106.xpi * cd .. rm -rf /srv/sogo-plugins/tmp |
Ligne 415: | Ligne 452: |
# 1. aller sur http://sogo.xx.auf.org/plugins, télécharger sogo-integrator (bouton droit - enregistrer sous) et | # 1. aller sur https://sogo.xx.auf.org/plugins, télécharger sogo-integrator (bouton droit - enregistrer sous) et |
Ligne 417: | Ligne 454: |
# 2. voir la ligne : "isi:updateURL="http://sogo.xx.auf.org/plugins/updates.php? | # 2. voir la ligne : "isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py? |
Ligne 420: | Ligne 457: |
# si oui, tout est bon # sinon modifier le fichier /tmp/SOGo/chrome/content/extensions.rdf et # "cd /tmp/SOGo ; jar cf sogo-integrator-3.106.xpi * ; cp sogo-integrator-3.106.xpi /var/www/plugins" |
# si oui tout est bon, sinon recommencer les étapes ci-dessus |
Ligne 425: | Ligne 460: |
==== pour ceux qui ont des clients BlackBerry et/ou Androïd ==== cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationFunambol|Procédure d'installation de Funambol]] ==== pour ceux qui ont des clients Iphone ==== cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationSOGo#CARDDAV_pour_les_Iphones|Procédure de configuration du CARDDAV pour les Iphones]] |
|
Ligne 432: | Ligne 461: |
/!\ '''RAPPEL :''' 1. il faut installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird 1. Il faut absolument désactiver l'OCSP dans Firefox et Thunderbird : Edition -- préférences -- avancé -- [chiffrements / certificats] -- bouton "validation" et là TOUT désactiver (suffit de décocher la première case tout en haut à gauche) /!\ '''ATTENTION :''' faire une sauvegarde des carnets d'adresses locaux de Thunderbird _avant_ d'installer les extensions SOGo ! Il faut également supprimer les éventuels agendas réseau existants (sinon blocage au démarrage). |
|
Ligne 439: | Ligne 475: |
* via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (update.php), il suffit d'installer un seul (le `sogo-integrator`) qui se chargera de mettre les deux autres (`sogo-connector` et `lightning`) : * Télécharger `sogo-integrator` depuis http://sogo.xx.auf.org/plugins |
* via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (`updates.py`), il suffit d'installer un seul (le `sogo-integrator`) qui se chargera de mettre les deux autres (`sogo-connector` et `lightning`) : * Télécharger `sogo-integrator` depuis `https://sogo.xx.auf.org/plugins/` |
Ligne 442: | Ligne 478: |
* vérifier dans les préférences de TB, onglet Lightning, le fuseau horaire, le premier jour de la semaine et les horaires de travail * vérifier dans les préférences de TB, onglet Rédaction > Adressage, le carnet d'adresse à utiliser pour la complétion automatique des adéls |
|
Ligne 443: | Ligne 482: |
. ''Ne semble pas fonctionner via TB... À faire via l'interface web ? -- ProgFou'' | |
Ligne 449: | Ligne 489: |
* les migrations vers SOGo se font à coups d'export/import via des fichiers .ics pour l'agenda et .ldiff pour le carnet. NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier /var/www/plugins du serveur et modifier le script update.php (cf plus haut `gestion des extensions SOGo`) * ajouter un lien vers le site des agendas publics : http://agendas.auf.org |
* les migrations vers SOGo se font à coups d'export/import via des fichiers `.ics` pour l'agenda et `.ldiff` pour le carnet. NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier `/srv/sogo-plugins` du serveur et modifier le script `updates.py` (cf plus haut `gestion des extensions SOGo`) * ajouter un lien vers le site des agendas publics : http://agendas.auf.org/ |
Ligne 456: | Ligne 496: |
* IPHONE (réglages "Mail, Contacts, Calendriers", Autres) * agenda : ajouter un compte CalDAV * carnet d'adresses : ajouter un compte CardDAV (en passant par l'url carddav.sogo.xx.auf.org créer plus haut) __NB__ {{{ iOS entre 4.1 et 4.3 pas de 3.x pas de 5.x non gèré 4.x est nécessaire pour CalDAV, CardDAV, GroupDAV 5.x marche pas }}} * BLACKBERRY : passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour BB]] * ANDROID : passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour Androïd]] == Vérifications == |
=== IPHONE === /!\ '''ATTENTION :''' iOS 4.0.1 et supérieurs, 3.x non supporté ==== ajout des agendas SOGo ==== * aller dans ''Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CalDAV'', puis : * Serveur : sogo.xx.auf.org ''(en ajustant le xx)'' * Nom d'utilisateur : prenom.nom * Mot de passe : lavieestbelle!situn'ycomprendsrien * Description AuF - SOGo * vérifier dans les ''Réglages avancés'' que vous trouvez bien ces valeurs : * Utiliser SSL : activé * Port : 443 ''(et non pas 8443)'' * URL du compte : `https://sogo.xx.auf.org:443/principals/users/prenom.nom` * /!\ attention à bien choisir de synchroniser __tous__ les évènements dans ''Mail, Contacts, Calendrier'' (tout en bas) * aller ensuite dans l'application ''Calendrier'' pour vérifier (onglet ''Calendriers'') ==== ajout des carnets d'adresses SOGo ==== * aller dans ''Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CardDAV'', puis : * Serveur : sogo.xx.auf.org ''(en ajustant le xx)'' * Nom d'utilisateur : prenom.nom * Mot de passe : lavieestbelle!situn'ycomprendsrien * Description AuF - SOGo * vérifier dans les ''Réglages avancés'' que vous trouvez bien ces valeurs : * Utiliser SSL : activé * Port : 443 ''(et non pas 8443)'' * aller ensuite dans l'application ''Contacts'' pour vérifier (onglet ''Groupes'') === BLACKBERRY === cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationFunambol|Procédure d'installation de Funambol]] Passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour BB]] === ANDROID === Utiliser les clients caldav et carddav pour Androïd (Note ([[MoussaNombre|NM]]@03/02/2012 : solution recommandée par Inverse -http://www.sogo.nu/english/downloads/frontends.html-, mais non encore testée) : * [[http://dmfs.org/caldav/|CalDAV-Sync]] * [[http://dmfs.org/carddav/|CardDAV-Sync]] == Liste de vérifications == |
Ligne 471: | Ligne 539: |
== Mise à jour des serveurs SOGo == === Côté central : suivi de l'évolution de SOGo === Afin de mieux suivre l'évolution de SOGo et de s'assurer de la stabilité des nouvelles versions (améliorations et absence de régression) avant leur mise en production chez nous, nous avons mis en place un miroir du dépôt SOGo. Procédure pour le suivi des versions : * dans un CT de test, utiliser la source directe de Inverse.ca * valider dans ce CT les améliorations et l'absence de régression * lancer la mise à jour du dépôt APT avec "sudo debmirror-sogo.sh" * avertir les RTR qu'une mise à jour leur sera proposée par aptitude * suivre le déploiement de la mise à jour sur tous les sites === Côté serveur SOGo (par chaque responsable de serveur SOGo) === Pour mettre à jour tout serveur SOGo, à l'AUF : Dès réception de l'annonce de la disponibilité d'une nouvelle version : * s'assurer que la source utilisée dans le fichier `/etc/apt/sources.list` est bien celle de l'AUF : {{{ deb http://apt.auf.org/ squeeze auf sogo }}} et que celle de Inverse a été supprimée ("deb http://inverse.ca/debian squeeze squeeze") __NB__ : évidemment, ceci, est à faire une seule fois ; pas besoin de le reprendre chaque fois. Outre le fait de vérifier qu'on a la bonne source, tout le reste se fait comme d'habitude, comme pour tout autre serveur Debian. * `aptitude update` * `aptitude safe-upgrade` |
Sommaire
Procédure de déploiement du système SOGo
Côté serveur
Les prérequis serveur
- Un serveur virtuel avec :
- Intel, AMD or PowerPC CPU 3 GHz (côté HN)
- minimum 2048 MB of RAM
- minimum 3 GB d'espace disque
- un serveur imap
- un serveur smtp
Installation et configuration du serveur
- créez et configurez un serveur virtuel de base à votre sauce
- exemple de partitionnement recommandé :
- 2 Go pour / (obligatoire)
- 1 Go pour /var (optionnel)
- 1 Go pour /var/log (recommandé)
- 1 Go pour /var/lib/mysql (obligatoire)
- 3 Go pour /opt (dans le cas d'une installation de Funambol)
une idée des haricots (beancounters) sur le SOGo de Montréal : Projet/SOGo/BeanCounterServeurDeMontreal
- reconfigurer les locales :
# les locales # sélectionner fr_FR.UTF-8 + la langue locale # et choisir celle qu'on veut par défaut, à condition que ce soit en .UTF-8 dpkg-reconfigure locales . /etc/environment . /etc/default/locale export LANG
- reconfigurer le fuseau horaire :
dpkg-reconfigure tzdata
mise en place d'Apache
# installer apache2 + config Unicode + SSL + activation modules aptitude install apache2 apache2-mpm-prefork # supprimer PHP5 si vous l'aviez insallé aptitude purge php5 libapache2-mod-php5 sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset a2enmod mime # Configuration Apache2 en mode ssl : # - pour la création du certif dans IGC (http://igc.auf.org), # voir http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL # - installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), # voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird a2enmod ssl cat > /etc/apache2/sites-available/sogo.xx.auf.org << __EOF__ <VirtualHost *:80> ServerName sogo.xx.auf.org ServerAdmin rtr+sogo@xx.auf.org DocumentRoot /var/www ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-error.log CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-access.log combined RedirectMatch ^/$ https://sogo.xx.auf.org/SOGo </VirtualHost> __EOF__ cat > /etc/apache2/sites-available/sogo.xx.auf.org-ssl << __EOF__ <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName sogo.xx.auf.org ServerAdmin rtr+sogo@xx.auf.org Alias /plugins /srv/sogo-plugins/ <Directory /srv/sogo-plugins/> Options +ExecCGI AddHandler cgi-script .py </Directory> RedirectMatch ^/$ https://sogo.xx.auf.org/SOGo # pour l'auto-détection par les iPhone RedirectMatch ^/principals/users/(.*)$ https://sogo.xx.auf.org/SOGo/dav/$1 RedirectMatch ^/principals/$ https://sogo.xx.auf.org/SOGo/dav/ RedirectMatch ^/.well-known/(caldav|carddav)$ https://sogo.xx.auf.org/SOGo/dav/ ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-error.log CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/sogo.xx.auf.org-cert.pem SSLCertificateKeyFile /etc/ssl/private/sogo.xx.auf.org-key.pem SSLCACertificateFile /etc/ssl/certs/AC-AUF-RACINE+BA.pem # changer la région SSLVerifyClient None </VirtualHost> </IfModule> __EOF__ # installer les sites a2ensite sogo.xx.auf.org a2ensite sogo.xx.auf.org-ssl a2dissite default # activer les modules requis par SOGo a2enmod headers a2enmod rewrite a2enmod proxy_http # relancer Apache service apache2 restart
mise en place de mysql
# installer MySQL + config Unicode aptitude install mysql-server cat > /root/.my.cnf << __EOF__ [client] password = "mot-de-passe-super-complique" #idem que celui tapé lors de l'installation du paquet mysql-server-5.1 précédemment __EOF__ chmod 0600 /root/.my.cnf cat > /etc/mysql/conf.d/local.cnf << __EOF__ [mysqld] # par défaut du côté serveur default-character-set = utf8 #character-set-server = utf8 # à exécuter pour tous les clients (indispensable pour PHP 4, au moins) init-connect = 'SET NAMES utf8' language = /usr/share/mysql/french bind-address = 0.0.0.0 # log_slow_queries = /var/log/mysql/mysql-slow.log # log_bin = /var/log/mysql/mysql-bin.log log = /var/log/mysql/mysql.log # max_connections = 500 [mysqldump] default-character-set = utf8 [mysql] # par défaut du côté client (pour root, qui ne subit pas le init-connect) default-character-set = utf8 __EOF__ # relancer mysql service mysql restart
installation de SOGo
# ajout du dépôt inverse echo "deb http://apt.auf.org/ squeeze auf sogo" >> /etc/apt/sources.list aptitude update aptitude install --without-recommends sogo memcached # corriger memcached pour sogo sed -i -e "s/127.0.0.1/localhost/" /etc/memcached.conf service memcached restart # On met le nom du serveur SOGo dans apache en gardant le HTTPS sed -i -e "s/yourhostname/sogo.xx.auf.org/g" /etc/apache2/conf.d/SOGo.conf # au passage, suite à l'alerte lors de l'installation sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf # base de données cat > /root/sogo-bdd.sql << __EOF__ CREATE DATABASE sogo DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx'; -- pour les tests GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- attention à bien changer le 'xx' ici GRANT SELECT,INSERT,UPDATE,DELETE ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- autoriser les autres SOGo à accéder à notre sogo # mettre un enregistrement reverse dans son dns pour son sogo.xx.auf.org USE sogo; CREATE TABLE auf_users ( c_uid varchar(255) NOT NULL, c_name varchar(255) DEFAULT NULL, c_password varchar(255) DEFAULT NULL, c_cn varchar(255) DEFAULT NULL, mail varchar(255) DEFAULT NULL, mail_pays varchar(255) DEFAULT NULL, givenname varchar(64) DEFAULT NULL, sn varchar(64) DEFAULT NULL, department varchar(255) DEFAULT NULL, title varchar(255) DEFAULT NULL, telephonenumber varchar(16) DEFAULT NULL, source varchar(64) DEFAULT 'LOCAL', PRIMARY KEY (c_uid) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; __EOF__ # le reste des tables sera créé par SOGo lui-même. mysql < /root/sogo-bdd.sql # configuration SOGo # Il faut lancer le service sogo avant la configuration, sinon au lancement, après configuration, il créera un fichier "vide" en écrasant nos config service sogo stop ; sleep 10 ; service sogo start cat > /root/sogo-config.sh << __EOF__ defaults -u sogo write sogod SOGoMailDomain auf.org defaults -u sogo write sogod SOGoMailingMechanism smtp defaults -u sogo write sogod SOGoSMTPServer smtp.xx.auf.org defaults -u sogo write sogod SOGoLanguage French defaults -u sogo write sogod SOGoTimeZone xxxxxxxxxxxxx/xxxxxxxxxxxxx # America/Montreal defaults -u sogo write sogod SOGoEnableEMailAlarms YES defaults -u sogo write sogod OCSSessionsFolderURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_sessions_folder defaults -u sogo write sogod OCSFolderInfoURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_folder_info defaults -u sogo write sogod SOGoProfileURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_user_profile defaults -u sogo write sogod OCSEMailAlarmsFolderURL mysql://sogo:xxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_alarms_folder defaults -u sogo write sogod SOGoIMAPServer imaps://imap.xx.auf.org:993 # pour un serveur en imap # defaults -u sogo write sogod SOGoIMAPServer imap.xx.auf.org defaults -u sogo write sogod SOGoCalendarDefaultRoles '("PublicViewer","ConfidentialDAndTViewer")' defaults -u sogo write sogod SOGoDayStartTime 9 defaults -u sogo write sogod SOGoDayEndTime 17 defaults -u sogo write sogod SOGoFirstDayOfWeek 1 defaults -u sogo write sogod SOGoBusyOffHours YES defaults -u sogo write sogod SOGoDefaultCalendar personal defaults -u sogo write sogod SOGoMailAuxiliaryUserAccountsEnabled YES defaults -u sogo write sogod SOGoPageTitle 'SOGo - AUF xxxxxNOM_BUREAUxxxxxx' defaults -u sogo write sogod SOGoEnablePublicAccess YES defaults -u sogo write sogod SOGoForceIMAPLoginWithEmail YES defaults -u sogo write sogod SOGoFaviconRelativeURL http://www.auf.org/favicon.ico defaults -u sogo write sogod SOGoSuperUsernames '('username_de_l_admin')' defaults -u sogo write sogod SOGoAppointmentSendEMailNotifications YES defaults -u sogo write sogod SOGoSieveServer sieve://imap.XX.auf.org:4190/?tls=YES defaults -u sogo write sogod SOGoSieveScriptsEnabled YES defaults -u sogo write sogod NGImap4ConnectionStringSeparator '.' defaults -u sogo write sogod SOGoUserSources '( { id = public; displayName = ANNUAIRE-AUF; type = sql; canAuthenticate = YES; isAddressBook = YES; LoginFieldNames = (c_uid, mail_pays); userPasswordAlgorithm = crypt; viewURL = "mysql://sogo:xxxxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/auf_users"; IMAPLoginFieldName = mail_pays; authenticationFilter = "source='\''LOCAL'\''"; } )' __EOF__ # NB : adpater les champs suivants : # - code pays (deux caractères, ex. ca) # - serveur smtp # - serveur imap # - mot de passe du compte d'accès à la base de données sogo # - le mot de passe mysql de sogo est celui définit lors de la configuration de la base de données sogo, plus haut service sogo stop sh /root/sogo-config.sh # augmenter le nombre d'instances de sogo sed -i '/^# PREFORK/c PREFORK=5' /etc/default/sogo # corriger l'ordre de démarrage pour que SOGo soit lancé après mysql et non avant if ! grep -q 'Required-Start:.* mysql' /etc/init.d/sogo ; then sed -i -e '/^# Required-Start:/s/$/ mysql/' /etc/init.d/sogo fi insserv sogo service sogo start # Relancer Apache service apache2 restart
- A ce stade, SOGo est prêt et fonctionnel. Pour tester :
ouvrir un navigateur et aller à https://sogo.xx.auf.org/
- on ne peut pas se connecter, car les comptes utilisateurs ne sont pas encore créés.
synchronisations
Inter-implantation et synchronisation des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé)
installation paquet debian développé par ProgFou : sogocentral-clients
echo "deb http://apt.auf.org squeeze auf" >> /etc/apt/sources.list aptitude install auf-keyring aptitude update aptitude install sogocentral-clients # reprendre le modèle de configuration MySQL cp /usr/share/doc/sogocentral-clients/mysql.sql /root/ edit /root/mysql.sql # bien lire et adapter ce qu'il faut mysql sogo < /root/mysql.sql # # Editer le fichier /etc/sogocentral/config.py ===> bien lire et adapter ce qu'il faut, et .... # ... Demander une clé à MoussaNombré et/ou ProgFou # lancer une première synchro (un cron tourne à chaque heure pour le reste) sogocentral-sync -v
Progfou : j'ai aussi désactivé par défaut l'utilisation du login local venant de la gestion des alias, puisqu'on sait que cela pose des problèmes avec SOGo => par défaut ça mettra le prenom.nom dans mail_pays maintenant, sauf si on fixe USE_LOCAL_LOGIN = True dans /etc/sogocentral/config.py
- génération des entrées dns et mise à jour de /etc/hosts (régler les problèmes de DNS inverse pas toujours disponibles)
sogocentral-update-hosts
- génération des régles pour le parefeu (faciliter l'ouverture des filtrages pour les serveurs SOGo)
sogocentral-gen-iptables >> /etc/network/firewall-sogo # ajouter ce fichier dans votre fichier principal de règles iptables, quelque part au début # insérer la dernière régle générée (et en commentaire) dans votre fichier principal de règles iptables après le fichier. # relancer les règles iptables
vérifier s'il manque des tables sogo dans mysql : sogocentral-check
fichiers de log : /var/log/sogocentral/*.log
personnalisation de la page d'accueil
mkdir -p /home/sogo/GNUstep/Library/SOGo/Templates/MainUI # télécharger ces deux fichiers (template modifié et styles) wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.wox "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.wox" wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.css "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.css" # remplacer "Amériques et Caraïbes" par votre région dans le fichier SOGoRootPage.wox # télécharger les logos wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/logo_auf.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=logo_auf.png" wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/sogo-logo-petit.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=sogo-logo-petit.png"
création de comptes génériques pour les agendas publics
- création du compte (remplacer les variables ci-dessous par les bonnes valeurs)
INSERT INTO auf_users VALUES ('agenda.[ville_bureau]','agenda.[ville_bureau]',ENCRYPT('[mot_de_passe]'),'Agendas public [nom_bureau]','agenda.[ville_bureau]@xx.auf.org','agenda.[ville_bureau]@xx.auf.org','Agendas public','[nom_bureau]','AUF','[nom_bureau]','[num_tel]','LOCAL');
- contacter la personne qui a été désigné par l'administration pour gérer les agendas publics et lui donner les codes d'accès :
- elle doit se connecter avec ces codes via sogo web (agenda.[ville_bureau] et son [mot_de_passe])
créer les agendas publics nécessaires en veillant à bien commencer par le nom de la ville : [ville_bureau]-Absences-Missions et [ville_bureau]-Evenements (exemples : Paris-Evenements et Paris-Absences-Missions).
- NB : Commencer par ceux du bureau régional, les autres seront ajoutés au besoin
- elle va ensuite dans l'option partage pour chacun de ces agendas et s'accorde les droits (tous les droits) à elle-même ou à une autre personne déléguée pour tel ou tel autre agenda ; cela pour pouvoir accéder aux agendas publics depuis son compte personnel sans être obligé de se connecter avec le compte générique.
- NB : on peut très bien choisir/préférer utiliser directement le compte générique plutôt que de devoir s'abonner aux agendas publics.
- règles importantes dans la création des évènements : préfixer les évènements par leur intitulé explicite. Exemple :
- Mission - Moussa Nombré (Bucarest) # on indique le lieu de la mission entre parenthèses
- Férié - (BAO) - Fête du travail
- Absence - Christine Legris
gestion des extensions SOGo
- (extensions pour le client Thunderbird + script de mise à jour)
mkdir /srv/sogo-plugins cd /srv/sogo-plugins # récupération du script de mise à jour wget --user-agent="Client-sogo-config" -O updates.py "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=updates.py" # le rendre exécutable chmod a+x /srv/sogo-plugins/updates.py # et modifier la ligne 'BASE_URL = "https://sogo.vn.auf.org/plugins"' en remplaçant le 'vn' par le bon code pays # récupération des extensions wget --user-agent="Client-sogo-config" -O sogo-connector-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-connector-3.106.xpi wget --user-agent="Client-sogo-config" -O lightning-1.0b2.106i.xpi http://www.sogo.nu/files/downloads/extensions/lightning-1.0b2.106i_linux-i686.xpi # installation d'un utilitaire pour manipuler les .xpi aptitude install fastjar # adpatation du sogo-integrator wget --user-agent="Client-sogo-config" -O sogo-integrator-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-integrator-3.106-sogo-demo.xpi mkdir tmp cd tmp jar xf ../sogo-integrator-3.106.xpi # configuration des valeurs par défaut pour Lightning edit defaults/preferences/site.js # retirer la ligne suivante : # pref("calendar.timezone.local", "/mozilla.org/20070129_1/America/Montreal"); # configuration de la gestion des extensions rm chrome/content/extensions.rdf cat > chrome/content/extensions.rdf << __EOF__ <?xml version="1.0"?> <!DOCTYPE RDF> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:isi="http://inverse.ca/sogo-integrator/" xmlns:em="http://www.mozilla.org/2004/em-rdf#" xmlns:NC="http://home.netscape.com/NC-rdf#"> <Seq about="http://inverse.ca/sogo-integrator/extensions" isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%"> <li> <Description em:id="sogo-integrator@inverse.ca" em:name="SOGo Integrator"/> </li> <li> <Description em:id="sogo-connector@inverse.ca" em:name="SOGo Connector"/> </li> <li> <Description em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}" em:name="Lightning"/> </li> </Seq> </RDF> __EOF__ # ATTENTION à bien adapter le `sogo.xx.auf.org` ci-dessus jar cf ../sogo-integrator-3.106.xpi * cd .. rm -rf /srv/sogo-plugins/tmp # Vérification : # Il faut s'assurer que l'extension sogo-integrator a été bien configurée # 1. aller sur https://sogo.xx.auf.org/plugins, télécharger sogo-integrator (bouton droit - enregistrer sous) et # désarchiver et vérifier que le fichier chrome/content/extensions.rdf pointe bien sur votre serveur # 2. voir la ligne : "isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py? # plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">" # AVEZ-VOUS REMPLACE LE xx (sogo.xx.auf.org) PAR VOTRE CODE PAYS ??????????? # si oui tout est bon, sinon recommencer les étapes ci-dessus
Côté poste de travail
RAPPEL :
il faut installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird
- Il faut absolument désactiver l'OCSP dans Firefox et Thunderbird : Edition -- préférences -- avancé -- [chiffrements / certificats] -- bouton "validation" et là TOUT désactiver (suffit de décocher la première case tout en haut à gauche)
ATTENTION : faire une sauvegarde des carnets d'adresses locaux de Thunderbird _avant_ d'installer les extensions SOGo ! Il faut également supprimer les éventuels agendas réseau existants (sinon blocage au démarrage). Nous avons deux modes d'accès à SOGo :
via le web : https://sogo.xx.auf.org. Il faut sur chaque poste :
- ajouter un raccourci firefox vers ce lien
- ajouter ce lien dans les favoris
- ajouter ce lien dans le menu AUF de la région
via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (updates.py), il suffit d'installer un seul (le sogo-integrator) qui se chargera de mettre les deux autres (sogo-connector et lightning) :
Télécharger sogo-integrator depuis https://sogo.xx.auf.org/plugins/
- aller dans TB et installer cette extension. TB va redémarrer une fois tout seul ; après quoi toutes les 3 extensions sont installées et fonctionnelles.
- vérifier dans les préférences de TB, onglet Lightning, le fuseau horaire, le premier jour de la semaine et les horaires de travail
vérifier dans les préférences de TB, onglet Rédaction > Adressage, le carnet d'adresse à utiliser pour la complétion automatique des adéls
- par défaut SOGo crée un agenda et un carnet d'adresses personnels pour chaque utilisateur. Renommer cet agenda et ce carnet en prenom.nom (clique droit-propriétés sur l'objet).
Ne semble pas fonctionner via TB... À faire via l'interface web ? -- ProgFou
TRES IMPORTANT : faire un inventaire avec l'utilisateur pour savoir s'il a ou non des carnets d'adresses (surtout avec des alias) et/ou agendas locaux déjà existants (avant la mise en place de SOGo).
- convenir avec l’intéressé de quoi en faire :
- migrer ces données dans l'agenda/carnet personnel SOGo ?
- les archiver dans des objets distincts de l'agenda/carnet personnel SOGo (deuxième agenda/carnet) ?
- les laisser en local (non accessible dans SOGo) ?
- les virer ?
les migrations vers SOGo se font à coups d'export/import via des fichiers .ics pour l'agenda et .ldiff pour le carnet.
- convenir avec l’intéressé de quoi en faire :
NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier /srv/sogo-plugins du serveur et modifier le script updates.py (cf plus haut gestion des extensions SOGo)
ajouter un lien vers le site des agendas publics : http://agendas.auf.org/
Configuration des téléphones intelligents
IPHONE
ATTENTION : iOS 4.0.1 et supérieurs, 3.x non supporté
ajout des agendas SOGo
aller dans Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CalDAV, puis :
Serveur : sogo.xx.auf.org (en ajustant le xx)
- Nom d'utilisateur : prenom.nom
- Mot de passe : lavieestbelle!situn'ycomprendsrien
- Description AuF - SOGo
vérifier dans les Réglages avancés que vous trouvez bien ces valeurs :
- Utiliser SSL : activé
Port : 443 (et non pas 8443)
URL du compte : https://sogo.xx.auf.org:443/principals/users/prenom.nom
attention à bien choisir de synchroniser tous les évènements dans Mail, Contacts, Calendrier (tout en bas)
aller ensuite dans l'application Calendrier pour vérifier (onglet Calendriers)
ajout des carnets d'adresses SOGo
aller dans Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CardDAV, puis :
Serveur : sogo.xx.auf.org (en ajustant le xx)
- Nom d'utilisateur : prenom.nom
- Mot de passe : lavieestbelle!situn'ycomprendsrien
- Description AuF - SOGo
vérifier dans les Réglages avancés que vous trouvez bien ces valeurs :
- Utiliser SSL : activé
Port : 443 (et non pas 8443)
aller ensuite dans l'application Contacts pour vérifier (onglet Groupes)
BLACKBERRY
cf Procédure d'installation de Funambol
Passer par le client FUNAMBOL pour BB
ANDROID
Utiliser les clients caldav et carddav pour Androïd (Note (NM@03/02/2012 : solution recommandée par Inverse -http://www.sogo.nu/english/downloads/frontends.html-, mais non encore testée) :
Liste de vérifications
Remplir le tableau suivant : http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureDéploiement/ListeDeVérification
Mise à jour des serveurs SOGo
Côté central : suivi de l'évolution de SOGo
- Afin de mieux suivre l'évolution de SOGo et de s'assurer de la stabilité des nouvelles versions (améliorations et absence de régression) avant leur mise en production chez nous, nous avons mis en place un miroir du dépôt SOGo.
Procédure pour le suivi des versions :
- dans un CT de test, utiliser la source directe de Inverse.ca
- valider dans ce CT les améliorations et l'absence de régression
- lancer la mise à jour du dépôt APT avec "sudo debmirror-sogo.sh"
- avertir les RTR qu'une mise à jour leur sera proposée par aptitude
- suivre le déploiement de la mise à jour sur tous les sites
Côté serveur SOGo (par chaque responsable de serveur SOGo)
Pour mettre à jour tout serveur SOGo, à l'AUF :
- Dès réception de l'annonce de la disponibilité d'une nouvelle version :
s'assurer que la source utilisée dans le fichier /etc/apt/sources.list est bien celle de l'AUF :
deb http://apt.auf.org/ squeeze auf sogo
et que celle de Inverse a été supprimée ("deb http://inverse.ca/debian squeeze squeeze")
NB : évidemment, ceci, est à faire une seule fois ; pas besoin de le reprendre chaque fois. Outre le fait de vérifier qu'on a la bonne source, tout le reste se fait comme d'habitude, comme pour tout autre serveur Debian.
aptitude update
aptitude safe-upgrade