SOGo est un serveur de groupware intégrant un webmail, un calendrier partagé ainsi qu’un service CalDAVet CardDAV permettant par exemple de synchroniser des Smartphones assez facilement.
Le HIC, c’est que SOGo, ne fait que s’interfacer à une infrastructure IMAP, SMTP et LDAP existante.
J’ai décidé d’utiliser l’interface IredAdmin qui est une surcouche à IredMail, une solution de serveur de messagerie packagée.
Cette doc est un mix de celle présente sur le site d’IredAdmin, et de mes essais d’installation. J’espère que cela pourra vous aider… Je n’ai pas trop détaillé les paramètres car cela ne me semble pas pertinant. Si vous en arrivez à installer Iredadmin et SOGo tout seul, vous savez ce que vous faites…
J’ai configuré plusieurs domaines dans IredAdmin, et j’ai configuré SOGo en multidomaines afin de cloisonner mes 2 domaines dans l’interface de SOGo.
Cela évite que le client1 voit les adresses du client2 présent sur le même serveur mutualisé.
Dans un premier temps, il faut installer iredmail free edition en suivant la documentation de l’éditeur : http://www.iredmail.org/install_iredmail_on_debian.html
Pour ce qui est de IredAdmin, il faut tout d’abord l’acheter sur le site avant de recevoir un lien de téléchargement et une doc d’installation très complète et relativement simple, car il s’agit d’un remplacement du dossier iredadmin free par celui de la version pro.
Le « moteur » IredMail est opensource, mais pas l’interface IredAdmin.
Une fois notre serveur de messagerie en place, on passe à l’installation de SOGo.
On ajoute le dépôt inverse à Debian.
# vi /etc/apt/sources.list
# SOGo
deb http://inverse.ca/debian squeeze squeeze
On récupère la clef PGP des paquets
# apt-key adv –keyserver subkeys.pgp.net –recv 19CDA6A9810273C4
On installe SOGo
# aptitude update
# aptitude install sogo sope4.9-gdl1-mysql memcached
Apres l’installation, on doit :
– redémarrer mysql,
# /etc/init.d/mysql restart
– supprimer l’avertissement “tmpreaper”,
# vi /etc/tmpreaper.conf
Changer “SHOWWARNING=true” en “SHOWWARNING=false”
– et corriger une erreur ipv6 pour memcached (seulement sur squeeze).
# vi /etc/memcached.conf
Changer “-l 127.0.0.1” en “-l localhost” , puis reloader memcached
# /etc/init.d/memcached restart
On crée ensuite la database mysql pour SOGo :
# mysql -u root –p
mysql> CREATE DATABASE sogo;
mysql> GRANT ALL ON sogo.* TO sogo@localhost IDENTIFIED BY « mo2pass »;
mysql> flush privileges;
mysql> exit
On active quelques modules apache et on redémarre ce dernier:
# a2enmod proxy
# a2enmod proxy_http
# a2enmod headers
# a2enmod rewrite
# /etc/init.d/apache2 restart
On configure SOGo depuis le compte utilisateur sogo qu’exploite le service.
# su – sogo
On injecte les paramètres de base.
defaults -u sogo write sogod SOGoMailingMechanism smtp
defaults -u sogo write sogod SOGoSMTPServer localhost
defaults -u sogo write sogod SOGoLanguage French
defaults -u sogo write sogod SOGoTimeZone Europe/Paris
defaults -u sogo write sogod SOGoEnableEMailAlarms YES
defaults -u sogo write sogod OCSSessionsFolderURL « mysql://sogo:mo2pass@localhost:3306/sogo/sogo_sessions_folder »
defaults -u sogo write sogod OCSFolderInfoURL « mysql://sogo:mo2pass@localhost:3306/sogo/sogo_folder_info »
defaults -u sogo write sogod SOGoProfileURL « mysql://sogo:mo2pass@localhost:3306/sogo/sogo_user_profile »
defaults -u sogo write sogod OCSEMailAlarmsFolderURL « mysql://sogo:mo2pass@localhost:3306/sogo/sogo_alarms_folder »
defaults -u sogo write sogod SOGoIMAPServer localhost
defaults -u sogo write sogod SOGoCalendarDefaultRoles « (« PublicViewer », »ConfidentialDAndTViewer ») »;
defaults -u sogo write sogod SOGoFirstDayOfWeek 1
defaults -u sogo write sogod SOGoMailAuxiliaryUserAccountsEnabled YES
defaults -u sogo write sogod SOGoAuthenticationMethod LDAP
defaults -u sogo write sogod SOGoMemcachedHost « 127.0.0.1 »
Ensuite, j’applique quelques changement personnels.
Je mets la langue de l’interface par défaut à Français.
defaults -u sogo write sogod SOGoLanguage French
Je limite la liste de sélection des langues, car je n’ai pas besoin de la panoplie de base.
defaults -u sogo write sogod SOGoSupportedLanguages « (« French », »English ») »;
Je change le titre du Webmail SOGO qui ne me plait pas. Par défaut c’est « SOGo »
defaults -u sogo write sogod SOGoPageTitle » Bienvenue sur le GroupWare SOGO de Laurent »
Activation du message d’abscence via les filtres sieve
$ defaults -u sogo write sogod SOGoSieveServer « sieve://localhost:4190 »
$ defaults -u sogo write sogod SOGoVacationEnabled Yes
L’onglet Absence prolongée apparait dans le webmail dans la section préférences.
Je passe à la configuration multidomaines de SOGo, pour 2 domaines :
defaults -u sogo write sogod domains ‘{
mondomaine = {
SOGoMailDomain = mondomaine.com;
SOGoSieveScriptsEnabled = YES;
SOGoVacationEnabled = YES;
SOGoDraftsFolderName = Drafts;
SOGoUserSources = (
{
type = ldap;
CNFieldName = cn;
IDFieldName = uid;
UIDFieldName = uid;
baseDN = « domainName=mondomaine.com,o=domains,dc=intranet,dc=lan »;
bindDN = « cn=Manager,dc=intranet,dc=lan »;
bindPassword = mo2pass;
bindFields = mail;
canAuthenticate = YES;
displayName = « Adresses Client »;
hostname = localhost;
id = public_mondomaine;
isAddressBook = YES;
port = 389;
}
);
};
domaine2 = {
SOGoMailDomain = domaine2.com;
SOGoSieveScriptsEnabled = YES;
SOGoVacationEnabled = YES;
SOGoDraftsFolderName = Drafts;
SOGoUserSources = (
{
type = ldap;
CNFieldName = cn;
UIDFieldName = uid;
baseDN = « domainName=domaine2.com,o=domains,dc=intranet,dc=lan »;
bindDN = « cn=Manager,dc=intranet,dc=lan »;
bindPassword = mo2pass;
bindFields = mail;
canAuthenticate = YES;
displayName = « Adresses Client »;
hostname = localhost;
id = public_domaine2;
isAddressBook = YES;
port = 389;
}
);
}
}’
Voila, j’ai fait le tour de mes paramètres, je peux redémarrer SOGo.
$ /etc/init.d/sogo restart
$ exit
GNUstepDefaults est maintenant configuré complètement et SOGo doit démarrer correctement !!
Si vous rencontrez une erreur lors du démarrage de SOGo, revérifiez le fichier de configuration, /home/sogo/GNUstep/Defaults/.GNUstepDefaults
Modifiez le parefeu d’iredmail (si vous l’utilisez) pour autoriser le trafic sur le port 20000.
pour se faire, modifiez les règles chargées par iredmail :
vi /etc/default/iptables
…
# http/https, smtp/smtps, pop3/pop3s, imap/imaps, ssh
-A INPUT -p tcp -m multiport –dport 80,443,25,465,110,995,143,993,587,465,22 -j ACCEPT#
# Ajouter ceci
#
# Sogo port 20000
-A INPUT -p tcp –dport 20000 -j ACCEPT# Loop device.
-A INPUT -i lo -j ACCEPT
…
Rechargez les règles de parefeu :
/etc/init.d/iptables restart
Si vous allez sur l’url http://IP.DE.MON.SERVEUR:20000/SOGo/ vous devez arriver sur la page d’accueil de SOGo.
Il ne reste plus que la configuration d’apache à réaliser.
Ouvrez le fichier /etc/apache2/conf.d/SOGo.conf et modifiez les paramètres proxy pour vous rediriger correctement quand vous vous logguez à SOGo:
# vi /etc/apache2/conf.d/SOGo.conf
Modifiez la partie de configuration liée au module proxy :
<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
RequestHeader set « x-webobjects-server-port » « 443 »
RequestHeader set « x-webobjects-server-name » « sogo.mondomaine.fr »
RequestHeader set « x-webobjects-server-url » « https://sogo.mondomaine.fr »## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
RequestHeader set « x-webobjects-remote-user » « %{REMOTE_USER}e »
RequestHeader set « x-webobjects-server-protocol » « HTTP/1.0 »
RequestHeader set « x-webobjects-remote-host » %{REMOTE_HOST}e env=REMOTE_HOSTAddDefaultCharset UTF-8
Order allow,deny
Allow from all
</Proxy>
Redémarrer apache et/ou rebooter le système afin de valider que tout fonctionne au démarrage :
# /etc/init.d/apache2 restart
# reboot
Après le reboot, vos interfaces essentielles se trouvent sur les urls suivantes :
https://NOM.DE.MON.SERVEUR/iredadmin (or https://ipaddress/iredadmin)
https://NOM.DE.MON.SERVEUR/SOGo (or https://ipaddress/SOGo)
Le port http est aussi opérationnel, mais c’est tout de même plus sûr de crypter ses sessions.