Einrichtung SOGo Groupware

Die Installation und Einrichtung der SOGo Groupware auf einem Debian-Server beinhaltet die Installation von Abhängigkeiten, das Hinzufügen des SOGo-Repositorys, die Installation der Software und die Konfiguration von Diensten wie PostgreSQL oder MySQL/MariaDB, LDAP und Apache.

SOGo Groupware

Hiermit habe ich einmal zusammengefasst wie ich bei mir die Einrichtung von SOGo durchgeführt habe:

1. Systemvorbereitung

  • Debian-Update und -Upgrade
    Bevor wir mit der Installation beginnen, stellen wir sicher, dass das System auf dem neuesten Stand ist:
    sudo apt update && sudo apt upgrade -y
  • Erforderliche Pakete installieren
    Installiere die notwendigen Pakete für die Installation:
    sudo apt install gnupg2 apt-transport-https lsb-release ca-certificates -y

2. Hinzufügen des SOGo-Repositorys

Füge das SOGo-Repository hinzu, um die Software zu installieren.

  • GPG-Schlüssel hinzufügen
    wget -qO- https://keys.openpgp.org/vks/v1/by-fingerprint/0x810273C4DA017D99 | sudo gpg --dearmor -o /usr/share/keyrings/inverse-archive-keyring.gpg
  • Repository hinzufügen
    Füge das SOGo-Repository zur sources.list.d hinzu:
    echo "deb [signed-by=/usr/share/keyrings/inverse-archive-keyring.gpg] https://packages.inverse.ca/SOGo/nightly/5/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/sogo.list
  • Paketlisten aktualisieren
    Aktualisiere die Paketlisten, um das neue Repository zu berücksichtigen:
    sudo apt update

3. Installation der SOGo Groupware

Installiere SOGo und alle benötigten Abhängigkeiten:

sudo apt install sogo sogo-activesync sope4.9-gdl1-mysql -y

4. Datenbank einrichten (PostgreSQL oder MySQL/MariaDB)

PostgreSQL

  • PostgreSQL installieren:
    sudo apt install postgresql postgresql-contrib -y
  • Datenbank erstellen:
    sudo -u postgres psql -c "CREATE DATABASE sogo;"
    sudo -u postgres psql -c "CREATE USER sogo WITH PASSWORD 'password';"
    sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE sogo TO sogo;"

MySQL/MariaDB

  • MySQL/MariaDB installieren:
    sudo apt install mariadb-server -y
  • Datenbank erstellen:
    sudo mysql -e "CREATE DATABASE sogo;"
    sudo mysql -e "CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'password';"
    sudo mysql -e "GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost';"
    sudo mysql -e "FLUSH PRIVILEGES;"

5. SOGo konfigurieren

Die Hauptkonfigurationsdatei von SOGo befindet sich unter /etc/sogo/sogo.conf. Diese muss entsprechend angepasst werden.

Beispielkonfiguration

{
  /* Database configuration */
  SOGoProfileURL = "postgresql://sogo:password@127.0.0.1:5432/sogo/sogo_user_profile";
  OCSFolderInfoURL = "postgresql://sogo:password@127.0.0.1:5432/sogo/sogo_folder_info";
  OCSSessionsFolderURL = "postgresql://sogo:password@127.0.0.1:5432/sogo/sogo_sessions_folder";

  /* IMAP and SMTP configuration */
  SOGoIMAPServer = "imaps://imap.server.tld:993";
  SOGoSMTPServer = "smtp.server.tld:587";
  SOGoMailDomain = "yourdomain.tld";

  /* General configuration */
  WOWorkersCount = 2;
  SOGoLanguage = German;
  SOGoTimeZone = Europe/Berlin;
}

Passe die Parameter wie SOGoProfileURL, SOGoIMAPServer, SOGoSMTPServer, etc., entsprechend an.

6. Apache konfigurieren

Um SOGo über Apache verfügbar zu machen, konfiguriere den Apache-Webserver.

  • Apache2 installieren:
    sudo apt install apache2 apache2-suexec-custom libapache2-mod-proxy-html libapache2-mod-proxy-uwsgi -y
  • Apache-Modifikationen aktivieren:
    sudo a2enmod proxy proxy_http headers
    sudo systemctl restart apache2
  • SOGo als virtuelle Host-Datei hinzufügen: Erstelle eine neue Datei unter /etc/apache2/sites-available/sogo.conf:
    sudo nano /etc/apache2/sites-available/sogo.conf
  • Beispiel für eine SOGo Apache-Konfiguration:
    <VirtualHost *:80>
        ServerName mail.yourdomain.tld
        DocumentRoot /usr/lib/GNUstep/SOGo/WebServerResources/
        Alias /SOGo.woa/WebServerResources/ /usr/lib/GNUstep/SOGo/WebServerResources/
        Alias /SOGo/WebServerResources/ /usr/lib/GNUstep/SOGo/WebServerResources/
        <Directory /usr/lib/GNUstep/SOGo/>
            AllowOverride None
            Require all granted
        </Directory>
        ProxyRequests Off
        ProxyPreserveHost On
        SetEnv proxy-nokeepalive 1
        <Proxy *>
            AddDefaultCharset off
            Require all granted
        </Proxy>
        ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
        ProxyPassReverse /SOGo http://127.0.0.1:20000/SOGo
        ProxyPass /Microsoft-Server-ActiveSync http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync retry=0
        ProxyPassReverse /Microsoft-Server-ActiveSync http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync
        <Location /SOGo>
            SetEnv proxy-nokeepalive 1
            ProxyPassReverse /
            Require all granted
            AddOutputFilterByType DEFLATE text/html text/plain text/xml
            Options FollowSymLinks
        </Location>
        ErrorLog /var/log/apache2/sogo_error.log
        CustomLog /var/log/apache2/sogo_access.log combined
    </VirtualHost>
  • SOGo-Site aktivieren:
    sudo a2ensite sogo.conf
    sudo systemctl reload apache2

7. SOGo starten und Dienste aktivieren

Starte SOGo und aktiviere es, damit es beim Systemstart mitgestartet wird:

sudo systemctl enable sogo
sudo systemctl start sogo

8. Zugriff auf die SOGo-Weboberfläche

Jetzt kann man über den Browser auf die SOGo-Weboberfläche zugreifen. Wir gehen zu http://your-server-ip/SOGo und melden uns mit den entsprechenden Benutzeranmeldedaten an.

9. Optional: SSL/TLS aktivieren

Um SSL/TLS zu aktivieren, sollte man ein SSL-Zertifikat (z. B. von Let's Encrypt) installieren und die Apache-Konfiguration entsprechend anpassen, um HTTPS zu erzwingen. Für eine Firmeneinrichtung sollte natürlich ein kostenpflichtiges SSL-Zertifikat eingebunden werden.

Abschluss

Nach diesen Schritten sollte die SOGo Groupware vollständig auf dem Debian-Server installiert und konfiguriert sein. Nun kann man Benutzer hinzufügen und die Groupware für die geplanten Zwecke nutzen.