tutoriel > Kolab
Procédure d’installation & configuration du groupware Kolab (Centos9 Stream).
Joyeusement rédigé par l’équipe Kolab (Frédéric Petit - Cédric Verion - Maël Chupin).
Cette procédure a été testée et dernièrement vérifiée le 10/06/2023 sur CentOS 9 Stream. À noter que l’installation de Kolab ne peut aller au bout sur les distributions GNU/Linux Debian 11 et + et Ubuntu 22.04 et + : divers problèmes de dépendances non satisfaites (manquantes ou versions non compatibles) rencontrées avec le paquet kolab lui-même fourni par kolabsys, un bug report a été envoyé.
Vous pouvez suivre la procédure manuelle ci-dessous ou adapter cette fiche JSON de configuration pour la passer dans mon script de customisation GNU/Linux Overdeploy.
Kolab fournira les services suivants :
- panel cockpit (https://192.168.0.76:9090/)
- panel kolab (http://192.168.0.76/kolab-webadmin/)
- échange de fichiers chwala (http://192.168.0.76/chwala/)
- webmail (http://192.168.0.76/roundcubemail/)
I) Ajouter les bonnes sources.
a) dépots natifs “crb” et “extras”.
dnf config-manager --set-enabled crb
dnf install epel-release epel-next-release
b) dépôt externe mariadb.
nano /etc/yum.repos.d/mariadb.repo
[MariaDB]
name = MariaDB
baseurl = https://mirrors.ircam.fr/pub/mariadb/yum/11.0/centos/$releasever/$basearch
gpgkey = https://mirrors.ircam.fr/pub/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1"
c) dépôt externe kolab.
nano /etc/yum.repos.d/kolab.repo
[Kolab_16]
name=Kolab 16: Stable Release (CentOS_9)
type=rpm-md
baseurl=http://obs.kolabsys.com/repositories/Kolab:/16/CentOS_9_Stream/
gpgkey = https://ssl.kolabsys.com/community.asc
gpgcheck=1
enabled=1
priority = 60
II) Désactiver SELinux.
Kolab recommande explicitement la désactivation de SELinux, qui nécessiterait un paramètrage plus fin pour autoriser les communications du panel web et du serveur IMAP Cyrus.
Passer à “disabled” la valeur présente pour son status dans :
nano /etc/selinux/config
nano /etc/sysconfig/selinux
Vérifier avec : sestatus
.
III) Configurer le réseau (Network Manager).
- lister les interfaces présentes :
ls /etc/NetworkManager/system-connections
Exemple pour une interface nommée “ens192” avec sa config voulue :
nmcli connection modify ens192 ipv4.addresses 192.168.10.8
nmcli connection modify ens192 ipv4.gateway 192.168.10.1
nmcli connection modify ens192 ipv4.dns 8.8.8.8
nmcli connection modify ens192 ipv4.method manual
- vérifier netmask : (/24 au lieu de /32 par exemple)
Ajouter un FQDN :
- si besoin avant :
hostnamectl set-hostname kolab
- nano /etc/hosts :
192.168.10.8 kolab.groupware.intra kolab
IV) Installer Kolab.
dnf install kolab kolab-webadmin -y
III) Configurer le pare-feu.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=pop3s
firewall-cmd --permanent --add-service=imaps
firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-service=ldaps
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=587/tcp
systemctl restart sshd
V) Configurations.
a) Kolab.
setup-kolab
OU en version avec réponses pré-définies :setup-kolab --default --timezone=Europe/Paris --mysqlhost=localhost --mysqlserver=existing --mysqlrootpw=PASSWORD_ROOT --directory-manager-pwd=PASSWORD_MANAGER
systemctl enable --now cockpit.socket
b) par élément.
élément | fichier de config | logs | nom de service (systemctl) |
---|---|---|---|
kolab | /etc/kolab/kolab.conf | ||
chwala | /var/log/chwala/errors.log | ||
cyrus | /etc/cyrus.conf | cyrus-imapd | |
imap | /etc/imapd.conf | ||
guam | /etc/guam/sys.config | ||
roundcube | /etc/roundcubemail/config.inc.php | /var/log/roundcubemail/errors.log |
- si besoin :
openssl verify -CAfile cyrus-imapd-ca.pem cyrus-imapd.pem
- changer “localhost” et “tls” par l’adresse IP locale statique et “ssl” dans kolab, cyrus et roundcube.
To-Do : storage.
À ce stade l’installation est complète avec tous les logins actifs, mais une erreur “storage error” est présente.