Sogo : Différence entre versions

De DiouxX's Wiki
Aller à : navigation, rechercher
(Page créée avec « {{ Introduction | Cette page précise comment installer et configurer Sogo }} == Infrastructure == === PostgreSQL === center === PgPool =... »)
 
 
(Une révision intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
 
{{ Introduction | Cette page précise comment installer et configurer Sogo }}
 
{{ Introduction | Cette page précise comment installer et configurer Sogo }}
 
== Infrastructure ==
 
 
=== PostgreSQL ===
 
[[Fichier:sogo-postgresql.jpg|center]]
 
=== PgPool ===
 
 
[[Fichier:sogo-watchdog.jpg|center]]
 
 
=== LDAP-Mail ===
 
[[Fichier:sogo-ldap-mail.jpg|center]]
 
  
 
== Installation ==
 
== Installation ==
Ligne 23 : Ligne 12 :
 
deb http://inverse.ca/debian squeeze squeeze
 
deb http://inverse.ca/debian squeeze squeeze
 
</pre>
 
</pre>
 +
 +
On ajoute la clé publique au dépot
 +
<br>
 +
{{ Console root | sudo apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4 }}
 +
<br>
  
 
Rechargez la liste des paquets :
 
Rechargez la liste des paquets :
Ligne 76 : Ligne 70 :
 
{{ Console root | su sogo }}
 
{{ Console root | su sogo }}
 
<br>
 
<br>
{{ Console | nano /home/sogo//GNUstep/Defaults/.GNUstepDefaults}}
+
{{ Console | nano /home/sogo/GNUstep/Defaults/.GNUstepDefaults}}
 
<br>
 
<br>
 
<pre>
 
<pre>
Ligne 101 : Ligne 95 :
 
<string>YES</string>
 
<string>YES</string>
 
<key>SOGoIMAPServer</key>
 
<key>SOGoIMAPServer</key>
<string>postfix01.admin.pass.be</string>
+
<string>mail.domain.be</string>
 
<key>SOGoLanguage</key>
 
<key>SOGoLanguage</key>
 
         <string>French</string>
 
         <string>French</string>
Ligne 109 : Ligne 103 :
 
         <string>smtp</string>
 
         <string>smtp</string>
 
<key>SOGoSMTPServer</key>
 
<key>SOGoSMTPServer</key>
         <string>postfix01.admin.pass.be</string>
+
         <string>mail.domain.be</string>
 
<key>SOGoProfileURL</key>
 
<key>SOGoProfileURL</key>
 
<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_user_profile</string>
 
<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_user_profile</string>
Ligne 206 : Ligne 200 :
 
<pre>
 
<pre>
 
<key>hostname</key>
 
<key>hostname</key>
<string>192.168.1.24</string>
+
<string>IP_LDAP</string>
 
<key>port</key>
 
<key>port</key>
 
<string>389</string>
 
<string>389</string>
Ligne 263 : Ligne 257 :
 
Par l'IP o le FQDN du serveur sogo
 
Par l'IP o le FQDN du serveur sogo
 
<pre>
 
<pre>
isi:updateURL="http://192.168.1.30/plugins/updates.php?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
+
isi:updateURL="http://IP_SOGO/plugins/updates.php?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
 
</pre>
 
</pre>
 
On renseigne également les extensions que l'on désire installé de manière automatique (D'autre peuvent être ajoutées) :
 
On renseigne également les extensions que l'on désire installé de manière automatique (D'autre peuvent être ajoutées) :
Ligne 318 : Ligne 312 :
 
             <em:targetApplication>
 
             <em:targetApplication>
 
               <Description><?php echo $applications[$plugin["application"]] ?>
 
               <Description><?php echo $applications[$plugin["application"]] ?>
                 <em:updateLink>http://192.168.1.30/plugins/<?php echo $plugin["filename"] ?></em:updateLink>
+
                 <em:updateLink>http://IP_SOGO/plugins/<?php echo $plugin["filename"] ?></em:updateLink>
 
               </Description>
 
               </Description>
 
             </em:targetApplication>
 
             </em:targetApplication>

Version actuelle datée du 14 novembre 2013 à 20:32

Cette page précise comment installer et configurer Sogo

Installation

Installation des paquets

La société montréalaise Inverse qui maintient SOGo propose des paquets sur leur dépôt debian. Pour l'utiliser, vous devrez donc ajouter leur dépôt à votre liste de dépôts, par exemple en ajoutant la ligne suivante à votre fichier /etc/apt/sources.list:

#Pour ubuntu 12.04
deb http://inverse.ca/ubuntu precise precise
#Pour debian Squeeze
deb http://inverse.ca/debian squeeze squeeze

On ajoute la clé publique au dépot

Konsole.png
[root@ordi ~]# sudo apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4


Rechargez la liste des paquets :

Konsole.png
[root@ordi ~]# apt-get update && apt-get upgrade && apt-get install sogo


Il suffit ensuite d'installer le paquet sogo qui installera les dépendances nécessaires. Notez que les paquets n'étant pas signés, vous devrez continuer explicitement leur installation en répondant Oui à l'avertissement du gestionnaire de paquets:

 sogo:~# aptitude install sogo
 Lecture des listes de paquets... Fait
 Construction de l'arbre des dépendances       
 Lecture des informations d'état... Fait
 Lecture de l'information d'état étendu      
 Initialisation de l'état des paquets... Fait
 Lecture des descriptions de tâches... Fait  
 Les NOUVEAUX paquets suivants vont être installés : 
   autotools-dev{a} gnustep-base-common{a} gnustep-base-runtime{a} gnustep-common{a} gnustep-make{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} 
   libavahi-compat-libdnssd1{a} libdbus-1-3{a} libffcall1{a} libgnustep-base1.16{a} libldap-2.4-2{a} libmemcached2{a} libmysqlclient15off{a} libobjc2{a} libsope-appserver4.9{a} 
   libsope-core4.9{a} libsope-gdl1-4.9{a} libsope-ldap4.9{a} libsope-mime4.9{a} libsope-xml4.9{a} libxml2{a} libxslt1.1{a} mysql-common{a} perl{a} perl-modules{a} sgml-base{a} 
   sogo sope4.9-gdl1-mysql{a} sope4.9-libxmlsaxdriver{a} tmpreaper{a} xml-core{a} 
 Les paquets suivants sont RECOMMANDÉS mais ne seront pas installés :
   dbus libnss-mdns memcached mysql-server mysql-server-5.0 
 0 paquets mis à jour, 33 nouvellement installés, 0 à enlever et 0 non mis à jour.
 Il est nécessaire de télécharger 18,2Mo d'archives. Après dépaquetage, 65,6Mo seront utilisés.
 Voulez-vous continuer ? [Y/n/?] 
 ATTENTION : des versions non certifiées des paquets suivants vont
 être installées.
 
 Des paquets non certifiés peuvent compromettre la sécurité de votre
 système. Vous ne devriez les installer que si vous êtes certain
 que c'est bien votre intention.
 
   libsope-core4.9 libsope-gdl1-4.9 libsope-mime4.9 sope4.9-gdl1-mysql libsope-ldap4.9 libsope-xml4.9 sogo libsope-appserver4.9 libmemcached2 sope4.9-libxmlsaxdriver 
 
 Voulez-vous ignorer cet avertissement et continuer quand même ?
 Pour continuer, entrer « Oui ». Pour interrompre l'installation, entrer « Non » : Oui

Attention: il vous faut ensuite installer le paquet correspondant à la base de données que vous souhaitez utiliser, sinon SOGo ne fonctionnera pas et affichera l'erreur suivante dans ses logs:

EOAdaptor: cannot find adaptor bundle: 'PostgreSQL' 

SOGo supporte les SGBD PostgreSQL, MySQL, et Oracle. En fonction de votre choix, vous devrez donc installer les paquets sope4.9-gdl1-postgresql, sope4.9-gdl1-mysql, ou sope4.9-gdl1-oracle. Pour mon installation de test, j'avais fait le choix de PostgreSQL (l'installation de production se base sur MySQL):

aptitude install sope4.9-gdl1-postgresql

Configuration

Sogo

SOGo utilise le système de base de données de configuration du projet GNUStep, qui implémente une sorte de base de registres.

Cette configuration sera utilsé par l'utilisateur système sogo qui a été créé à l'installation des paquets. La commande defaults permet la manipulation de la configuration, qui est dans le fichier ~/GNUstep/Defaults/.GNUstepDefaults. Elle est donc différente pour chaque utilisateur. Ici, l'application fonctionnant sous le compte sogo, il faudra bien veiller à exécuter les appels à defaults sous l'utilisateur sogo.

On passe donc sous le compte sogo

Konsole.png
[root@ordi ~]# su sogo


Konsole.png
[user@ordi ~]$ nano /home/sogo/GNUstep/Defaults/.GNUstepDefaults


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
<plist version="0.9">
<dict>
    <key>NSGlobalDomain</key>
    <dict>
    </dict>
    <key>sogod</key>
    <dict>
	<key>OCSEMailAlarmsFolderURL</key>
	<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_alarms_folder</string>
	<key>OCSFolderInfoURL</key>
	<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_folder_info</string>
	<key>OCSSessionsFolderURL</key>
	<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_sessions_info</string>
	<key>SOGoAppointmentSendEMailNotifications</key>
	<string>YES</string>
	<key>SOGoEnableEMailAlarms</key>
	<string>YES</string>
	<key>SOGoForwardEnabled</key>
	<string>YES</string>
	<key>SOGoIMAPServer</key>
	<string>mail.domain.be</string>
	<key>SOGoLanguage</key>
        <string>French</string>
        <key>SOGoMailAuxiliaryUserAccountsEnabled</key>
        <string>YES</string>
        <key>SOGoMailingMechanism</key>
        <string>smtp</string>
	<key>SOGoSMTPServer</key>
        <string>mail.domain.be</string>
	<key>SOGoProfileURL</key>
	<string>postgresql://sogo:sogo@192.168.100.6:9998/sogo/sogo_user_profile</string>
	<key>SOGoSieveServer</key>
	<string>sieve://192.168.100.5:4190</string>
	<key>SOGoSieveScriptsEnabled</key>
	<string>YES</string>
	<key>SOGoTimeZone</key>
	<string>Europe/Brussels</string>

	<key>SOGoUserSources</key>
	<array>
	    <dict>
		<key>CNFieldName</key>
		<string>displayName</string>
		<key>IDFieldName</key>
		<string>uid</string>
		<key>UIDFieldName</key>
		<string>uid</string>
		<key>IMAPLoginFieldName</key>
                <string>cn</string>
                <key>IMAPHostFieldName</key>
                <string>mailHost</string>
		<key>baseDN</key>
		<string>ou=Users,dc=admin,dc=pass,dc=be</string>
		<key>bindDN</key>
		<string>uid=sogo,ou=Applications,dc=admin,dc=pass,dc=be</string>
		<key>bindPassword</key>
		<string>abcde</string>
		<key>canAuthenticate</key>
		<string>YES</string>
		<key>displayName</key>
		<string>Shared Addresses</string>
		<key>type</key>
                <string>ldap</string>
		<key>hostname</key>
		<string>192.168.100.34</string>
		<key>port</key>
		<string>636</string>
		<key>encryption</key>
		<string>SSL</string>
		<key>scope</key>
                <string>SUB</string>
		<key>passwordPolicy</key>
                <string>NO</string>
		<key>id</key>
		<string>public</string>
		<key>isAddressBook</key>
		<string>YES</string>
		<key>SearchFieldNames</key>
		<array>
			<string>uid</string>
			<string>sn</string>
			<string>displayName</string>
			<string>telephoneNumber</string>
			<string>mail</string>
		</array>
	    </dict>
	</array>

	<key>SOGoVacationEnabled</key>
	<string>YES</string>

	<key>SOGoFirstDayOfWeek</key>
	<string>1</string>


	<key>WOLogFile</key>
        <string>/var/log/sogo/sogo.log</string>
        <key>WOWorkersCount</key>
        <string>3</string>

	<key>NGImap4ConnectionStringSeparator</key>
	<string>.</string>
	<key>SOGoSentFolderName</key>
        <string>INBOX.Sent</string>
	<key>SOGoDraftsFolderName</key>
        <string>INBOX.Drafts</string>
	<key>SOGoTrashFolderName </key>
        <string>INBOX.Trash</string>
	
	<key>SOGoMailComposeMessageType</key>
	<string>html</string>
	<key>SOGoMailSignaturePlacement</key>
	<string>above</string>
	<key>SOGoMailMessageCheck</key>
	<string>every_10_minutes</string>

	<key>SOGoEnablePublicAccess</key>
	<string>YES</string> 
    </dict>
</dict>
</plist>

Pour utiliser LDAP en version non crypté :

<key>hostname</key>
<string>IP_LDAP</string>
<key>port</key>
<string>389</string>

Serveur Web

SOGo dispose de son propre daemon, qui reçoit par défaut ses requêtes sur le port 20000. Pour servir les fichiers images, CSS et autres, il faut installer un serveur HTTP en frontal qui servira de proxy aux requêtes princiaples, relayées vers le port 20000.

Les paquets debian de SOGo installent sa configuration apache dans le fichier /etc/apache2/conf.d/SOGo.conf. Vous devrez l'adapter pour modifier les lignes suivantes:

 RequestHeader set "x-webobjects-server-port" "443"
 RequestHeader set "x-webobjects-server-name" "sogo"
 RequestHeader set "x-webobjects-server-url" "https://sogo.cliss21.com"

Notez que si vous précisez une adresse en HTTPS comme URL du serveur, vous devrez activer et configurer mod_ssl pour votre serveur apache.

La configuration SOGo nécessite mod_proxy et mod_headers. On configurera également l'accès par https si ce n'est déjà fait. Sous debian, l'activation d'un module se fait simplement avec la commande a2enmod et celle d'un vhost par a2ensite. Adaptez les commandes à votre distribution.

# activation des modules proxy et headers
a2enmod proxy_http # ceci active aussi mod_proxy dont dépent mod_proxy_http
a2enmod headers
# activation du module ssl et de la configuration par défaut pour un accès par https
a2enmod ssl
a2ensite default-ssl
# activation du module rewrite
a2enmod rewrite

Lancement de SOGo

Après cette configuration, il faut redémarrer le daemon sogo (de même qu'après chaque modification du fichier .GNUstepDefaults):

/etc/init.d/sogo restart

Intégration Thunderbird

Il est possible d'intégrer Sogo directement dans Thunderbird via des plugins :

  • Sogo-integration
  • Sogo-connector
  • Lightning


BlocNotes.png
À noter !
Les plugins doivent se trouver dans /var/www/plugins


On se rend dans le dossier /var/www/plugins . On crée un dossier temp qui va nous iader à travailler plus proprement

Konsole.png
[root@ordi ~]# mkdir -p /var/www/plugins/temp


On se rend dans le dossier pour travailler et télécharger le plugins integrator ( C'est ce plugin qui va réaliser l'installation des autres plugins qu'on airait renseigné )

Konsole.png


On change le nom du plugin (Question de facilité de travaille) et on va désarchivez le .xpi

Konsole.png
[root@ordi ~]# mv sogo-integrator-3.10.3-sogo-demo.xpi integrator.xpi
[root@ordi ~]# unzip -oq integrator.xpi
[root@ordi ~]# rm -f integrator.xpi


On va éditer le fichier chrome/content/extensions.rdf et remplacer

isi:updateURL="http://sogo-demo.inverse.ca/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">

Par l'IP o le FQDN du serveur sogo

isi:updateURL="http://IP_SOGO/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">

On renseigne également les extensions que l'on désire installé de manière automatique (D'autre peuvent être ajoutées) :

<li><Description em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}" em:name="Lightning"/></li>
<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>

On va reconstruire notre fichier integrator.xpi

Konsole.png
[root@ordi ~]# zip -qr integrator *
[root@ordi ~]# mv integrator.xpi /var/www/plugins
[root@ordi ~]# cd /var/www/plugins
[root@ordi ~]# rm -rf temp


Maintenant que notre plugins est configuré, il nous faut éditer le script d'update /var/www/plugins/updates.php .

On va devoir éditer 3 parties du script :

Cette partie renseigne les plugins à installer ainsi que leur numéro de version

$plugins
= array(
        "sogo-connector@inverse.ca"
         => array( "application" => "thunderbird",
                   "version" => "10.0.3",
                   "filename" => "sogo-connector-10.0.3.xpi" ),
        "sogo-integrator@inverse.ca"
         => array( "application" => "thunderbird",
                   "version" => "10.0.2",
                   "filename" => "sogo-integrator-10.0.2.xpi" ),
        "{e2fda1a4-762b-4020-b5ad-a41df1933103}"
        => array( "application" => "thunderbird",
                   "version" => "1.2.3",
                   "filename" => "lightning-1.2.3.xpi" )
);

Cette partie spécifie le numéro des versions de Thunderbird supportée :

$applications
= array( "thunderbird" => "<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
                <em:minVersion>10.0</em:minVersion>
                <em:maxVersion>10.*</em:maxVersion>" );

Dans cette partie, on doit spécifier l'IP du serveur sogo ou son FQDN :

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:extension:<?php echo $pluginname ?>">
    <em:updates>
      <Seq>
        <li>
          <Description>
            <em:version><?php echo $plugin["version"] ?></em:version>
            <em:targetApplication>
              <Description><?php echo $applications[$plugin["application"]] ?>
                <em:updateLink>http://IP_SOGO/plugins/<?php echo $plugin["filename"] ?></em:updateLink>
              </Description>
            </em:targetApplication>
          </Description>
        </li>
      </Seq>
    </em:updates>
  </Description>
</RDF>

Le fichier complet se trouve ici

Installation

Pour installer le plugin dans Thunderbird :

Warning.png
Attention !
Le premier compte renseigné dans Thunderbird doit absolument être le compte mail lié à Sogo


  • Télécharger le plugin depuis le serveur Sogo : IP ou FQDN/plugins/integrator.xpi
  • Dans Thunderbird, Allé sur la page des extensions -> Intaller un module depuis un fichier


Fichier:InstallXpi.png

  • Redémarrez Thunderbird. Thunderbird va installer les extensions puis redémarrer encore une fois tous seul.
  • Au redémarrage, le mot de passe lié au compte sogo sera demandé


Fichier:PasswordSogo.png

Astuces/Problèmes

Sent is not an IMAP4 folder

Si on rencontre cette erreur, il faut modifier le fichier de configuration de Sogo en y ajoutant ceci :

<key>SOGoSentFolderName</key>
<string>INBOX.Sent</string>


Dans ce cas-ci, Sogo va utiliser le sous dossier Sent qui se trouve dans la boite mail de l'utilisateur.

Disclaimer

TODO

Signature

Pour utiliser la signature, il suffit de d'aller dans l'onglet Préférences -> Courrier IMAP -> Sélectionner le compte -> Cliquer sur signature vide

BlocNotes.png
À noter !
Cette solution ne permet d'utiliser que des signatures en mode texte


Pour utiliser les signatures en html, il faut spécifier à Sogo que les messages doivent s'écrire en html. Il faut éditer le fichier de configuration :

Konsole.png
[user@ordi ~]$ nano /home/sogo/GNUstep/Defaults/.GNUstepDefaults


Il faut ajouter ces 2 lignes suivantes :

...
<key>SOGoMailComposeMessageType</key>
<string>html</string>
...


Il ne reste plus qu'a redémarrer le service Sogo :

Konsole.png
[root@ordi ~]# /etc/init.d/sogo restart


Email reminders et Vacation messages expiration

Pour les courriels de rappel et l'expiration des messages automatiques, il est nécessaire de mettre en place des taches Cron sous l'utilisateur sogo. Il faut donc avant de créer une tache cron se connecter sous l'utilisateur sogo. Pour créer une tâche cron :

Konsole.png
[user@ordi ~]$ crontab -e


# m h  dom mon dow   command
0 * * * * /usr/sbin/sogo-tool expire-autoreply
* * * * * /usr/sbin/sogo-ealarms-notify